如何使用hugo 搭建博客

1拴竹,Hugo 簡介

搭建個人博客有很多開源的博客框架钳榨,我們要介紹的框架叫作Hugo。Hugo 是一個基于Go 語言的框架吃型,可以快速方便的創(chuàng)建自己的博客鸟蜡。

Hugo 支持Markdown 語法沦补,我們可以將自己的文章寫成Markdown 的格式,放在我們用Hugo 創(chuàng)建的博客系統(tǒng)中,從而展示給他人。

2,Hugo 安裝

在Windows 中安裝

首先安裝choco 包管理器剧防,需要在管理員權限下運行cmd,執(zhí)行如下命令止后,一般情況下乘寒,網絡沒有問題,即可安裝成功:

powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))"

# 設置環(huán)境變量
SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

然后使用choco 安裝 hugo:

# 墻內安裝可能較慢
choco install hugo -confirm

在MacOs 中安裝

使用brew 命令安裝:

brew install hugo

在Linux 中安裝

在Linux 中可以使用snap 命令來安裝毁葱,執(zhí)行下面命令:

snap install hugo

如果你的Linux 是Ubuntu 版本际度,也可是使用apt 來安裝帆锋,但是apt 安裝的hugo 可能不是最新版的,這樣會對一些hugo 主題的使用有所限制残黑。

這種情況下我們可以到hugo 的github 倉庫 中下載安裝包來安裝hugo,我們可以下載一個deb 包评凝,然后使用如下命令安裝:

dpkg -i <package.deb>

3日杈,Hugo 是否安裝成功

不管在哪種系統(tǒng)中安裝Hugo蝇裤,最后我們都可以使用下面命令查看Hugo 是否安裝成功:

>>> hugo version
Hugo Static Site Generator v0.68.3-157669A0 linux/amd64 BuildDate: 2020-03-24T12:05:34Z

4狭莱,使用Hugo 創(chuàng)建博客

hugo 安裝成功后济竹,使用hugo new site 命令創(chuàng)建博客:

# 博客項目的名字為myblog
hugo new site myblog

這個命令會創(chuàng)建一個名為myblog 的目錄,這就是博客的根目錄仰猖。目錄結構如下:

├── archetypes
│   └── default.md
├── config.toml         # 博客站點的配置文件
├── content             # 博客文章所在目錄
├── data                
├── layouts             # 網站布局
├── static              # 一些靜態(tài)內容
└── themes              # 博客主題

5钻弄,下載博客主題

創(chuàng)建好博客項目后对途,接下來是下載hugo博客的主題镣奋,這里有很多主題举塔,我們可以任意挑選,比如我們選擇了bootstrap4-blog 主題春叫。

image

然后在myblog 目錄下使用git 命令來下載主題:

git clone https://github.com/alanorth/hugo-theme-bootstrap4-blog.git themes/hugo-theme-bootstrap4-blog

下載下來的主題會放在themes 目錄中:

└── hugo-theme-bootstrap4-blog
    ├── CHANGELOG.md
    ├── LICENSE.txt
    ├── README.md
    ├── archetypes
    ├── assets
    ├── exampleSite         # 本主題示例內容
    |      ├── content      # 示例博客文章
    │      |-- static
    │      |-- config.toml  # 本主題配置
    ├── i18n
    ├── images
    ├── layouts
    ├── package-lock.json
    ├── package.json
    ├── screenshot.png
    ├── source
    ├── theme.toml      
    └── webpack.config.js

5洋腮,使用主題

我們將exampleSite 目錄中的內容,復制到博客根目錄myblog 中,在myblog 目錄中執(zhí)行命令:

cp themes/hugo-theme-bootstrap4-blog/exampleSite/* ./ -r

6,啟動博客服務

使用下面命令啟動服務:

>>> hugo server
                   | EN  
-------------------+-----
  Pages            | 29  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     |  1  
  Processed images |  0  
  Aliases          | 12  
  Sitemaps         |  1  
  Cleaned          |  0  

Built in 60 ms
Watching for changes in /home/wp/t/myblog/{archetypes,content,data,layouts,static,themes}
Watching for config changes in /home/wp/t/myblog/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

可以看到服務默認會在占用1313 端口,在瀏覽器中訪問http://localhost:1313/ 地址肿孵。

如果一切正常舅巷,我們會看到一個像hugo 官網演示一樣的頁面护糖。

7,編寫博客文章

你只需要按照Markdown 的格式編寫自己的文章嚼松,讓后將寫好的文章放在myblog/content/posts嫡良,hugo 就會讀取到這片文章,并將這片文章展示在比的博客中惜颇。

與普通Markdown 文章不一樣的地方是皆刺,你需要在文章的開頭寫入如下結構的內容少辣,這些內容包含在三杠線之間凌摄,在三杠線下邊就是Markdown 的正文了:

---
文章屬性內容
---
Markdown 正文

這些內容會被hugo 解析,作為當前文章的一些屬性漓帅,常用的屬性如下:

---
title: "文章標題"           # 文章標題
author: "作者"              # 文章作者
description : "描述信息"    # 文章描述信息
date: 2015-09-28            # 文章編寫日期
lastmod: 2015-04-06         # 文章修改日期

tags = [                    # 文章所屬標簽
    "文章標簽1",
    "文章標簽2"
]
categories = [              # 文章所屬標簽
    "文章分類1",
    "文章分類2",
]
keywords = [                # 文章關鍵詞
    "Hugo",
    "static",
    "generator",
]

next: /tutorials/github-pages-blog      # 下一篇博客地址
prev: /tutorials/automated-deployments  # 上一篇博客地址
---

比如我們編寫了這樣一篇文章锨亏,文件名為my-first.md:

---
title: "我的第一篇博客"                         
author: "我是作者"  
description : "這是描述信息"    
date: 2018-09-18        
lastmod: 2018-09-26             

tags : [                                    
"我的博客標簽",
]
categories : [                              
"我的博客分類",
]
keywords : [                                
"我的博客關鍵字",
]
---
這里是Markdown 正文

我們將myblog/content/posts 目錄中的其它文章刪除,只留我們自己的這篇文章:

.
└── my-first.md

使用hugo server 重啟博客服務忙干,打開地址http://localhost:1313/器予,可以看到現在的博客中,只有我們自己寫的文章:

image

8捐迫,Hugo 的配置文件

博客的配置文件可以根據自己的需要修改乾翔,我們來看下Bootstrap v4 主題的配置文件,這些配置屬性通過應為并不難理解施戴。

配置文件中屬性的內容我做了修改反浓,并添加了中文注釋。

# Hugo 屬性設置

# 網站地址
baseurl = "https://localhost:1313/" 

# 網站語言
languageCode = "en-us"              

# 網站title
title = "我的博客"                   

# 主題的名字赞哗,這個要跟myblog/themes 目錄中的子目錄的目錄名一致
theme = "hugo-theme-bootstrap4-blog"    

# home/category/tag 頁面顯示的文章數 (Default: 10)
paginate = 5

# home/category/tag 頁面用于摘要的字數 (Default: 70)
summaryLength = 50

# optionally override the site's footer with custom copyright text
# copyright = "Except where otherwise noted, content on this site is licensed under a [Creative Commons Attribution 4.0 International license](https://creativecommons.org/licenses/by-sa/4.0/)."
#googleAnalytics = "UA-123-45"
#disqusShortname = "XYW"

# 博客鏈接的路徑格式
[permalinks]
  posts = "/:year/:month/:title/"
  page = "/:slug/"

# 頂部欄
[[menu.navbar]]
  name = "首頁"
  url = "http://localhost:1313"

# 側邊欄雷则,可以寫多個
[[menu.sidebar]]
  name = "新浪"
  url = "https://www.sina.com"

[[menu.sidebar]]
  name = "Github"
  url = "https://github.com"

# Theme 屬性設置
#
[params]
  # Site author
  author = "作者名"

  # homepage 頁描述信息
  description = "我的博客站點"

  # Show header (default: true)
  #header_visible = true

  # Format dates with Go's time formatting
  date_format = "Mon Jan 02, 2006"

  # verification string for Google Webmaster Tools
  #google_verify_meta = "BAi57DROASu4b2mkVNA_EyUsobfA7Mq8BmSg7Rn-Zp9"

  # verification string for Bing Webmaster Tools
  #bing_verify_meta = "3DA353059F945D1AA256B1CD8A3DA847"

  # verification string for Yandex Webmaster Tools
  #yandex_verify_meta = "66b077430f35f04a"

  # Optionally display a message about the site's use of cookies, which may be
  # required for your site in the European Union. Set the parameter below to a
  # page where the user can get more information about cookies, either on your
  # site or externally, for example:
  #cookie_consent_info_url = "/cookie-information/"
  #cookie_consent_info_url = "http://cookiesandyou.com"

  # show sharing icons on pages/posts (default: true)
  #sharingicons = true

  # Display post summaries instead of content in list templates (default: true)
  #truncate = true

  # Disable the use of sub-resource integrity on CSS/JS assets (default: false)
  # Useful if you're using a CDN or other host where you can't control cache headers
  #disable_sri = false

  [params.sidebar]
    # Optional about block for sidebar (can be Markdown)
    about = "我的博客[簡單示例](http://localhost:1313/)."

    # 側邊欄顯示最近幾條文章 (Default: 5)
    #num_recent_posts = 2

  [params.social]
    # Optional, used for attribution in Twitter cards (ideally not a person
    # for example: nytimes, flickr, NatGeo, etc).
    # See: https://dev.twitter.com/cards/types/summary-large-image
    twitter = "username"

# Default content language for Hugo 0.17's multilingual support (default is "en")
# See: https://github.com/spf13/hugo/blob/master/docs/content/content/multilingual.md
#DefaultContentLanguage = "en"

# Languages to render
#[languages.en]
#[languages.bg]
  # Bulgarian date format is dd.mm.yyyy
  #date_format = "02.01.2006"

# vim: ts=2 sw=2 et

我們使用以上配置文件,再次啟動服務肪笋,訪問http://localhost:1313月劈,得到如下頁面:

[圖片上傳失敗...(image-7086d-1625209869856)]

9,將博客部署在Git

建好自己的博客后藤乙,需要將其部署在公網猜揪,才能讓別人訪問。有兩種方法:

  • 購買自己的域名和服務器坛梁,將博客部署在上面而姐。
  • 將博客托管在github。

這里我們介紹第2中方式罚勾。

9.1毅人,準備要部署的內容

要想講博客部署在github吭狡,首先得有一個github 賬號。

然后需要在github 上創(chuàng)建一個倉庫丈莺,用于存放我們的博客系統(tǒng)划煮。

我們創(chuàng)建的倉庫的名字應該是這種格式"賬戶名.github.io",比如我創(chuàng)建的倉庫的名字為"codeshellme.github.io"缔俄。

要向倉庫中存放的內容弛秋,使用hugo 命令生成的。在myblog 目錄下俐载,運行hugo 命令:

>>> hugo
                   | EN  
-------------------+-----
  Pages            | 14  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     |  1  
  Processed images |  0  
  Aliases          |  6  
  Sitemaps         |  1  
  Cleaned          |  0  

Total in 74 ms

執(zhí)行成功后蟹略,會生成一個public 目錄,這個目錄中的內容遏佣,就是我們博客系統(tǒng)的所有內容挖炬,我們需要將這些內容存放在Git 倉庫中。

9.2状婶,部署到Git

按照如下步驟將博客內容上傳到Git 倉庫意敛,在public 目錄下,依次執(zhí)行下面的命令:

# 初始化倉庫
git init

# 將所有內容添加到git
git add .

# 提交到git 本地
git commit -m "我的博客第一次提交"

# 關聯到遠程git膛虫,注意這里需要寫你自己的git 地址
git remote add origin https://github.com/codeshellme/codeshellme.github.io.git

# 推送到遠程git
git push origin master

9.3草姻,訪問公網地址

經過上面的步驟,我們就將博客內容托管在了github稍刀。那么你的博客的地址將是這種格式:

https://倉庫名字

例如我的博客地址就是:

https://codeshellme.github.io

訪問這個地址就可以訪問我們的博客了撩独。

如果以后我們寫了新的博客,則需要再使用hugo 命令生成新的內容账月,再將新的內容push 到Git 倉庫就可以了综膀。
原文
如何用hugo 搭建博客

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捶障,隨后出現的幾起案子僧须,更是在濱河造成了極大的恐慌,老刑警劉巖项炼,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件担平,死亡現場離奇詭異,居然都是意外死亡锭部,警方通過查閱死者的電腦和手機暂论,發(fā)現死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拌禾,“玉大人取胎,你說我怎么就攤上這事。” “怎么了闻蛀?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵匪傍,是天一觀的道長。 經常有香客問我觉痛,道長役衡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任薪棒,我火速辦了婚禮手蝎,結果婚禮上,老公的妹妹穿的比我還像新娘俐芯。我一直安慰自己棵介,他們只是感情好,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布吧史。 她就那樣靜靜地躺著邮辽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扣蜻。 梳的紋絲不亂的頭發(fā)上逆巍,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天及塘,我揣著相機與錄音莽使,去河邊找鬼。 笑死笙僚,一個胖子當著我的面吹牛芳肌,可吹牛的內容都是我干的。 我是一名探鬼主播肋层,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼亿笤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了栋猖?” 一聲冷哼從身側響起净薛,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒲拉,沒想到半個月后肃拜,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡雌团,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年燃领,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锦援。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡猛蔽,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情曼库,我是刑警寧澤区岗,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站毁枯,受9級特大地震影響躏尉,放射性物質發(fā)生泄漏。R本人自食惡果不足惜后众,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一胀糜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蒂誉,春花似錦教藻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绍移,卻和暖如春悄窃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹂窖。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工轧抗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瞬测。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓横媚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親月趟。 傳聞我的和親對象是個殘疾皇子灯蝴,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內容