Hexo 搭建博客

上一篇文章 阿里云虛擬機(jī)下搭建Typecho、WordPress博客 簡(jiǎn)單的記錄了Typecho、WordPress下搭建個(gè)人博客過(guò)程,今天這篇文章記錄下Hexo搭建個(gè)人博客的過(guò)程,對(duì)于此平臺(tái)的介紹分析個(gè)人博客搭建前期工作這篇文章也有說(shuō)道。

配置 Git

  • 安裝 Git:下載安裝后,注冊(cè) GitHub 賬號(hào)并配置 Git
  • 創(chuàng)建 GitHub Repository:Repository 名字必須是 你的 GitHub 名.GitHub.io

配置 SSH

打開終端 ,輸入cd ~/.ssh,如果果提示:No such file or directory說(shuō)明未配置 SSH

  • 本地生成密鑰對(duì)
    ssh-keygen -t rsa -C "你的郵件地址",注意命令中的大小寫不要搞混。按提示指定保存文件夾,不設(shè)置密碼。
  • 添加公鑰到 GitHub
  • 根據(jù)上一步的提示,找到公鑰文件(默認(rèn)為id_rsa.pub),用記事本打開,全選并復(fù)制。
  • 登錄 GitHub,右上角 頭像 —> Settings —>SSH keys and GPG keys —> New SSK key。把公鑰粘貼到 Key 中,任意填好 Title 并點(diǎn)擊 Add SSH key。
  • 終端中輸入命令 ssh -T git@github.com,選 yes,等待片刻可看到成功提示。
  • 修改本地的 ssh remote url,不用 HTTPS 協(xié)議,改用 Git 協(xié)議
  • GitHub 倉(cāng)庫(kù)中獲取 ssh 協(xié)議相應(yīng)的 url
  • 本地倉(cāng)庫(kù)執(zhí)行命令git remote set-url origin "你的倉(cāng)庫(kù)的url" ,配置完后可用git remote -v 查看結(jié)果

配置 hexo

  • 安裝 Node.js
  • 安裝 Hexo:npm install hexo-deployer-git --save,可用 hexo -v查看版本
    可能安裝過(guò)程并不是那么順利,這個(gè)時(shí)候就需要到代理來(lái)安裝:
  • 清除代理:npm config delete http-proxynpm config delete https-proxy
  • 指向國(guó)內(nèi)鏡像源:npm config set registry http://registry.cnpmjs.org/
  • 創(chuàng)建 Hexo 文件夾:新建放置博客的文件夾,進(jìn)入并執(zhí)行命令hexo init。hexo 會(huì)在目標(biāo)文件夾建立網(wǎng)站所需要的所有文件
  • 安裝依賴包:npm install
  • 部署:打開博客根目錄下的 _config.yml 文件,修改配置: 官方配置文檔

把Hexo部署到 GitHub

  • 生成靜態(tài)頁(yè)面執(zhí)行命令:hexo generatehexo g
  • 啟動(dòng)本地服務(wù)器執(zhí)行命令:hexo serverhexo s在瀏覽器中打開http://localhost:4000/,如果打開正常執(zhí)行下一步。
  • 部署網(wǎng)站執(zhí)行命令:hexo deployhexo d

在瀏覽器中打開iOSWynter.github.io預(yù)覽效果,反正我是打不開。

綁定域名

  • 向你的 Github Pages 倉(cāng)庫(kù)添加一個(gè)CNAME文件
  • 寫入域名如:wynter.wang
  • 注意不要帶www
  • 執(zhí)行hexo d -g
  • 向DNS中添加三條記錄

@ A 192.30.252.153
@ A 192.30.252.154
www CNAME username.github.io

  • 等待 DNS 配置生效(10分鐘左右)
  • 通過(guò)在瀏覽器中輸入域名訪問(wèn)網(wǎng)站

配置HTTPS

為了使網(wǎng)站更全最好的方法就是使用HTTPS,使用HTTPS后也會(huì)讓人感覺(jué)網(wǎng)站更專業(yè)點(diǎn),瞬間提升逼格。我們這里選用第三方免費(fèi)的證書來(lái)給自己的網(wǎng)站做HTTPS。推薦使用CloudFlareNetlify 這兩個(gè)平臺(tái)都提供了免費(fèi)SSL證書,兩者使用同樣簡(jiǎn)單,但是 Netlify 創(chuàng)建成功后會(huì)關(guān)聯(lián)到你的github中XXXX.github.io的項(xiàng)目,以后每次 GitHub 的 push 操作都會(huì)自動(dòng)觸發(fā) Netlify 重新編譯部署,而且還會(huì)生成一個(gè)xxx.netlify.com的二級(jí)域名,同樣也支持HTTPS。

CloudFlare 配置:

1、Add a website 填寫域名如:xxx.com,檢測(cè)DNS記錄值
2、根據(jù)提示設(shè)置CloudFlare站點(diǎn)IP解析(等待10分鐘左右)
3、選擇CloudFlare免費(fèi)加速Free Website方案

Netlify 配置:

1、登陸Netlify入XXXX.github.io項(xiàng)目
2、設(shè)置NameDomain
3、根據(jù)提示設(shè)置CloudFlare站點(diǎn)IP解析(等待10分鐘左右)
4、在官網(wǎng)菜單中選擇HTTPS點(diǎn)擊Let’s Encrypt開啟HTTPS

解決多說(shuō)功能失效

在配置完HTTPS后發(fā)現(xiàn)多說(shuō)的評(píng)論和分享功能失效,然后使用瀏覽器的審查,發(fā)現(xiàn)是由于多說(shuō)資源網(wǎng)址并不支持HTTPS導(dǎo)致,強(qiáng)制使用https://static.duoshuo.com/embed.js無(wú)法獲取embed.js文件,那么問(wèn)題就找到了,解決辦法如下:

1、在瀏覽器中輸入http://static.duoshuo.com/embed.js,然后command+s選擇頁(yè)面源碼點(diǎn)擊儲(chǔ)存
2、將儲(chǔ)存的embed.js文件,放到~/hexo/themes/next/source/js/的目錄下
3、打開~/hexo/themes/next/layout/_scripts/third-party/comments/目錄下的duoshuo.swig,將ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';替換為ds.src = '/js/embed.js';

附加Hexo常用命令

命令 介紹 簡(jiǎn)寫
hexo init [folder] 新建一個(gè)網(wǎng)站。如果沒(méi)有設(shè)置 folder,Hexo 默認(rèn)在目前的文件夾建立網(wǎng)站 無(wú)
hexo new [layout] 'title' 新建一篇文章。如果沒(méi)有設(shè)置 layout 的話,默認(rèn)使用 _config.yml 中的default_layout 參數(shù)代替。如果標(biāo)題包含空格的話,請(qǐng)使用引號(hào)括起來(lái) hexo n 'title'
hexo new page 'title' 新建頁(yè)面 無(wú)
hexo generate 生成靜態(tài)文件 hexo g
hexo publish 'title' 發(fā)表草稿 hexo p
hexo server 啟動(dòng)服務(wù)器。默認(rèn)情況下,訪問(wèn)網(wǎng)址為: http://localhost:4000/ hexo s
hexo deploy 部署網(wǎng)站 hexo d
hexo clean 清除緩存文件 (db.json) 和已生成的靜態(tài)文件 (public) hexo c
hexo deploy -generate 生成靜態(tài)頁(yè)面并部署 hexo d -g

總結(jié)

hexo搭建博客并不是這么簡(jiǎn)單,也是美美的折騰了一波搭建成功的,讓我先去哭會(huì)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容