成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

平滑遷移 Octopress 到 Hugo

開發 開發工具
由于自己還是比較喜歡 Octopress 默認的這套主題,所以在讀過 Hugo 開發文檔后,在嚴格尊重原主題的原則下修改了部分增強樣式,制做了一個適配 Hugo 的 Octopress 主題。

原由

自從新博客建立以來一直用 Octopress 這個博客框架來搭建靜態文章頁面。漂亮的默認主題、方便的發布到 github page 等功能吸引了我

但就在最近因為家里的用 Macbook,剛好升級到了新版的 Sierria,杯具的是之前安裝的 Octopress bundle 都失效了。調試了很久還沒把環境搭建好,再加上之前發現 Octopress 的 Markdown 解析器老報錯,于是就決定要更換一個配置安裝簡單點的博客生成器了

在參考了這個網站上的各種生成器后 staticgen,果斷選擇了 Hugo。沒有什么特殊原因,下載安裝試用一下就明白了。Hugo 由于是 Go 語言寫的,所以你只需要下載好官方給的二進制可執行文件就可以了,再也不用安裝各種依賴,然后各種換源什么的亂折騰了。這一點就足以讓我轉入 Hugo

主題

由于自己還是比較喜歡 Octopress 默認的這套主題,所以在讀過 Hugo 開發文檔后,在嚴格尊重原主題的原則下修改了部分增強樣式,制做了一個適配 Hugo 的 Octopress 主題。雖然 Hugo 官方有一個適配 Octopress 的主題 hugo-octopress 但是對原主題改動太多,我并不喜歡。

遷移

文章

Octopress 使用的文章描述頭是 yaml 格式的,需要轉換成 Hugo 的 toml,自己手動寫了個 NodeJS 腳本 來完成這個工作,基本上很輕松就完成了。注意:建議放在 content/archives 目錄下面,這樣的話原來的文件目錄和新的就是一致的了

再吐槽下 md 文件名,Octopress 默認是生成時間為前綴的,如:2016-06-13-name.markdown。 如果轉移到 Hugo ***鏈接還要保持原來文件名格式的話就得把這個前綴干掉(name.md),這樣的話排序就亂了。在各種編輯器、文件夾中不按創建順序排序,看起來很別扭也不方便。

文章鏈接

考慮到之間已經寫過很多文章了,搜索引擎都已收錄,所以要保持原來的文章鏈接格式不變。在 Hugo 配置文件里面加上這段,使用文件名做文章***鏈接:

  1. [permalinks] 
  2. archives = "/:year/:month/:day/:filename/" 

存檔

Octopress 默認的存檔地址是 archives,這個我們可以直接在 Hugo 博客目錄 content 里面新建一個目錄名為 archives 就可以了,以后新建文章都以這個 Section 為準:

  1. hugo new archives/your-post-name.md 

RSS

Octopress 默認的是 atom.xml,然而 Hugo 中默認的是 index.xml。不過我們可以在 Hugo 中做個配置,和之間保持一致:

  1. RSSUri = "atom.xml" 

然而實際測試的時候在模板里面調用 {{ .RSSlink }} 始終都返回 index.xml。手動把模板里面的 RSS 鏈接改成 {{ .Site.BaseURL }}atom.xml 居然能生效?!這估計是 Hugo 的一個 bug。好在被發現了,要不然新老訂閱 RSS 地址不一樣事情就比較麻煩了。

分頁

Octopress 默認的格式是 posts/2,Hugo 中是 posts/2 同樣需要加個配置:

  1. paginatePath = "posts" 

Hugo 的幾個基本概念

這幾個概念主要在修改主題的時候能用到

Front Matter

類似 markdown 文件的配置描述,用來配置文章的標題、時間、鏈接、分類等元信息,提供給模板調用

  1. +++ 
  2. title = "post title" 
  3. description = "description." 
  4. date = "2012-04-06" 
  5. tags = [ ".vimrc""plugins""spf13-vim""vim" ] 
  6. categories = [ 
  7.   "cat1"
  8.   "cat2" 
  9. +++ 

Sections

在 content 下面的一級目錄,通常有分類的概念,但只是文件夾維度的物理隔離

Types

如果沒有為文章指定 type 配置,文章默認就屬于當前屬的 Section,type 可以在 Front Matter 中指定,而 Section 不可以

Archetype

新建文章時候的默認模板,會帶有指定的 Front Matter 頭

Taxonomy

分類、標簽、系列這種描述文章屬性的都屬于 Taxonomy Terms

總結

Hugo 確實是一個不錯的博客框架,配置簡單、功能強大,很多東西都以「慣例」默認提供了,比如內置 TableOfContents,用來寫博客足亦。

不過由于是 Go 語言寫的,很多人并不知道有這么好用的一個東西,所以社區并不是很好。這可能就是所謂的編程的幫派論吧!

【本文是51CTO專欄作者周琪力的原創稿件,轉載請注明出處】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2022-10-08 09:33:00

平臺中間件

2023-11-14 08:44:55

數倍數據

2024-08-22 14:16:08

2022-07-27 22:48:29

消息中間件RocketMQ架構設計

2009-01-18 11:11:36

InnoDBMySQLMVCC

2019-08-09 08:05:11

MQ平滑遷移架構

2021-03-06 08:02:39

MySQL集群服務器

2015-01-26 14:35:22

數據中心遷移

2009-12-29 16:25:14

全業務接入網

2017-03-24 14:46:50

數據架構數據庫

2023-11-20 11:32:50

2021-03-01 10:10:39

數據遷移擴容

2021-06-24 08:00:00

開發Hugo工具

2023-02-24 08:27:56

RabbitMQKafka架構

2010-10-09 21:09:04

GPONPON

2011-09-15 09:30:35

Fedora 17

2010-11-22 09:36:37

Perl腳本SolarisLinux

2024-05-14 08:19:54

2019-07-29 10:18:17

數據庫高可用架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区免费观看 | 蜜桃免费一区二区三区 | www.色午夜.com| 日韩有码一区 | 亚洲www啪成人一区二区麻豆 | 欧美一级视频 | 91传媒在线观看 | 亚洲区一区二 | 日韩成人精品视频 | 国产精品久久久av | 91视频在线观看 | 色视频网站免费 | 亚洲一区二区三区高清 | 国产精品99久 | 免费观看的av | 国产高清免费在线 | 国产农村妇女毛片精品久久麻豆 | 国产.com | 国产一区免费 | 亚洲一区二区av | 午夜天堂精品久久久久 | 自拍偷拍一区二区三区 | 一区二区三区四区在线视频 | 成人欧美一区二区三区黑人孕妇 | 亚洲一级二级三级 | 日本污视频 | 亚洲精品一区二区 | 日韩av高清 | www.99热| 在线看片国产精品 | 九九亚洲| 欧美日韩中文字幕在线播放 | 在线国产视频 | 国产97在线视频 | 亚洲最大的黄色网址 | 日本一区二区不卡 | 美女一区二区在线观看 | 精品一区二区久久 | 欧美日韩国产在线观看 | 国产精品久久久久久婷婷天堂 | 国产欧美日韩综合精品一区二区 |