時(shí)間:2023-07-03 21:00:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-07-03 21:00:01 來源:網(wǎng)站運(yùn)營
使用了靜態(tài)網(wǎng)頁生成器:從WordPress 到 Hugo:2020.10.6 增補(bǔ):又換回了 Hugo,使用 Github 和 Netlify 托管,真香。hexo
和hugo
。在使用兩者之前就有將兩者進(jìn)行過對(duì)比,前者基于node.js、后者基于golang,在對(duì)比了種種優(yōu)缺點(diǎn)之后決定還是選擇wordpress 。不過還是對(duì)比出來一點(diǎn)東西的,個(gè)人傾向于hugo。.ejs
、有些主題用了.pug
。jade
文件——一種通過縮進(jìn)的方式來編寫代碼的過程、可以和html相互轉(zhuǎn)換。但是不巧的是,我那套主題把pug代碼文本放到那種html轉(zhuǎn)換器,并不能很好地轉(zhuǎn)為html代碼、直接修改這些文件又廢眼睛(像在改一團(tuán)亂碼)。這種糟糕的體驗(yàn)很容易會(huì)使一個(gè)懶人放棄,于是我拿著一堆md文件正式投奔hugo的懷抱。Chocolatey (Windows)
,步驟如下:管理員身份
打開windows中的Windows PowerShell
(命令提示符)。(windows中搜索powershell,右鍵“用管理員身份運(yùn)行”)Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install hugo -confirm
cmd
,例如: C:/Users/用戶名/
。(路徑隨意,按照個(gè)人喜好決定)cmd
中,復(fù)制下方代碼,然后執(zhí)行(quickstart可以替換為自己的網(wǎng)站名,英文字母)hugo new site quickstart
C:/Users/用戶名/
中創(chuàng)建一個(gè)名為"quickstart"的文件夾。打開這個(gè)文件夾會(huì)發(fā)現(xiàn)一些熟悉的目錄,比方說theme
目錄里面放的是主題、content
里面放的就是markdown文件等等。cd /d C:/Users/用戶名/quickstart
先網(wǎng)上搜索git,安裝一下(都選擇默認(rèn)選項(xiàng))。然后在老地方CMD中輸入:git initgit submodule add https://github.com/reuixiy/hugo-theme-meme.git themes/meme
config.toml
文件,即將這個(gè)鏈接的所有內(nèi)容復(fù)制粘貼到 C:/Users/用戶名/quickstart
文件夾下的config.toml
文件中。(怎么打開奇怪后綴名的文件?推薦使用notepad++或者visual studio code)config.toml
文件。對(duì)于MemE
主題,該文件的配置說明極其詳細(xì),按照文件中說明修改即可。cd /d C:/Users/用戶名/quickstart
hugo new posts/my-first-post.md
content/posts
里找到剛才新建的markdown文件,盡情寫作吧。(什么是markdown?語法是什么?)在文章的開頭(被稱為Front Matter
,用于文章生成的一些控制)會(huì)自動(dòng)生成下列部分字段,這里可以根據(jù)自己需要修改為:---title: "My First Post" #文章標(biāo)題description: 文章的描述信息keywords: - post - blogdate: 2019-03-26T08:47:11+01:00 #文章建立時(shí)間lastmod: 2019-03-26T08:47:11+01:00 #文章最近修改draft: true #是否為草稿,false則不是草稿、會(huì)發(fā)布slug: my-first-post #文章別名,用來做永久鏈接,下方會(huì)詳細(xì)說明tag: #文章的標(biāo)簽 - 第一個(gè)tag - 第二個(gè)tag - 第n個(gè)tagcategories: #文章的目錄 - 第一個(gè)category - 第二個(gè)category - 第n個(gè)category---
content
文件夾下。20200126-hugo_changes_urls_of_images.py
的文件。https://hxd.red/wp-contents/uploads/2019/10/10.jpg
,更改后變?yōu)?/uploads/2019/10/10.jpg
。data = re.sub('https://hxd.red/wp-contents', '', data) # 修改此處代碼,即將'https://hxd.red/wp-contents'替換為空。if __name__ == '__main__': top = r'C:/Users/用戶名/quickstart/content/posts' # 修改此處,更變?yōu)槟愕腷log文件夾 modify_md_content(top)
hugo server
啟動(dòng)本地服務(wù)器(使用瀏覽器打開網(wǎng)址http://localhost:1313/
即可預(yù)覽),加上 -D
可以渲染 draft。hugo
生成站點(diǎn)靜態(tài)文件,生成的靜態(tài)文件保存在public
文件夾中。寶塔面板
(更方便管理)、環(huán)境;解析域名;綁定域名等操作可以查看這篇文章:網(wǎng)站又搬遷啦:順便說一說使用騰訊云服務(wù)器搭建博客和wordpress備份遷移。下方的兩條方法均以已安裝寶塔面板、已在面板中添加完網(wǎng)站為前提。public
文件夾中的所有文件打包,這里推薦使用tar.gz
格式進(jìn)行打包。之后可以通過寶塔面板或者ftp傳至服務(wù)器,然后解壓即可。(缺點(diǎn):傳輸速度慢、速度慢、速度慢;但是每次可以不將uploads
文件夾打包,圖片單獨(dú)傳。)https://github.com/0sheldonhuang0/hxdred_blog.git
。yum install git
/www/wwwroot/<你設(shè)置的網(wǎng)站名稱或文件夾>
:cd /www/wwwroot/<你設(shè)置的網(wǎng)站名稱或文件夾>
git clone https://github.com/0sheldonhuang0/hxdred_blog.git #克隆,首次使用git pull https://github.com/0sheldonhuang0/hxdred_blog.git #更新
網(wǎng)站目錄
和運(yùn)行目錄
,最終的運(yùn)行目錄即為public
文件夾。config.toml
中設(shè)置(使用MemE主題的話)。此外,還可以在文章內(nèi)使用下方代碼進(jìn)行強(qiáng)行分割。<!--more-->
config.toml
文件中增加(部分內(nèi)容已經(jīng)有了,使用MemE
主題的情況下):# URL 結(jié)構(gòu)[permalinks] posts = "/:year/:month/:day/:slug/" # 增加此處 年/月/日/文章別名,保持和wordpress默認(rèn)的一致 categories = "/categories/:slug/" tags = "/tags/:slug/"
Front Matter
中加入:title: 微信小程序「法語記憶:學(xué)背單詞動(dòng)詞變位」2019總結(jié)slug: conj-helper-2019 #文章別名,用來做永久鏈接
舉個(gè)例子:鏈接就會(huì)從https://hxd.red/posts/微信小程序「法語記憶:學(xué)背單詞動(dòng)詞變位」2019總結(jié)
變?yōu)?code>https://hxd.red/2020/01/16/conj-helper-2019/,使得其與搜索引擎中之前收錄的鏈接一致,不會(huì)跳成404。content/posts
下方,而要新建頁面則直接在content
文件夾下創(chuàng)建對(duì)應(yīng)的文件夾,比如新建文件夾about
。在新的文件夾下創(chuàng)建文件index.md
,頁面的Front Matter
類似于文章。創(chuàng)建完成之后可以直接通過https://hxd.red/about
進(jìn)行訪問。fonts.googleapis.com
上找字體,我ping了一下谷歌字體在國內(nèi)似乎可以正常訪問,所以選擇心儀的字體,復(fù)制類似代碼如下:<link href="https://fonts.googleapis.com/css?family=Noto+Serif+SC&display=swap" rel="stylesheet">
themes/主題名/layouts/partials/header.html
文件中的</header>
標(biāo)簽前加入上方代碼。themes/主題名/assets/scss/_predefined.scss
(根據(jù)具體主題進(jìn)行變化)中加上剛才的字體名稱。字體名稱越靠前,瀏覽器就會(huì)優(yōu)先選用:// Fonts$fonts: "Trebuchet MS", Verdana; //原來$fonts: "Noto Serif SC", "Trebuchet MS", Verdana; //新加入字體,放在最前面
themes/主題名/layouts/partials/header.html
文件中的</header>
標(biāo)簽前加入下面一行代碼(這里以百度統(tǒng)計(jì)為例,谷歌統(tǒng)計(jì)類似):<script>var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://#/hm.js?你的專屬后綴"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();</script>
MathJax
來進(jìn)行渲染,和之前wordpress上使用的是一樣的,wordpress上使用短代碼來進(jìn)行控制。這里,只需要在公式的兩端加上$$
符號(hào)即可。行間顯示:$$ f(x) = /sin(x) $$換行顯示:$$f(x) = /sin(x) $$
themes/主題名/layouts/partials/header.html
文件中的</header>
標(biāo)簽前加入下面一行代碼:<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_SVG"></script>
參考資料在這里config.toml
中加上:[params] toc = true
layouts/partials
這個(gè)目錄下新建文件toc.html
。該文件的參考示例如下:<!-- toc.html --><!-- ignore empty links with + -->{{ $headers := findRE "<h[1-4].*?>(.|/n])+?</h[1-4]>" .Content }}<!-- at least one header to link to -->{{ if ge (len $headers) 1 }}{{ $h1_n := len (findRE "(.|/n])+?" .Content) }}{{ $re := (cond (eq $h1_n 0) "<h[2-4]" "<h[1-4]") }}{{ $renum := (cond (eq $h1_n 0) "[2-4]" "[1-4]") }}<!--Scrollspy--><div class="toc"> <div class="page-header"><strong>- CATALOG -</strong></div> <div id="page-scrollspy" class="toc-nav"> {{ range $headers }} {{ $header := . }} {{ range first 1 (findRE $re $header 1) }} {{ range findRE $renum . 1 }} {{ $next_heading := (cond (eq $h1_n 0) (sub (int .) 1 ) (int . ) ) }} {{ range seq $next_heading }} <ul class="nav"> {{end}} {{ $anchorId := (replaceRE ".* id=/"(.*?)/".*" "$1" $header ) }} <li class="nav-item"> <a class="nav-link text-left" href="#{{ $anchorId }}"> {{ $header | plainify | htmlUnescape }} </a> </li> <!-- close list --> {{ range seq $next_heading }} </ul> {{ end }} {{ end }} {{ end }} {{ end }} </div></div><!--Scrollspy-->{{ end }}
themes/主題名/assets/scss
文件夾下方增加樣式。themes/主題名/layouts/posts/single.html
中的contents
標(biāo)簽下插入下方代碼:{{ if .Site.Params.toc | default false }}{{ partial "toc" . }}{{ end }}
參考資料在這里關(guān)鍵詞:成器,靜態(tài),使用
客戶&案例
營銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。