hexo 和 Github 搭建個(gè)人博客記錄

所需準(zhǔn)備

創(chuàng)建Github個(gè)人倉庫

注冊Github賬號,并點(diǎn)擊Github中New repository建立新倉庫,倉庫名為: 用戶名.github.io

安裝并配置Git

在Git官網(wǎng)下載安裝包,安裝后在命令行下輸入git檢測是否安裝成功。

打開Git Bash, 輸入以下命令配置用戶名和郵箱信息


git config --global user.name "Github用戶名"

git config --global user.email "Github注冊郵箱"

生成ssh密鑰文件


ssh-keygen -t rsa -C "Github注冊郵箱"

然后其他選項(xiàng)默認(rèn)。

設(shè)置Github中的密鑰,和電腦上的密鑰配對,即可在電腦上使用Git管理Github.

  1. 打開Github_setting_key頁面,新建 new SSH Key

  2. Title任意, 將密鑰從C:\\users\"your name"\.ssh\id_rsa.pub中復(fù)制過來, 點(diǎn)擊Add SSH Key

  3. 在Git bash中輸入ssh git@github.com 檢測是否設(shè)置成功

安裝Node.js

直接下載Node.js for windows, 并在安裝時(shí)注意將環(huán)境變量和npm裝上.

檢測是否安裝成功, 在命令行輸入node -v以及npm -v即可

安裝hexo

任意位置新建一個(gè)名為Blog的文件夾(可以是其他任意的英文), hexo框架以及之后發(fā)布的網(wǎng)頁都將安裝到這個(gè)文件夾中。

進(jìn)入Blog文件夾,啟動命令行,用npm安裝hexo


npm install -g hexo-cli

安裝好后初始化


hexo init blog

隨后即可用hexo的各項(xiàng)命令制作靜態(tài)網(wǎng)頁了.

發(fā)布網(wǎng)站

在blog根目錄中_config.yml文件里修改


deploy:

type: git

repo: 倉庫的完整路徑.git

branch: master

最后在Git中安裝部署插件, 輸入命令


npm install hexo-deployer-git --save

即可使用命令hexo d來發(fā)布網(wǎng)站了。

綁定個(gè)人域名

可在域名提供商處購買域名,在國內(nèi)用DNSpod解析。

先在source\post\文件夾下新建文件CNAME,文件名一定要大寫,沒有后綴名. 用編輯器打開該文件后輸入剛申請的域名YourDomain.com.

在DNSpod的操作頁面中添加兩條域名解析記錄


@    CNAME    YourUserID.github.io

www  CNAME    YourUserID.github.io

等候10分鐘,即可用域名YourDomain.com打開個(gè)人博客.

一些小問題

不能生成categories和tags

需要用命令hexo new page categories來生成categories頁面.

Hexo 將MathJax中的某些命令渲染錯(cuò)誤

解決方法是換一個(gè)Hexo的引擎, 使用以下命令


npm uninstall hexo-renderer-marked --save

npm install hexo-renderer-pandoc --save

注意,前提是電腦中安裝了Pandoc

中英文之間需要手動打空格

可以用Next的名為pandu的插件自動生成空格,具體使用方法參見pangu_github

如何引用站內(nèi)的博文

可以用hexo3.0引入的Render Pipeline Changed特性在所要引用的地方,輸入以下代碼


{% post_path hello-world %}

// /2015/01/16/hello-world/

{% post_link hello-world %}

// <a href="/2015/01/16/hello-world/">Hello World</a>

{% post_link hello-world Custom Title %}

// <a href="/2015/01/16/hello-world/">Custom Title</a>

{% asset_path example.jpg %}

// /2015/01/16/hello-world/example.jpg

{% asset_link example.jpg %}

// <a href="/2015/01/16/hello-world/example.jpg">example.jpg</a>

{% asset_link example.jpg Example %}

// <a href="/2015/01/16/hello-world/example.jpg">Example</a>

{% asset_img slug %}

// <img src="/2015/01/16/hello-world/example.jpg">

注意引用博文時(shí),若博文的標(biāo)題中有自動生成的時(shí)間,則只需要將hello-world換成博文的title即可,不需要加時(shí)間.

創(chuàng)建about頁面

新建一個(gè) about 頁面:


hexo new page "about"

菜單顯示 about 鏈接,在主題的 _configy.yml 設(shè)置中將 menuabout 前面的注釋去掉即可。


menu:

  home: /

  archives: /archives

  tags: /tags

  about: /about

用Busuanzi統(tǒng)計(jì)訪問量

注意在Next 5.01以上版本中已經(jīng)內(nèi)置有Busuanzi,只需在主題配置文件打開即可。 參看說明

在主題的themes\next\layout\_partial\footer.swig中添加如下代碼


{% if theme.footer.busuanzi.enable %}

  <script async src="http://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">

</script>

{% endif %}

添加后Busuanzi就可以統(tǒng)計(jì)網(wǎng)站流量了.

在網(wǎng)站主頁顯示訪問人數(shù),同樣在剛才的文件中添加如下代碼


{% if theme.footer.busuanzi.enable %}

<span id="busuanzi_container_site_uv">

  曾有<span id="busuanzi_value_site_uv"></span>人大駕光臨

</span>

{% endif %}

這段代碼按pv方式統(tǒng)計(jì),每一次點(diǎn)擊都算一次訪問.若按uv方式統(tǒng)計(jì),即一個(gè)用戶不管多少次點(diǎn)擊都算一次訪問,將代碼中pv改成uv即可.

最后若想激活效果,在themes\next\_config.ymlfooter字段中添加代碼


busuanzi:

    # busuanzi analysis

    enable: true

文章字?jǐn)?shù)統(tǒng)計(jì)

使用插件hexo-symbols-count-time來統(tǒng)計(jì)文章字?jǐn)?shù),參見文檔

首先安裝插件


npm install hexo-symbols-count-time --save

隨后在Hexokinase配置文件中添加字段


symbols_count_time:

  symbols: true

  time: true

  total_symbols: true

  total_time: true

最后在NexT主題的配置文件中找到配置


symbols_count_time:

  separated_meta: true

  item_text_post: true

  item_text_total: false

  awl: 4

  wpm: 275

配置好即可.

如何讓Google和Baidu可以搜索到網(wǎng)站

可以參見教程

解決FontAwesome訪問太慢的問題

可以用國內(nèi)的CDN

在Next的Config文件中找到fontawesome:一欄,然后將對應(yīng)的版本替換就好.

注意,上述的CDN替換可能導(dǎo)致加載圖片出錯(cuò)的問題。

使用MathJax時(shí),如何讓長公式自動斷行?

themes\next\layout\_third-party\math\mathjax.swig 文件中添加如下代碼


<script type="text/x-mathjax-config">

  MathJax.Hub.Config({

    CommonHTML: { linebreaks: { automatic: true } },

    "HTML-CSS": { linebreaks: { automatic: true } },

    SVG: { linebreaks: { automatic: true } }

  });

</script>

具體參見官方文檔

Hexo s 的妙用

在調(diào)整hexo網(wǎng)站時(shí),可以在終端運(yùn)行hexo s命令。此時(shí)hexo會自動將你所作的更改顯示到http://localhost:4000/之上,省卻了重復(fù)生成并部署網(wǎng)站的操作.

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

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

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