<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Hugo + GitHub Pages 搭建自己的網(wǎng)站

          共 4473字,需瀏覽 9分鐘

           ·

          2020-12-08 03:08

          點擊上方藍色“polarisxu”關(guān)注我,設(shè)個星標(biāo),不會讓你失望

          大家好,我是站長 polarisxu。

          很早之前,我使用 WordPress 搭建了個人博客:http://blog.studygolang.com,畢竟那時候 WordPress 是首選。現(xiàn)如今,大家似乎更喜歡靜態(tài)博客,各種語言的靜態(tài)博客生成器輪子不斷,比如 Go 語言的 Hugo 就是一個靜態(tài)博客生成器。我個人認為,靜態(tài)博客生成器流行的一個很大原因,是 Markdown 的流行,開發(fā)人員習(xí)慣了使用 Markdown 進行寫作。

          對于我,有另外一個痛點。最近在公眾號寫了一些文章,希望同步到博客,只是文字還好處理些,如果涉及到圖片,微信公眾號上傳了一次,博客還得再來一次,挺費勁的。同時,為了保留最原始的文字,原始博文放在 GitHub 是一個不錯的選擇(用 Git 保留你的修改,不要太棒好嘛!)。

          既然博文都保存在了 GitHub 上,怎么方便快速的基于 GitHub 來搭建自己的博客呢?(有些人直接就讓在 GitHub 閱讀,雖然可以,但體驗還是不太好,而且看起來沒有那么高大上,是不是?)

          我想過使用 GitBook 來搭建,安裝時,發(fā)現(xiàn)官方已經(jīng)不維護 gitbook-cli 了,而且每次新增加文章,都得維護目錄等,也是挺費勁的。于是放棄了這種方式。

          這時我想到了通過靜態(tài)博客生成器來搞。最喜歡 Go,自然 Hugo 成為第一選擇。

          廢話不多少,記錄下我搭建的過程。

          01 安裝 Hugo

          你可以通過 https://github.com/gohugoio/hugo/releases 下載相應(yīng)的安裝包,我喜歡源碼安裝。

          $?go?get?-v?github.com/gohugoio/hugo

          如果你也想通過源碼安裝,請自行準備好 Go 環(huán)境。

          查看版本同時驗證是否安裝成功:(查看該文時,最新版本可能變了)

          $?hugo?version
          Hugo?Static?Site?Generator?v0.76.5?darwin/amd64?BuildDate:?unknown

          02 使用 Hugo

          在你本機某個目錄執(zhí)行如下命令,創(chuàng)建一個網(wǎng)站,我使用 polarisxu 這個名字。

          $?hugo?new?site?polarisxu
          Congratulations!?Your?new?Hugo?site?is?created?in?/Users/xuxinhua/project/testhugo/polarisxu.

          Just?a?few?more?steps?and?you're?ready?to?go:

          1.?Download?a?theme?into?the?same-named?folder.
          ???Choose?a?theme?from?https://themes.gohugo.io/?or
          ???create?your?own?with?the?"hugo?new?theme?"?command.
          2.?Perhaps?you?want?to?add?some?content.?You?can?add?single?files
          ???with?"hugo?new?/.".
          3.?Start?the?built-in?live?server?via?"hugo?server".

          Visit?https://gohugo.io/?for?quickstart?guide?and?full?documentation.

          進入 polarisxu 目錄,查看目錄結(jié)構(gòu)如下:

          $?tree
          .
          ├──?archetypes
          │???└──?default.md
          ├──?config.toml
          ├──?content
          ├──?data
          ├──?layouts
          ├──?static
          └──?themes

          6?directories,?2?files

          接下來需要為我們的網(wǎng)站指定一個主題,這里我們選擇 https://themes.gohugo.io/hermit/ 這個主題。

          $?git?clone?https://github.com/Track3/hermit.git?themes/hermit

          將該主題增加到網(wǎng)站的配置文件中,這樣才能生效:

          echo?'theme?=?"hermit"'?>>?config.toml

          測試下是否成功,運行:

          $?hugo?serve

          打開瀏覽器訪問:http://localhost:1313/,看到如下內(nèi)容:

          對該主題進行一些配置。一般的,主題會有例子,我們直接拷貝例子中的 config.toml 覆蓋網(wǎng)站的 config.toml:

          $?cp?-rf?themes/hermit/exampleSite/config.toml?.

          再次運行 hugo serve,頁面如下:

          可見,這個頁面內(nèi)容可以通過 config.toml 配置,根據(jù)需要做一些修改,頁面變成這樣:(不同主題可能不一樣)

          不過點擊 「文章」 和 「關(guān)于」 都報 404。

          增加列表頁

          在 content/posts 目錄下新增一個文件:_index.md,內(nèi)容如下:

          ---
          title:?"文章列表"
          ---

          這時(hugo serve 會自動編譯)點擊 Posts,頁面如下:

          增加 About 頁面

          同樣的,在 content/posts 目錄下新增文件 about.md,正文內(nèi)容隨意,類似這樣:

          ---
          title:?"關(guān)于"
          date:?"2020-12-01"
          ---


          這是關(guān)于頁面,polarisxu。

          測試文章

          接著,增加一篇測試文章:

          $?hugo?new?posts/my-first-post.md

          這會在 content/posts 目錄下生成一個 my-first-post.md 文件,里面內(nèi)容如下:

          ---
          title:?"My?First?Post"
          date:?2020-11-30T23:33:03+08:00
          draft:?true
          toc:?false
          images:
          tags:
          ??-?untagged
          ---

          其中 --- 之間的數(shù)據(jù)是文章的元數(shù)據(jù),在 Hugo 中叫做 Front Matter。

          隨意增加一些內(nèi)容,并做一些修改:(其中 isCJKLanguage: true 用于準確計算中文字數(shù))

          ---
          title:?"第一篇文章"
          date:?2020-11-30T23:33:03+08:00
          draft:?false
          toc:?false
          isCJKLanguage:?true
          images:
          tags:?
          ??-?文章
          ---


          這是第一篇文章。。。

          查看文章詳情:http://localhost:1313/posts/my-first-post/。

          如果文章完成,可以執(zhí)行 hugo 命令,生成靜態(tài)頁面。默認會將生成的靜態(tài)頁面放入 public 目錄中。

          關(guān)于 Hugo 更多的定制,比如 theme 的定制,這里不過多講解,有興趣的自己琢磨。比如雖然 https://polarisxu.studygolang.com/ 和這里的例子使用了同一個模板,但樣子卻有不少不同,你可以查看 https://github.com/polaris1119/polarisxu,對比到底做了什么,折騰一番,基本會了。

          03 使用 GitHub Pages 部署站點

          這是 GitHub 為你和你的項目準備網(wǎng)站的,GitHub Pages 官方站點:https://pages.github.com/,大概就是通過將網(wǎng)站內(nèi)容放到 GitHub,通過 GitHub Pages 可以弄出一個自己的站點。它最常使用的是通過 Jekyll 這個站點生成器生成靜態(tài)頁面,有興趣的自行查閱資料了解。我們應(yīng)該使用 Hugo 生成靜態(tài)頁面,因此直接將靜態(tài)頁面部署到 GitHub Pages。

          創(chuàng)建一個特殊的倉庫

          在 GitHub 上創(chuàng)建一個倉庫,不過倉庫名有特殊要求。如果是個人賬號,比如我的 GitHub ID 是 polaris1119,則倉庫名是:polaris1119.github.io;如果是組織賬號,比如 studygolang 這個組織,則倉庫名是:studygolang.github.io。

          配置倉庫

          進入倉庫的 Settings 頁面,有一個區(qū)塊叫 GitHub Pages,可以配置站點信息,比如內(nèi)容來源、自定義域名、是否啟用 HTTPS 等。

          說明如下:

          • 數(shù)據(jù)源默認使用主分支下的根目錄,我個人建議改為 docs 目錄;
          • 自定義域名如果留空,則默認倉庫名就是你的域名,比如我這里的 polaris1119.github.io;
          • 如果配置了自定義域名,則需要在你的域名配置上 CNAME 記錄。我這里就是 polarisxu 這個子域名的 CNAME 值是 polaris1119.github.io;
          • 如果配置了自定義域名,啟用 HTTPS 需要等待一段時間才能生效;

          你可以在該倉庫上正確的位置放置一個 index.html 文件,測試是否正常。

          小細節(jié):避免 Jekyll 起作用,可以在倉庫根目錄放一個空文件,文件名:.nojekyll

          部署我們的站點

          這里有兩種做法。

          1)方法一

          上面 Hugo 項目的代碼直接推送到 GitHub Pages 這個倉庫中,在通過 Hugo 生成靜態(tài)頁面時,指定目標(biāo)目錄為 docs:

          $?hugo?-d?docs

          這樣 docs 下面的內(nèi)容就是靜態(tài)頁面,是網(wǎng)站最終展示的內(nèi)容。

          2)方法二

          Hugo 源網(wǎng)站內(nèi)容單獨放在一個倉,比如我放在了 https://github.com/polaris1119/polarisxu 這個倉庫。這樣分兩個倉庫相對麻煩先。但也有一個好處:GitHub Pages 站點有內(nèi)容大小限制:不能超過 1 GB,這樣分開可以節(jié)省空間,而且 Hugo 內(nèi)容和站點解耦。

          因此每次在 Hugo 站點項目寫完文章后,需要生成靜態(tài)內(nèi)容,拷貝到 GitHub Pages 倉庫,提交代碼等。把這些步驟寫成一個腳本,瞬間變簡單了。

          #!/bin/sh

          hugo

          cp?-rf?public/*?../polaris1119.github.io/docs/

          cd?../polaris1119.github.io/

          git?add?*?&&?git?commit?-m?'new?article'?&&?git?push

          cd?../polarisxu/

          04 總結(jié)

          技術(shù)人員搞個自己的博客還是不錯的,開始時花些時間折騰一個自己喜歡的站點,之后就是抽時間產(chǎn)出內(nèi)容了。通過上面的介紹可知,現(xiàn)在搭建一個站點,完全不需要投入任何 money。

          怎么樣?有沒有沖動自己搞一個。歡迎交流~



          瀏覽 23
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩 欧美 国产高清91 | 午夜福利人人妻人人澡人人爽 | 黄色在线免费网站 | 影音先锋男人在线资源 | 美国性爱av |