动态

详情 返回 返回

Hexo最新實戰:(一)Hexo7.0+GitHub Pages博客搭建 - 动态 详情

前言

很多平台都能寫博客還有創作激勵,為什麼我又要搭一個?為什麼這次要選擇用Hexo框架?

對應的原因是流量自由和省錢,第一個,很多平台能寫但不是都有收益,而且平台有自身的規則,比如會屏蔽一些推廣類信息。如果我哪天做了一產品,是沒辦法直接用平台博客的方式硬推的,至少放碼和鏈接不行。第二個用Hexo搭到GitHub上,我可以不用買服務器,畢竟現在也還沒有想法要做一個什麼樣的東西。

總之,有個獨立博客,相比平台博客在內容約束上更自由。有想法了就發出來,做了遊戲什麼的就放出來,md的文章以後要存儲備份可以轉word,更方便在副業的路上輕裝探索。

image.png

Hexo介紹

Hexo是一款基於Node.js的開源靜態博客框架,用於快速、簡單且高效地搭建個人或團隊的靜態博客網站。説白了他是一個靜態網站生成器,我們新增文章只需要編輯md文件,通過運行命令再生成像html的靜態文件。其實我挺早聽過Hexo,但一直沒用,直到我cms搭的博客別人掛馬後。我關閉網站全面使用平台博客,但經種種原因,我又萌生了建獨立博客的想法,並且這次打算走長期路線,第一步先記錄上次Hexo搭建過程僅供參考。

流程

本地構建Hexo
配置 GitHub
代碼上傳與備份
個性化域名綁定

環境搭建

Hexo的博客,不管是頁面的添加還是構建都是通過npm命令,所以最基本要把Node安裝了。項目部署和部署的地方又在GitHub,所以Git也要提前裝好。這裏強調一下,運行Hexo命令最好在Git的GUI窗口裏,不要用Windows的cmd,坑多,關於Node和Git環境安裝就跳過了。

構建Hexo

安裝Hexo

npm install -g hexo

Snipaste_2024-05-23_19-48-32.jpg

檢驗Hexo是否安裝

hexo -v

項目構建

# 創建一blog項目
hexo init blog

# 進入項目
cd blog

# 安裝依賴包
npm install

其他操作

#右鍵 Git Bush,用户項目自動化部署
npm install hexo-deployer-git --save

hexo _config.yml中文亂碼問題
用Notepad++等編輯器打開,選擇 “編碼” -> “轉為UTF-8編碼”

安裝項目開發者操作包.jpg

項目預覽

# 清理舊的靜態文件
hexo clean

# 生成靜態文件
hexo g

# 運行預覽項目
hexo s

Snipaste_2024-05-23_19-55-21.jpg
Snipaste_2024-05-23_19-57-44.jpg

配置 GitHub

這裏雖然只是寫的配置GitHub,其實包含了本地用Git生成SSH密鑰對,和GitHub上公鑰添加,提交Token的獲取,以及Pages服務的開啓。還有倉庫名的建立也有講究,下面就從這些點開始逐一展開。

建立倉庫

倉庫名是個什麼講究法呢?就是格式要保持 “github賬號名.github.io”, 比如我的賬户名是“z11r00”,那麼倉庫就要建成 “z11r00.github.io”。如果不這樣,最後等用Hexo部署完畢後,初始的域名可能就是 “github賬號名.github.io/倉庫名”,會在後面多了一個路徑,而且hexo的config沒有設置好連css都加載不出來。
image.png

設置SSH

GitHub 的 SSH(Secure Shell)主要用於安全地連接到 GitHub 服務器,其實就是平時Git常用的克隆、拉取、提交、推送等操作。而好處除了安全外,就是提交代碼不用每次都要輸入賬號密碼。如果安裝了hexo-deployer-git的話,只需一個命令就可以完成項目從靜態構建到自動部署。

生成SSH密鑰對

打開Git面板,輸入 “ssh-keygen -t rsa -C GitHub賬户”, 這裏的GitHUb賬户是你登陸GitHub的郵箱等方式。生成後找到目錄下的id_rsa.pub(公鑰),用編輯器打開並複製。

實際生成id_rsa文件.jpg

GitHub中添加SSH公鑰

登陸GitHub網站,點擊個人頭像,找到 “Settings”->"SSH and GPG keys"後,點擊 “New SSH keys”,最後將前面複製的很長的公鑰字符串粘貼到Key文本框中。

github添加ssh.jpg
github添加ssh key.jpg
github粘貼ssh.jpg

驗證設備是否可連接

通過 “ssh -T git@github.com” 命令,驗證當前的設備是否可以連接。
校驗ssh是否綁定.jpg

獲取提交的token

雖然説SSH連接不用一直登陸,但是初次還要要的。而且不光要輸入賬號密碼還需要一個提交用的Token,沒有這個,運行hexo d一直提示Logon failed, 這個後面會集中列出報錯事故的。

獲取token,還是進入“Settins”,找到 “Developer settings”->“Personal access tokens”->“Tokens(classic)”, 然後設置備註和過期時間。最主要的權限要勾選 “workflow”、“gist”、“user”,點擊 “Generate”按鈕,生成的"ghp_"為前綴的就是token了,複製並保存下來。

提交倉庫失敗1.jpg
提交倉庫失敗3.jpg
提交倉庫失敗4.jpg
提交倉庫失敗5.jpg

項目部署

項目部署的其實是將Hexo生成的靜態文件提交到github上,後期添加文章也就是markdown文件,繼續重新生成,重新部署。而項目的代碼卻在本地,雖然代碼量不多,但是裏面的package.json和_config.yml,以及用到的主題包,還是有必要保存一下。所以我這裏的方法是,靜態部署項目放在一個公有倉庫,而項目源代碼單獨提交到一私有倉庫下。

修改配置

打開項目根目錄下的_config.yml,主要添加倉庫的地址,其他的配置下篇再介紹。因為hexo很多玩法更多的是配置和各種依賴,比如可以添加統計、留言、修改主題、站內搜索、甚至廣告位等等。
image.png

靜態文件生成

通過 “hexo clean” 先清理,然後執行 “hexo g” 重新生成。

將博客編譯為靜態文件項目.jpg

開始部署

通過命令 “hexo d”,開始部署項目,如果第一次運行,就需要前面提到的輸入github賬號密碼。確認Login後會再次彈一個窗口就是輸入Token了,最後完成部署。這裏需要注意一下的是,最好用Git面板運行命令,如果是cmd很有可能第二次的窗無法彈出,親測坑點。

頁面上傳.jpg
image.png

訪問測試

部署完成就進入倉庫下,除了查看提交的代碼外,打開倉庫下的 “Settings”,找到 “Pages”。

提交倉庫失敗6.jpg

個性化域名綁定

有一個git域名其實也不錯,為什麼還要買一個去綁定呢?一個是我本身這域名就空在這裏,第二個是可以給博客增加一點IP點,第三個是更利於某度的爬取。我看其他博主説國內一些搜索引擎屏蔽了github的pages博客,當然我沒有驗證過,下次也要做SEO相關的時候可以測試一下。

獲取IP地址

要想知道當前項目部署的獨立IP地址,只需要ping一下github分配的域名,比如我直接 “ping z11r00.github.io”就可以看到了。

IP獲取.jpg

域名解析

進入購買的域名控制枱,給自己的域名添加兩個解析,一個指向舊域名,一個解析到前面獲取到的IP地址。

域名解析.jpg

項目綁定域名

進入倉庫的“Settings”下,點擊 “Pages”,找到 “Custom domain”,將自己的域名粘貼進文本框保存。然後在項目的“source” 新建CNAME(沒有後綴), 打開文件粘貼域名,比如我的zerofc.cn,最後再重新部署項目訪問。

image.png

報錯彙總

1.extends includes/layout.pug block content include ./includes/mixins/post-ui.pug #recent-posts.recent-posts +postUI include includes/pagination.pug
項目啓動後報的這個,是因為缺失了一些依賴包,上面的是沒有 pug 以及 stylus 的渲染器,解決方法就是安裝對應的依賴。

npm install hexo-renderer-pug hexo-renderer-stylus --save

2.運行後打開hexo博客上的中文亂碼
解決方法是用Notepad++等編輯器打開,選擇 “編碼” -> “轉為UTF-8編碼”。

3.unable to access 'https://github.com/z11r00/z11r00.github.io.git/': Empty reply from server
出現這個報錯的是項目初次部署時,原因就是沒有設置Token,解決方法就是前面“配置 GitHub”的“提交Token獲取”部分。

4.unable to access 'https://github.com/z11r00/z11r00.github.io.git/': The requested URL returned error: 403
出現這個一般就是間接性打開GitHub網站,畢竟是國外網站,多刷新幾下,多請求幾下就可以了。

寫在後面

既然博客已經搭起來了,後面還有分兩步走,湊成三部曲。第一個是Hexo的各種配置和插件的玩法,第二個是Hexo博客SEO相關的內容,如果我那個小遊戲軟著下來了,可能博客的事情就會延後一點。

user avatar tianmiaogongzuoshi_5ca47d59bef41 头像 cyzf 头像 freeman_tian 头像 kobe_fans_zxc 头像 munergs 头像 kongsq 头像 youyoufei 头像 lin494910940 头像 joe235 头像 xw-01 头像 milton 头像 junxiudetuoba 头像
点赞 54 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.