本系列有五篇:分别是 
【一】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

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

$ nvm install 4

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

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

sudo apt-get install nodejs
(3)安装npm

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

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

(4)安装hexo

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

$ sudo npm install -g hexo-cli

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

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

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

四、Hexo的配置和部署

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

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

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

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

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

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

啟動伺服器。

選項 描述
-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的类似,便于按照时间排序:(在_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的样式。

修改后的效果如图:

你可以在这里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

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

效果:

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

效果:

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.$$
注意
  • 对了,在书写的过程中碰到了几个头疼的问题在这里记录一下,防止以后犯错:

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

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

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

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

  • 有关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") }})

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

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

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

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

7、迁移Disqus评论

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

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

8、绑定域名

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

然后可以用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文件)

解决方法:参考:【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这个文件不存在,我们可以如下检验。

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

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

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

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

【五】将博客从jekyll迁移到了hexo的更多相关文章

  1. 将博客从jekyll迁移到了hexo

    关于hexo和jekyll hexo和jekyll一样都是个静态网站生成工具,hexo是一个台湾小伙使用nodejs开发的,jekyll则是用ruby开发,github内置了jekyll,可以直接将j ...

  2. 为什么要写博客(jekyll迁移)

    layout: post title: '为什么要写博客' date: 2019-08-12 author: xiepl1997 tags: 随笔 曾经我写过不少博客,为什么没有坚持下去?不知道. 这 ...

  3. 第五周博客作业 <西北师范大学| 周安伟>

    第五周博客作业 一,助教博客链接https://home.cnblogs.com/u/zaw-315/ 二,本周工作查阅项目汇报,班级微信群.对同学们的中期项目汇报进行查看,解决上周留言问题,对及时出 ...

  4. 使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理

    原文:使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 摘要 通过对博客文章的管理,实现外键操作. 目录[-] 八.博客文章管理 1.查看文章 2.添加博客        3 ...

  5. 强大博客搭建全过程(1)-hexo博客搭建保姆级教程

    1. 前言 本人本来使用国内的开源项目solo搭建了博客,但感觉1核CPU2G内存的服务器,还是稍微有点重,包括服务器内还搭建了数据库.如果自己开发然后搭建,耗费时间又比较多,于是乎开始寻找轻量型的博 ...

  6. 将个人博客从GitHub迁移至阿里云服务器过程总结

    让我们先回顾下前两篇博客: 程序员如何从0到1搭建自己的技术博客 在个人博客中优雅的使用Gitalk评论插件 通过前两篇博客,我们了解了如何快速的从0到1搭建一个个人博客并使用了Gitalk评论插件, ...

  7. 第十五周博客作业 <西北师范大学| 周安伟>

    第十五周作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求链接https://www.cnblogs.com/nwnu-daizh/p/10946673 ...

  8. Alpha项目测试--个人第五次博客

    第五次个人博客--测试 这个作业属于哪个课程 系统分析与设计 这个作业的要求在哪里 Alpha项目测试 团队名称 西柚排课王 这个作业的目标 测试别人的项目,从客观的角度体验项目 一.测试项目一 团队 ...

  9. 博客从 CloudBase 迁移至云主机

    迁移起因 原来的博客 其实从很久以前就想要写博客,但总是断断续续的,一直都没有认真地开始. 最终,决定使用静态博客工具作为自己博客的承载体.在多种工具的比较下,最终选择了 Hugo 并部署到 Gith ...

随机推荐

  1. iOS之开发小技巧

    1.xcode如何添加快捷代码 xcode添加快捷代码 属性 2.cocoapods安装 cocoapods安装 3.iOS真机调试 真机调试 4.命令行自动打包 xcrun -sdk iphoneo ...

  2. windows下安装easy_install, pip 及whl文件安装方法

    转:http://www.cnblogs.com/wu-wenmin/p/4250330.html 写在前面的话 最近在看"Computer Vision with Python" ...

  3. Notepad++正则表达式语法

    \   转义字符  如:要使用 “\” 本身, 则应该使用“\\” \t  Tab制表符  注:扩展和正则表达式都支持 \r  回车符CR   注:扩展支持,正则表达式不支持 \n  换行符LF   ...

  4. Java 反射调用动态方法

    package com.pigetest.util; import java.lang.reflect.Method; public class PrivateMethodTestHelper { p ...

  5. 不注册COM在Richedit中使OLE支持复制粘贴

    正常情况下在Richedit中使用OLE,如果需要OLE支持复制粘贴,那么这个OLE对象必须是已经注册的COM对象. 注册COM很简单,关键问题在于注册时需要管理员权限,这样一来,如果希望APP做成绿 ...

  6. OpenLayers 3 之 地图样式(ol.style)详解

    地图样式是由 style 类控制的,其包含了地图样式的方方面面,例如,填充色.图标样式.图片样式.规则图形样式.边界样式.文字样式等,样式一般针对矢量要素图层. 矢量图层样式可以事先写好,写成静态的, ...

  7. JS简单解决并发量

    经常在写代码的时候碰到这样的场景:页面初始化时显示loading页,同时启动多个ajax并发请求获取数据,当每个ajax请求返回时结束loading. 举个例子,一个下订单的页面,要查询常用地址信息. ...

  8. 尽量用goto代替尾递归

    void PrintList(List L) { if(L!=Null) { PrintElement(L->Element); PrintLisr(L->Next); } } 所谓尾递归 ...

  9. DelphiXE10.1项目中增加预编译的方法

    操作: 菜单选择Proceject->Options->Delphi Compilerz在Conditional Defines(第一行)中添加预编译标识.例:VCL代码:uses{$IF ...

  10. unity3d UGUI多语言

    从Foundation插件中抽离出的多语言.原理很简单,给Text绑定key,在程序开始时设置本地语言即可. 目录结构: LanguageEditor.cs:自定义编辑器: LanguageServi ...