自從Hugo出來後,做爲Go語言(golang)的重度用戶的重度用戶,一直想把本身的博客遷移到Hugo,可是一直沒有行動,主要緣由在於,個人博客使用的一款主題maupassant很是簡潔、響應速度快,可是在Hugo上並無相似一的主題,再加上從Hexo遷移到Hugo還有好多要修改的,因此一直遲遲沒有行動。html
前段時間在Github上閒逛,居然發現了有人基於Hugo製做了maupassant主題,就clone下來看了一下,發現的確實現了maupassant主題的大部分功能,能夠用,可是也存在不少問題。java
好比:python
其餘小細節還有不少,這裏就不一一列舉了,總之,若是按這個模板進行遷移,那麼個人博客網站原來的不少功能都沒有了,這是我不能接受的。android
既然不少功能都不支持,並且我又想遷移到Hugo(能夠利用go語言的知識,NodeJS不太熟),因此就自定動手參照着我原來博客的功能模板進行完善。原來的maupassant主題做者已經7個多月沒有維護了。git
由於太忙,斷斷續續改了很久(一個多月吧),進行了擴展,增長了不少功能,而且用本身的博客作了實驗,基本上已經知足我所需的大部分功能,具體效果能夠參加 http://www.flysnow.org/ 。github
完善了maupassant主題後,我決定進行開源,主要緣由有如下幾點:golang
基於此,因此我fork了原來的maupassant主題,把我修改的提交了上去,造成了新的flysnow hugo maupassant theme。web
新的Hugo maupassant 主題主要有如下特性支持json
固然還有不少特性不支持,好比百度分析、文章閱讀數統計,評論等,後面會繼續完善。小程序
引用一下Hugo官網的描述
The world’s fastest framework for building websites.Hugo是一個很是受歡迎的、開源的靜態網站生成工具,和Hexo相似。 它速度快,擴展性強。
更多的關於Hugo的介紹,請參考Hugo的官網 https://gohugo.io/ 。
Hugo比Hexo速度更快,並且不用依賴一大堆東西,一個二進制文件就能夠搞定。
咱們能夠直接從Github Release頁面下載對應的二進制文件,而後把它放在你的PATH目錄裏便可使用。這個支持任何平臺,根據本身的平臺選擇相應的二進制包便可。
Mac下Hugo提供了homebrew安裝的方式,很是簡便。
brew install hugo
sudo apt-get install hugo
Windows下Hugo提供了Chocolatey方式的安裝,經過以下命令便可。
choco install hugo -confirm
安轉完成後,咱們打開終端,輸入以下命令進行驗證是否安裝成功
hugo version
若是沒問題的話,會輸出Hugo的版本號等一些信息。
hugo new site blog
cd blog;\ git init;\ git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke;\ # Edit your config.toml configuration file # and add the Ananke theme. echo 'theme = "ananke"' >> config.toml
hugo new posts/my-first-post.md
hugo server -D
而後咱們就能夠打開瀏覽器,輸入http://localhost:1313
查看咱們新建立的站點了。
本文爲原創文章,轉載註明出處,歡迎掃碼關注公衆號
flysnow_org
或者網站
http://www.flysnow.org/,第一時間看後續精彩文章。以爲好的話,順手分享到朋友圈吧,感謝支持。
最新版本的Hugo maupassant主題我已經在Github上開源,你們能夠clone使用。使用很簡單,只須要如下兩步便可。
cd <YOUR Bolg Root Dir> git clone https://github.com/rujews/maupassant-hugo themes/maupassant
而後在Hugo的配置文件裏config.toml(yaml,json)中進行以下配置,便可使用。
theme = "maupassant"
記得把你的MD文章放在content/post目錄下。
Hugo maupassant 主題配置也不難,是否熟悉Hugo均可以快速配置,並生成本身的網站。
我博客的配置以下,你們能夠參考。
config.toml
baseURL = "http://www.flysnow.org" languageCode = "zh-CN" title = "飛雪無情的博客" theme = "maupassant" [author] name = "飛雪無情" [params] author = "飛雪無情" subtitle = "專一於Android、Java、Go語言(golang)、移動互聯網、項目管理、軟件架構" keywords = "golang,go語言,go語言筆記,飛雪無情,java,android,博客,項目管理,python,軟件架構,公衆號,小程序" description = "專一於IT互聯網,包括但不限於Go語言(golang)、Java、Android、Python、項目管理、抖音分析、軟件架構等"
原做者的菜單是基於Content Type實現的,擴展性不好。Hugo自己有菜單的支持,擴展性更好,因此我改成基於Hugo原生菜單的方式實現,能夠無限級擴展、支持菜單排序。
config.toml
[menu] [[menu.main]] identifier = "books" name = "新書" url = "/books/" weight = 2 [[menu.main]] identifier = "archives" name = "歸檔" url = "/archives/" weight = 3 [[menu.main]] identifier = "about" name = "關於" url = "/about/" weight = 4
identifier
標誌符必須是惟一的,不能重複;weight
用於排序,值越小越靠前。
友情連接的實現也是遵循Hugo原生的方式,參考配置以下:
config.toml
[[params.links]] title = "Android Gradle權威指南" name = "Android Gradle權威指南" url = "http://yuedu.baidu.com/ebook/14a722970740be1e640e9a3e" [[params.links]] title = "經常使用開發工具CDN鏡像" name = "經常使用開發工具CDN鏡像" url = "http://mirrors.flysnow.org/"
params.links
是一個數組,因此咱們能夠自定義不少友情連接。name
表示顯示的連接文本,title
表示鼠標懸停在友情連接時,顯示的文本。
Hugo默認是不支持生成歸檔文件的,須要本身實現。新主題已經實現了文章歸檔,只須要在新建content/archives/index.md
文件,文件內容爲:
content/archives/index.md
title: "歸檔" description: Android資深工程師 ,Go和Java打雜師,《Android Gradle權威指南》做者,Android官方技術文檔譯者 type: archives
title
和description
均可以換成你本身的,可是type
必須是archives
。
content/archives/index.md
表示在content/archives/
目錄下的index.md
文件
這樣Hugo就會自動生成/archives/index.html
歸檔頁面,經過相似http://www.flysnow.org/archives/
的URL進行訪問,目前的歸檔是按照年份進行歸檔,後面能夠擴展更多的歸檔方式。
有些不須要咱們轉化的靜態文件,好比robots.txt
、咱們上傳的附件等,這些不須要Hugo進行處理,能夠直接放在static
目錄下,Hugo會原封不動的拷貝。
從Hexo到Hugo踩了一些坑,這裏主要介紹一些主要的。
對於從Hexo遷移到Hugo來講,比較重要的就是保持URL連接的一致性,這樣已經被搜索索引,其餘文章引用的文章才能夠繼續被打開,不然就會出現404錯誤。
我之前使用Hexo的博客,文章連接是使用的permalink
設置優化的URL,好比:
permalink: :year/:month/:day/:title.html
這樣咱們博客文章所有都是這樣年月日+標題+html後綴的格式,好比Go語言參數傳遞是傳值仍是傳引用這篇文章,http://www.flysnow.org/2018/02/24/golang-function-parameters-passed-by-value.html。
只有文章是html後綴的格式,分類、標籤等聚合頁是目錄Path的格式,如:http://www.flysnow.org/categories/Golang/
。
在新的Hugo系統中,我也想這麼作,可是Hugo的permalink
是不能配置html後綴的,便可你配置了,也只會生成以下的URL/year/month/day/title.html/
仍是一個目錄,沒法以.html結尾。
我查了下Hugo的文檔,發現有個配置能夠解決,這就是在config.toml
裏設置uglyurls = true
。
這樣的確解決了以.html
結尾的問題,可是又引出來另一個問題,就是分類、標籤等也是以.html
結尾了,變成了http://www.flysnow.org/categories/Golang.html
,查了不少文檔,魚和熊掌不可兼得(有知道的朋友必定要告訴我,多謝)。
最終我採用了指定文章URL的方式,不用uglyurls = true
配置了。在每篇文章裏的Front Matter
加上
url: /2018/02/24/golang-function-parameters-passed-by-value.html
強制指定文章的URL,這樣就解決了從Hexo到Hugo遷移帶來的問題。
咱們在寫文章的時候,會給文章進行分類,好比Golang,可是默認狀況下,Hugo會把這個Golang轉爲小寫,這就給咱們一直用原始字符的形成困擾,爲了解決這個問題,Hugo提供了preserveTaxonomyNames
配置,把它設置爲true
就能夠了保持原來分類的名字了。
config.toml
## 保持分類的原始名字(false會作轉小寫處理) preserveTaxonomyNames = true
Hugo默認狀況下,URL字符串裏的字母都會強制轉爲小寫,這對於分類名、標籤名是大寫的來講,博客遷移後(好比從Hexo到Hugo),原來的連接就失效了,爲了解決這個問題,Hugo提供了disablePathToLower
配置。
config.toml
## 是否禁止URL Path轉小寫 disablePathToLower = true
最後歡迎你們貢獻和支持,多star,多PR,多提ISSUE,等着大家。https://github.com/rujews/maupassant-hugo
本文爲原創文章,轉載註明出處,歡迎掃碼關注公衆號
flysnow_org
或者網站
http://www.flysnow.org/,第一時間看後續精彩文章。「防賤人刪除版權」以爲好的話,順手分享到朋友圈吧,感謝支持「uuuuuuuu」。