【五】将博客从jekyll迁移到了hexo

时间:2021-09-05 05:29:45

本系列有五篇:分别是 
【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 
【二】jekyll 的使用 :主要是jekyll的配置 
【三】Markdown+jekyll在Gitpages上写blog的常用操作 :主要Markdown的使用

【四】搭建Markdown的编辑器

【五】将博客从jekyll迁移到了hexo


目录:

一、静态博客:

二、关于hexo和jekyll

三、Hero的安装

一、静态博客:

引用链接:https://www.zhihu.com/question/21981094/answer/20585133
来源:知乎
正题:以下内容来自于我个人的调查和使用经验,如果有错误或者主观的地方,欢迎指正。
注:marboo 和 Prose · A Content Editor for GitHub 第一次知道。

FarBox
国产,对中文支持好。类似于国外的 Scriptogr.amCalepin(类似还有很多,但这两个是主流,calepin 是 dropbox 用作博客的始祖),利用 dropbox 做仓库储存文章,Markdown 写作。一键安装,不需要懂技术,使用门槛低。可以生成静态网站(这点类似 site44)和博客。作为个人博客是个不错的选择,不用管数据库什么的,专注写作。但如果要做动态网站,还是用 WordPress 或者 site44 的付费版(如果你一定要用 dropbox 的话)。
收费参考:FarBox的服务与价格。对于个人用户可以说近乎免费。暂时未开通企业服务也说明它现在还不适合做企业网站。不过想想 WP 虽然是免费的,但是还得买空间,对比之下 dropbox 的免费2G和 Farbox 的“五年计划”还是较为划算的。

Jekyll • Simple, blog-aware, static sites
完全免费,可以托管在 Github 上。相当于技术版的 WP 地位,插件多,教程多。自定义程度高,世界中的程序员们都爱用,便于与他们沟通交流,结交朋友,学习知识。但是需要一定的技术知识,虽然现在中文教程很多,照做应该可以顺利搭建,但步骤还是稍显繁琐,特别对于不懂技术的人(比如我,纠结了很久 git 是什么),完全是一头雾水。
另外需要注意的是,用 Github Pages 建博客除了在技术上适合程序员,在内容上也更偏向分享程序界的知识。如果只是生活叨叨,那还是算了吧。参考使用 GitHub Pages 来做博客是否道德?@钟子豪的回答,不要漏看spread your ideas 这句话。

Octopress
据说是 Jekyll 的简化版,比 Jekyll 易上手。免费,托管 Github,教程不少。缺点同 Jekyll,另外据说文章一多非常慢。

Ghost - Just a blogging platform
因为放出话来要代替 WP 成为博客界的龙头老大而闹得沸沸扬扬的新平台。发起者是 WP 的(前?)员工,基本可以等同于年轻时的 WP(现在的老 WP 已然是一副 CMS 的样子了)。融合了些现代技术和思维,比如 Markdown 写作。和 WP 一样免费开源,需要买空间托管。缺点大概就是没什么特别的地方吧。

Marboo - Noting with Freedom
看了题目第一次知道,去官网看了一下,发现是个编辑器,可以写很多语言: Markdown、HTML还有程序。对于前后端都涉猎的人来说应该是个不错的编辑器。
更多请参考README

Hexo - Node.js blog framework
*产。用 Node.js 搭建的博客平台,速度快,免费,可以搭建在 Github 上。操作比 Jekyll 简单,命令少,易于记忆。 安装好像也简单一点。

Medium
一个完整社区,大家在里面写写读读。专注于写作和阅读。国内有类似的社区:简书十五言 - 每个人都在创造

Logdown, blog things with Markdown
在线。分免费版和付费版,具体差别请看Plans & Pricing « Logdown。注册后第一个月内是付费版试用,用得爽了可以选择继续付费使用,或者切换为免费版。免费版只有一个静态页面,不能绑定域名。Markdown 写作,图片拖曳上传,免费版30张,付费版10G空间。

Prose · A Content Editor for GitHub
在线编辑器,区别于 Jekyll、Octopress 以及 Hexo ,它提供一个建立免费 CMS 网站的环境(好吧,我承认我在翻译介绍页面)。

除了 Scriptogr.amCalepin,另外补充个 DocPad - Streamlined Web Development,看了官方文件,英语不好,后端不懂,所以不太明白。但是看见基于 node.js 和 express.js,是不是和 Hexo 有点类似呢?求其他大神补充吧。

二、关于hexo和jekyll

现在人气比较高的的静态博客系统有Jekyll,Hexo,Octopress等。Octopress是在Jekyll上的一个框架,网上褒贬不一,而且意见有点极端,说它好的人爱到简直是没了它不行,说它不好的人贬地一无是处。最终我试用了一下Jekyll跟Hexo。

hexo和jekyll一样都是个静态网站生成工具,hexo是一个*小伙使用nodejs开发的,jekyll则是用ruby开发,github内置了jekyll,可以直接将jekyll相关的文件提交到github,github会自动给你生成静态页面。

hexo由于采用nodejs开发的,因此需要在本地生成静态页面后在提交到github,不过hexo内置了hexo deploy命令,提交博客也是挺方便的。

之前使用jekyll搭建的个人博客,由于jekyll对分页和文章摘要支持的不是很好,了解一下hexo这个新东西,感觉其页面生成速度还是蛮不错的,对分页和文章摘要也支持的挺好,主要是小清新的light主题吸引了我,于是乎,马上有种把博客迁移到hexo的念头。

1、Jekyll应该是现在最火的静态博客系统了,从Github Pages支持Jekyll上就能看出来。所谓Github Page支持Jekyll,并不是说Github Page上面可以放Jekyll的博客而不能放Hexo的博客,而是说Github Page支持直接上传Jekyll的源文件,由Github Pages的服务器生成静态页面,无需在本地生成好后再上传。这样就能利用Github强大的版本管理功能维护博客内容、皮肤、设置之类的东西,而别人clone下来的也不再只是博客的HTML文件,而是包括皮肤、设置、文章等源文件。从开源的角度讲,更加方便了别人“拿来主义”你的东西,当然也方便了你“拿来主义”别人的东西。我现在用到的皮肤、搜索功能就是从别人那里clone下来的。

关于Jekyll的使用教程网上很多,官网的文档其实也很详细,详细请参考以下博文:

【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 
【二】jekyll 的使用 :主要是jekyll的配置 
【三】Markdown+jekyll在Gitpages上写blog的常用操作 :主要Markdown的使用

Jekyll功能很强大,但是用起来比较麻烦,如果懂一点HTML、JS的语法,用起来会更加得心应手。在Jekyll中,修改、使用皮肤的方式还是属于比较原始,在基本的框架下,没有办法同时保有多套皮肤、并方便的切换皮肤。另外,个人感觉Jekyll的皮肤相对于Hexo来说,普遍功能都简单一些。估计也就是因为Jekyll易用性的不足,才会有很多基于Jekyll的框架,比如OctoPress。

2、Hexo是一个*人写的基于Node.JS的静态博客框架。据说他最初之所以要写Hexo,是因为受不了OctoPress的生成速度,两者的页面生成速度据说是百倍级的差距。

相比于Jekyll,Hexo就更像是一套博客系统了,在设计之初就实现了文章与皮肤的分离。在Hexo里面有专门的皮肤目录,把皮肤放进去之后,只需要在_config.yml文件中写上theme: xxx 就能指定皮肤。易用性带来的是灵活性的不足,在Hexo中,只有皮肤相关的文件能执行函数,包含文章内容的markdown文件是无法执行函数的。

如果想在一篇文章中插入另外一篇文章的链接,直接插入那篇文章的固定链接当然可以,但是如果被应用文章的固定链接变了,添加的链接就失效了。为此,Jekyll提供了一种方法,就是在文章中调用post_url函数,{% post_url /subdir/2010-07-21-name-of-post %}。在Hexo中,想实现类似的功能就需要添加插件了。

引用知乎里一个人的说法,静态博客不是为 hacker 做的,是为”萨比西”的人做的。相比之下,Jekyll比Hexo更加”萨比西”。

三、Hero的安装

1、安装:参考官网文档
(1)安裝需求

安裝 Hexo 相當簡單;然而,在安裝前您必須先檢查下列您的電腦是否已經安裝下列軟體:

若您的電腦已經安裝上述的必備軟體,那麼恭喜您!只需要透過 npm 即可完成 Hexo 的安裝。

$ sudo npm install -g hexo-cli

如果您的電腦尚未安裝必備軟體的話,請根據下列的安裝指示來完成安裝。

(2)安裝 Git
  • Windows:下載並安裝 git.
  • Mac:使用 Homebrew, MacPorts安裝程式 安裝。
  • Linux (Ubuntu, Debian):sudo apt-get install git-core
  • Linux (Fedora, Red Hat, CentOS):sudo yum install git-core
(3)安裝 Node.js

安裝 Node.js 的最佳方式是透過 nvm

cURL:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

Wget:

$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

【五】将博客从jekyll迁移到了hexo

一旦安裝完成,重啟終端機並執行下列指令以安裝 Node.js。

$ nvm install 4

或者您也可以下載 安裝程式 來安裝。

【Ubuntu用户】在Ubuntu上,可以通过apt-get 安装

sudo apt-get install nodejs
【五】将博客从jekyll迁移到了hexo
(3)安装npm

npm是node.js的一个包管理器,因为Hero是Note.js做的,所以需要通过这个包管理器下载。

貌似官网上说安装了Node.js就可以直接使用npm程序来安装包,但是我在Ubuntu14.04上测试好像要再手动安装下npm,如下:

【五】将博客从jekyll迁移到了hexo

【五】将博客从jekyll迁移到了hexo

(4)安装hexo

一旦所有的必備軟體都安裝完畢後,即可透過 npm 安裝 Hexo。

$ sudo npm install -g hexo-cli

【五】将博客从jekyll迁移到了hexo

(5)测试是否安装成功:

输入hexo -v ,如果如下显示,表明正常

【五】将博客从jekyll迁移到了hexo

如果出现异常,请参考最后面的【异常1】

四、Hexo的配置和部署

1、一旦 Hexo 完成後,請執行下列指令,Hexo 會在指定資料夾中建立所有您需要的檔案。

$ hexo init <folder>
$ cd <folder>
$ npm install

【五】将博客从jekyll迁移到了hexo

建立完成後,專案資料夾會有下列檔案:

.
├── _config.yml
├── package.json
├── scaffolds
├── scripts
├── source
| ├── _drafts
| └── _posts
└── themes

【五】将博客从jekyll迁移到了hexo

_config.yml:跟Jekyll一样,hexo的配置文件也是根目录下的_config.yml,可配置内容相当多,可以在官方文档Configuration里查看详细解释。

【五】将博客从jekyll迁移到了hexo

package.json

應用程式資料。EJS, StylusMarkdown renderer 已預設安裝,您可以稍後移除。

package.json

{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": ""
},
"dependencies": {
"hexo": "^3.0.0",
"hexo-generator-archive": "^0.1.0",
"hexo-generator-category": "^0.1.0",
"hexo-generator-index": "^0.1.0",
"hexo-generator-tag": "^0.1.0",
"hexo-renderer-ejs": "^0.1.0",
"hexo-renderer-stylus": "^0.2.0",
"hexo-renderer-marked": "^0.2.4",
"hexo-server": "^0.1.2"
}
}
scaffolds

鷹架 資料夾。當您建立新文章時,Hexo 會根據 scaffold 來建立檔案。

scripts

腳本 資料夾。腳本是擴充 Hexo 的最簡易方式,在此資料夾內的 JavaScript 檔案會被自動執行。

source

原始檔案資料夾是放置內容的地方。檔案 / 資料夾名稱開頭為 _ (底線) 和隱藏檔案會被忽略,除了_posts 資料夾以外。Markdown 和 HTML 檔案會被處理並放到 public 資料夾,而其他檔案會被拷貝過去。

themes

主題 資料夾。Hexo 會根據主題來產生靜態檔案。

更多命令:详细请查看【官方命令文档

init
$ hexo init [folder]

建立一個新的網站。如果沒有設定 folder 的話,Hexo 會在目前的資料夾建立網站。

new
$ hexo new [layout] <title>

建立一篇新的文章。如果沒有設定 layout 的話,則會使用 _config.yml 中的 default_layout 設定代替。如果標題包含空格的話,請使用引號括起來。

generate
$ hexo generate

產生靜態檔案。

選項 描述
-d, --deploy 產生完成即部署網站
-w, --watch 監看檔案變更
publish
$ hexo publish [layout] <filename>

發表草稿。

server
$ hexo server

啟動伺服器。

【五】将博客从jekyll迁移到了hexo

【五】将博客从jekyll迁移到了hexo

選項 描述
-p, --port 覆蓋連接埠設定
-s, --static 只使用靜態檔案
-l, --log 啟動記錄器,或覆蓋記錄格式
deploy
$ hexo deploy

部署網站。

選項 描述
-g, --generate 部署網站前先產生靜態檔案
render
$ hexo render <file> ...

渲染檔案。

選項 描述
-o, --output 輸出位置
migrate
$ hexo migrate <type>

從其他系統 轉移內容

clean
$ hexo clean

清除快取檔案 (db.json) 和已產生的靜態檔案 (public)。

list
$ hexo list <type>

列出網站資料。

version
$ hexo version

顯示版本資訊。

選項

安全模式
$ hexo --safe

在安全模式下,不會載入外掛和腳本。當您在安裝新外掛後遭遇問題時,可以嘗試以安全模式重新執行。

除錯模式
$ hexo --debug

在終端機中顯示除錯訊息並儲存記錄檔到 debug.log。當您碰到問題時,試著以除錯模式重新執行一次,並把除錯訊息貼到 GitHub

安靜模式
$ hexo --silent

隱藏終端機的訊息。

自定配置檔的路徑
$ hexo --config custom.yml

自訂配置檔的路徑而不是使用 _config.yml

顯示草稿
$ hexo --draft

顯示 source/_drafts 資料夾中的草稿文章。

自定 CWD
$ hexo --cwd /path/to/cwd

自定目前工作目錄(Current working directory)的路徑。

2、写作:参考【官方

接下來,我們要在網誌中建立第一篇新文章,您可以直接從現有的範例文章「Hello World」改寫,但我們更建議您學習 new 指令。

$ hexo new [layout] <title>

您可以在指令中指定文章的佈局(layout),預設為 post,您可以透過修改 _config.yml 中的default_layout 設定來指定預設佈局。

【五】将博客从jekyll迁移到了hexo

【五】将博客从jekyll迁移到了hexo

我将新建文章的名字格式改为和jekyll的类似,便于按照时间排序:(在_config.yml中修改)

new_post_name: :year-:month-:day-:title.md

Disqus的名字必须要正确,不然是无法拿到你的评论的,可以登录disqus查看你的名称。

3、修改主题

【强烈推荐】NexT主题,非常漂亮。

hexo默认主题不是特别好看,不过Themes里面列出了相当多不错的主题,这里我选择了alberta,然后对其进行了进一步的简化。

主题的安装、使用简单的不能再简单了,这里不再啰嗦,主要写一下我对主题的删减、修改部分吧:

  1. 删去开始部分的图片(加载起来浪费时间)
  2. 删掉页面底部的版权说明(这玩意儿没人看吧)
  3. 删掉很炫的fancybox(这么炫,我不敢用)
  4. 去掉分享文章的链接(又不是鸡汤文,没人会分享的)
  5. 部署国内CND(jquery和google字体…丧心病狂!)
  6. 修改了blockquote,code,table的样式。

修改后的效果如图:

【五】将博客从jekyll迁移到了hexo

你可以在这里fork哦。前面说过我不是很会前端的Css、JavaScript,但是仍然能对Theme进行删减,说明Theme这块可读性是多么的好,所以你可以放心去定制自己的Theme吧。

顺便提一下,360的CDN不错,算是做了一件好事啊!

4、强大的插件

1、官方插件:https://hexo.io/plugins/

之前用jekyll博客系统时,为了实现订阅功能,用google找到一段“神奇”的代码,可以生成feed.xml页面。但是要添加订阅,必须输入blog.com/feed.xml,只输入主页地址blog.com是不行的。然后困扰了许久,才找到RSS Auto-discovery这篇文章,成功解决问题。

我只是想实现订阅功能而已,jekyll却逼着我了解了许多RSS协议的内容,好吧,谁让自己不是全栈工程师呢。而hexo对我这种新手都很友好,我要实现订阅,只需要使用hexo-generator-feed插件即可,我才懒得去了解你怎么实现订阅呢。

插件的安装卸载一条命令就能搞定,详细的插件列表可以看Plugins

不过在这里被坑了一次,文档中并没有说EJS, Stylus和Markdown renderer被移出核心模块,所以按照文档方法安装hexo后,根本不能够生成静态文件,后来看到Issue 620才知道怎么回事。

所以提醒一下,你需要手动安装EJS, Stylus和Markdown renderer:

$ npm install hexo-renderer-ejs --save
$ npm install hexo-renderer-stylus --save
$ npm install hexo-renderer-marked --save

对了,还有Tag Plugins,可以允许你在博客里面引用其他站点的内容。比如要引用jsFiddle中的代码片段,只需要 {% jsfiddle shorttag [tabs] [skin] [width] [height] %},或者是用{% gist gist_id [filename] %} 引入gist中的内容。

2、Hexo上使用MathJax来实现数学公式的表达——Hexo MathJax插件

【方法一】参考官方文档——数学公式

NexT 借助于 MathJax 来显示数学公式,此选项默认关闭。

编辑 主题配置文件(theme/next/_config.yml),将 mathjax 设定为 true 即可。

# MathJax Support
mathjax:ture 【五】将博客从jekyll迁移到了hexo

ProTip: 使用七牛 CDN 来加速 MathJax 脚本的加载

【方法二】

参考:

Hexo MathJax插件

Hexo上使用MathJax来实现数学公式的表达

原生的Hexo是不支持数学公式的显示的,但听说过Latex所以在网上搜教程来着,大部分搜到的渲染公式的方法都分为两个步骤:

  1. 在theme的header中插入对MathJax CDN script的引用,并配置inline math;
  2. 在文章中用inline math插入公式。
  3. 但其中似乎存在两个缺点:
  4. 需要人肉进行的工作太多;
  5. 遇到特殊符号需要人肉escape,否则会被markdown parser吃掉。

具体可参考【【三】用Markdown写blog的常用操作——>公式】

我们这里直接引用了CATX开发的一款插件来实现这个功能。

安装与初始化
$ npm install hexo-math --save

在blog文件夹中执行:

$ hexo math install

在_config.yml中添加:

plugins:
- hexo-math

部署完之后,相关的ejs等文件就会自动生成在你的theme相应的文件夹里了。

使用

简单的公式:

Simple inline $a = b + c$.

效果:

Simple inline a=b+c'>a=b+c.

复杂一点的独立公式:

$$\frac{\partial u}{\partial t}
= h^2 \left( \frac{\partial^2 u}{\partial x^2} +
\frac{\partial^2 u}{\partial y^2} +
\frac{\partial^2 u}{\partial z^2}\right)$$

效果:

【五】将博客从jekyll迁移到了hexo

∂u∂t=h2(∂2u∂x2+∂2u∂y2+∂2u∂z2)'>
$\cos 2\theta = \cos^2 \theta - \sin^2 \theta =  2 \cos^2 \theta - 1$

效果:

【五】将博客从jekyll迁移到了hexo

cos⁡2θ=cos2⁡θ−sin2⁡θ=2cos2⁡θ−1'>

最后来个牛逼的吧,薛定谔方程,大学物理考试貌似还复习过这个公式,虽然现在已经记不清是什么意思来着了:

$$ i\hbar\frac{\partial \psi}{\partial t}
= \frac{-\hbar^2}{2m} \left(
\frac{\partial^2}{\partial x^2}
+ \frac{\partial^2}{\partial y^2}
+ \frac{\partial^2}{\partial z^2}
\right) \psi + V \psi.$$
【五】将博客从jekyll迁移到了hexo
注意
  • 对了,在书写的过程中碰到了几个头疼的问题在这里记录一下,防止以后犯错:

  • Markdown会将一些标记给编译掉,所以在打{时不能知只打\{,需要再加一个斜线来编译,即\\{。因为\{在markdown编译的时候成了{,然后mathjax再编译就……一定记着编译过程有两次:第一次markdown,第二次mathjax。

  • 编写带有下标的公式时要在下划线前加上\,比如x_i应该写成x_i。

  • 数学公式属于符号后面应该有个空格:x_i\in C

  • 写行间公式时,注意换行是四个斜杠(即\\\\),打两个(即\\)的话可能解析出错。

【五】将博客从jekyll迁移到了hexo

  • 有关MathJax语法的教程网上特别多就不一一列举了,搜了一下可以参考《MathJax使用LaTeX语法编写数学公式教程》。最后,感觉没学过编译原理这门课有点遗憾,感谢师傅Willzhang在我头疼过程中的指点。

5、开始优雅地写博客吧

可以用hexo new "blog_name"来新建一篇文章,文章藏在source/_posts里面。我们可以在scaffolds里面设置生成新博客的模板,比如文章(layout: post)的模板post.md可以改为如下内容:

title: 更换博客系统——从jekyll到hexo
date: 1417276800000

tags:

category:

-–

这里文章有两种layout,如下:

Layout Destination
post(Default) source/_posts
page source

post用来放文章,page可以用来放一些比如“关于我”,“友情链接”,“404页面”之类的页面。GitHub Pages 自定义404页面非常容易,直接在根目录下创建自己的404.html就可以。但是自定义404页面仅对绑定*域名的项目才起作用,GitHub默认分配的二级域名是不起作用的,使用hexo server在本机调试也是不起作用的。

目前有如下几个公益404接入地址,我选择了腾讯的。404页面,每个人可以做的更多。

只需要在source目录添加404.html文件即可,文件内容为:

layout: false
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>宝贝,公益404带你们回家</title>
</head>
<body>
<script type="text/javascript" src="http://www.qq.com/404/search_children.js" charset="utf-8"></script>
</body>
</html>

一定要设置layout:false(还有三个短横线),不然会被hexo解析。

写完之后,可以用hexo generate生成静态文件,然后用hexo server运行本地服务器,查看效果。如果发现有问题,在md文件改了之后,刷新页面就可以看到更改的效果了(是不是比jekyll强大啊)。

更多用hexo写文章的内容可以看官方文档:Create a New Post

自己之前写了十几篇文章,只需要将开头部分稍作改动即可直接迁移到hexo中,文章数目比较少,所以就手动更改文章头了。

hexo中还提供了其他的命令,可以看Commands

6、佈署:官方文档

Hexo 提供了快速方便的一鍵佈署功能,讓您只需一個指令就能將網站佈署到伺服器上。

$ hexo deploy

在開始之前,您必須先在 _config.yml 中修改設定,一個正確的部署設定中至少要有 type 欄位,例如:

deploy:
type: git

您可同時使用多個 deployer,Hexo 會依照順序執行每個 deployer。

deploy:
- type: git
repo:
- type: heroku
repo:
Git

安裝 hexo-deployer-git

$ npm install hexo-deployer-git --save

修改設定。

deploy:
type: git
repo: <repository url>
branch: [branch]
message: [message]
選項 描述
repo 儲存庫(Repository)網址,特别注意是SSH的地址不是Http的
branch 分支名稱。如果您使用的是 GitHub 或 GitCafe 的話,程式會嘗試自動偵測。
message 自定提交訊息 (預設是 Site updated: {{ now("YYYY-MM-DD HH:mm:ss") }})

【五】将博客从jekyll迁移到了hexo

【注意】hexo使用ssh部署,所以首先要确定已经安装和配置好ssh与git的链接,不然部署会出现授权问题,详细请参考【git配置ssh(github)

repo的地址的ssh 的地址也要注意是SSH的,可以在github上复制

【五】将博客从jekyll迁移到了hexo

输入hexo d 或者hexo deploy,会自动生成静态文件然后进行部署

【五】将博客从jekyll迁移到了hexo

成功。。。。通过github page访问。。

【五】将博客从jekyll迁移到了hexo

7、迁移Disqus评论

hexo生成的的文章url中时间格式为/2013/11/22/,而之前博客的url中时间为2013-11-22,导致之前文章的评论就消失了。

好在Disqus允许我们迁移博客评论,具体方法可以看Help: Migration Tools。原理其实很简单,Disqus评论默认将文章url作为标识符,每个url对应该文章的评论,迁移时我们只需要建立起新旧文章地址的对应关系即可。

8、绑定域名

改了博客界面之后,顺便注册了一个域名,绑定github博客中。你可以在free domains域名免费注册里选择自己喜欢的域名,然后申请(免费)。申请成功之后,添加两条域名解析A记录,如下图:

【五】将博客从jekyll迁移到了hexo

然后可以用dig命令(当然也可以用nslookup)验证域名记录是否生效:

$ dig zhaofei.tk +nostats +nocomments +nocmd

; <<>> DiG 9.8.3-P1 <<>> zhaofei.tk +nostats +nocomments +nocmd
;; global options: +cmd
;zhaofei.tk. IN A
zhaofei.tk. 14439 IN A 192.30.252.153
zhaofei.tk. 14439 IN A 192.30.252.154

然后在自己的博客仓库根目录新建名为CANME的文件,里面内容为你的域名地址。

如果没有绑定成功,可以看github的帮助文档:My custom domain isn’t working


还有添加到搜索引擎,站点数据统计等,准备折腾完再记录一下。

遇到的一些问题

1、异常1:/usr/bin/env: node: No such file or directory(运行hexo的时候,提示找不到node文件)

【五】将博客从jekyll迁移到了hexo

解决方法:参考:【run npm command gives error "/usr/bin/env: node: No such file or directory" #3911

I've found this is often a misnaming error, if you install from a package manager you bin may be called nodejs so you just need to symlink it like so "ln -s /usr/bin/nodejs /usr/bin/node"

这是由于hexo调用hexo的时候是用node这个名字,而我们安装nodejs时是默认安装了nodejs这个名字,所以提示node这个文件不存在,我们可以如下检验。

【五】将博客从jekyll迁移到了hexo

为了解决问题,我们只需为nodejs增加一个叫node的软链接,命令如下:

sudo ln -s /usr/bin/nodejs /usr/bin/node

【五】将博客从jekyll迁移到了hexo

问题解决。。。重新打入hexo -v,正常:

【五】将博客从jekyll迁移到了hexo

2、文章摘要设置

hexo和jekyll一样,都支持使用markdown编写文章,hexo的文章保存在source/_post目录下。

需要注意的是,在编写markdown文档是,在文档中插入<!--more-->就可以将文章切分开了,more以上的部分会已摘要的形式显示,当查看全文是more一下的部分也会显示出来。

3、图片路径问题

这个也很简单,直接将图片文件夹放到source目录下即可。

同理将favicon.ico和CNAME(github支持在CNAME文件中加入自定义域名,通过自定义的域名访问自己的网站)也放到source目录。

参考:

将博客从jekyll迁移到了hexo

更换博客系统——从jekyll到hexo

hexo你的博客
Tips for configuring an A record with your DNS provider

HEXO 指定404页面