<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>

          程序員不可錯過的一款Hexo博客主題

          共 4177字,需瀏覽 9分鐘

           ·

          2022-02-12 14:42

          自從 2018 年開始寫公眾號之后,我的個人站點(diǎn)(fwhyy.com)就停止更新了,直到最近查資料發(fā)現(xiàn)了hexo 博客的 stellar 主題,春節(jié)期間重新將博客維護(hù)起來,主要原因是因?yàn)樵撝黝}支持專欄的功能,點(diǎn)擊「閱讀原文」可以訪問博客。

          原來博客站點(diǎn)的部署情況如下:

          • 域名:在狗爹購買,DNSPod 進(jìn)行 DNS 解析;

          • 空間:Linode 東京機(jī)房,后來被遷移到東京機(jī)房 2 ,遷移后感覺速度變慢了;

          • 圖床:沒有使用圖床,圖片直接放在網(wǎng)站發(fā)布的目錄中;

          • 寫作工具:MWeb;

          • 發(fā)布方式:使用 hexo d 命令結(jié)合 Linode 服務(wù)器上安裝的 Git Hook 。

          因?yàn)樵L問速度的原因,便想換一種部署的方式,調(diào)整后的方案如下:

          • 空間:使用 GitHub Page ,然后進(jìn)行域名的綁定;

          • 域名:需要修改 DNSPod 中的 DNS 解析;

          • 圖床:選用 GitHub 圖床,配合 jsdelivr 做 CDN 加速

          • 寫作工具:Typora;

          • 發(fā)布方式:GitHub Action 。

          GitHub Page 綁定域名

          多年前我就用過 GitHub Page,所以這次只需要進(jìn)行域名的綁定就可以:

          1、在倉庫的 Settings 的 Pages 項(xiàng)中進(jìn)行域名的設(shè)置,如下圖:

          2、在倉庫的根目錄下創(chuàng)建 CNAME 文件,內(nèi)容為域名,如下圖:

          修改 DNSPod

          1、將原來的兩條 A 記錄禁用;

          2、添加新的 CNAME 記錄,記錄值為 oec2003.github.io。

          如下圖:

          圖床

          • 圖床使用的是 GitHub 圖床;

          • 使用

          • 做 CDN 加速;

          • 使用 PicGo 來進(jìn)行圖片的上傳;

          • 在寫作工具 Typora 中可以使用 PicGo 作為圖片的上傳服務(wù)。

            1、在 GitHub 上創(chuàng)建 hblog-images 的公有倉庫來用存儲圖片;

            2、下載 PicGo 并進(jìn)行配置:

            • 倉庫名:在 GitHub 中創(chuàng)建的公有倉庫的名稱 hblog-images

            • 分支名:通常為 master

            • 設(shè)定 Token:登錄 GitHub ,在 Settings / ?Developer settings / Personal access tokens 中生成 Token,需要注意的是生成之后Token只會出現(xiàn)一次,及時保存

            • 指定存儲路徑:隨便取個名字即可,比如上面配置的為 img/ ,表示圖片會上傳到倉庫的 img 目錄中

            • 自定義域名:這里就是設(shè)置 jsdelivr 的 CDN 地址,https://cdn.jsdelivr.net/gh/oec2003/hblog-images ,格式為:https://cdn.jsdelivr.net/gh//<倉庫名稱>

            3、在 Typora 的偏好設(shè)置中進(jìn)行圖片的上傳服務(wù)的設(shè)置,如下圖:

            4、在 Typora 中選中一張圖片點(diǎn)擊右鍵,選中上傳圖片,成功后圖片的地址會自動替換,如下圖:

            使用 GitHub Action

            使用 GitHub Action 需要兩個 GitHub 倉庫:

            • GitHub Page 的倉庫,https://github.com/oec2003/oec2003.github.com

            • 存放 Hexo 代碼的倉庫,https://github.com/oec2003/hblog-code

            具體步驟如下:

            1、生成 SSH Key

            ?ssh-keygen -t rsa -C "[email protected]"

            以 Mac 系統(tǒng)為例,生成的文件在 ~/.ssh 目錄中,id_rsa 為私鑰文件,id_rsa.pub 為公鑰文件。

            2、在 GitHub Page 的倉庫的 Settings > Deploy keys 中添加公鑰

            3、在 Hexo 代碼倉庫中的 Settings > Secrets > Actions 中添加私鑰

            4、在 Hexo 代碼倉庫的 Actions 頁簽添加 workflow,如下圖:

            5、創(chuàng)建的 workflow 為一個 yml 文件,內(nèi)容如下:

            ?name: hblog deploy
            ?on: [push]
            ?jobs:
            ? build:
            ? ? runs-on: ubuntu-latest
            ? ? name: A job to deploy blog.
            ? ? steps:
            ? ? - name: Checkout
            ? ? ? uses: actions/checkout@v1
            ? ? ? with:
            ? ? ? ? submodules: true
            ? ? - name: Cache node modules
            ? ? ? uses: actions/cache@v1
            ? ? ? id: cache
            ? ? ? with:
            ? ? ? ? path: node_modules
            ? ? ? ? key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
            ? ? ? ? restore-keys: |
            ? ? ? ? ? ${{ runner.os }}-node-
            ? ? - name: Install Dependencies
            ? ? ? if: steps.cache.outputs.cache-hit != 'true'
            ? ? ? run: npm ci
            ? ? ?
            ? ? ?# Deploy hexo blog website.
            ? ? - name: Deploy
            ? ? ? id: deploy
            ? ? ? uses: sma11black/[email protected]
            ? ? ? with:
            ? ? ? ? deploy_key: ${{ secrets.BLOG_DEPLOY_PRIVATE }}
            ? ? ? ? user_name: oec2003 ?
            ? ? ? ? user_email: [email protected] ?
            ? ? ? ? commit_msg: ${{ github.event.head_commit.message }} ?
            ? ? - name: Get the output
            ? ? ? run: |
            ? ? ? ? echo "${{ steps.deploy.outputs.notify }}"
            • 上面配置需要修改的部分是 steps 中的 Deploy 步驟;

            • uses:這里使用的是 sma11black/[email protected] ,這是一個現(xiàn)成的 hexo 發(fā)布 action;

            • deploy_key :上面第三步中在 Hexo 代碼倉庫的 Settings > Secrets > Actions 添加私鑰的名稱;

            • user_name:GitHub 登錄名;

            • user_email:生成 ssh 密鑰時使用的郵箱。

            寫作流程

            1、使用 hexo n 命令創(chuàng)建博客文章的 md 文件 ,該文件的所在目錄為 /source/_posts 目錄中;

            2、使用 Typora 打開 _posts 目錄,選擇創(chuàng)建的文件進(jìn)行內(nèi)容的編輯;

            3、文章中如果有圖片,直接粘貼到 Typora 中,并右鍵選擇上傳圖片即可,上傳成功后地址會自動替換為 jsdelivr 的地址;

            4、文章內(nèi)容編輯完成后,在 GitHub Desktop 中將修改內(nèi)容進(jìn)行提交和推送,GitHub Action 會自動進(jìn)行網(wǎng)站的生成和部署。

            常見問題

            域名問題

            每次 push 代碼自動構(gòu)建發(fā)布后,GitHub Page 的倉庫中配置的域名會丟失。按照如下步驟可以解決:

            1、在網(wǎng)站根目錄的 _config.yml 文件中找到 skip_render 節(jié)點(diǎn),配置 CNAME ,如下圖:

            2、在 /source 目錄中創(chuàng)建一個文件,命名為 CNAME ,里邊的內(nèi)容為你的域名。例如我的域名為:http://fwhyy.com , 該文件的內(nèi)容為:fwhyy.com 。

            Deploy keys 和 SSH keys

            每個倉庫的 Settings 中有 Deploy keys 的設(shè)置,全局的 Settings 中有 SSH keys 的設(shè)置,全局的 SSH keys 設(shè)置后,其他的倉庫就不用單獨(dú)設(shè)置了。

            而且這兩個是沖突的,如果設(shè)置了全局的 SSH keys ,再在某個倉庫中設(shè)置 Deploy keys 時,會提示 key 已經(jīng)存在。

            _config.yml 文件中的 deploy 設(shè)置

            這里需要注意兩點(diǎn):

            1、網(wǎng)站根目錄中的 _config.yml 的 deploy 節(jié)點(diǎn)需要進(jìn)行設(shè)置,否則 GitHub Action 運(yùn)行后不能將文件發(fā)布到 GitHub Page 的倉庫,deploy 配置如下:

            ?deploy:
            ? type: 'git'
            ? repo:
            ? ? github: [email protected]:oec2003/oec2003.github.com.git
            ? ? ?
            ? branch: master
            ? message: "Build at {{ now('YYYY-MM-DD HH:mm:ss Z') }}"

            2、上面配置中的 github 的地址配置的是 GitHub Page 倉庫的地址,因?yàn)榍懊嬗性O(shè)置過 Deploy keys 或 SSH keys ,所以這個地址使用 ssh 地址即可,如果要使用 https 地址,需要在地址中添加 GitHub 的賬戶和密碼。

            總結(jié)

            1、重新更新博客主要是因?yàn)檫@款主題,能支持專欄,還有一個原因就是博客更隨意,內(nèi)容也能隨時修改;

            2、第一次使用了 GitHub Action ,發(fā)現(xiàn)功能非常強(qiáng)大,也能帶來一些思考,比如說,在 steps 中的一個任務(wù)塊可以使用 uses 來引用其他現(xiàn)成的 action 。在零代碼平臺中一個很重要的思路就是組件的組合,組件如果能形成一個生態(tài),而且在組建功能時能方便地使用到公共組件,擴(kuò)展能力將會大大增強(qiáng)。

            瀏覽 231
            點(diǎn)贊
            評論
            收藏
            分享

            手機(jī)掃一掃分享

            分享
            舉報(bào)
            評論
            圖片
            表情
            推薦
            點(diǎn)贊
            評論
            收藏
            分享

            手機(jī)掃一掃分享

            分享
            舉報(bào)
            <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>
                    99精品视频在线播放免费 | 乱伦不卡 | 美女黄色操逼网站 | 青青草偷拍视频 | 国产精品揄拍一区二区 |