从 Octopress 迁移到 Hexo
之前一直使用Octopress,折腾过好多次,出问题不少,而且生成文章速度越来越慢,需要自己添加各种插件,还弄过支持TOC一直没成功。
调研了一下,最终决定迁移到 Hexo,主要的原因是:
- Hexo 的原理和 Octopress 一样,都是生成静态文件,这样可以方便地托管到 GitHub 和 GitCafe 上。
- Hexo 是基于 Node 的,而 Node 的速度非常快。
- Hexo 对 Octopress 的迁移很友好,图片引用方式完全一样,所以我的博客文章不需要做什么改动。
迁移到Hexo
Hexo官方文档:https://hexo.io/zh-cn/docs/index.html
因为GFW的存在,我在运行 npm
命令的时候都在前面加上了 proxychains4
: 详细教程
安装nodejs:我使用的是 v4.5.0 稳定版:https://nodejs.org/en
安装Hexo: npm install -g hexo-cli
初始化目录:
|
|
完成后便生成了以下目录结构:
|
|
相比 Octopress,Hexo 的目录结构更加简单:
- _config.yml 是博客的配置文件。
- scaffolds 是博客文章模板。
- source 是博客文章目录。
- themes 存放主题风格文件。
迁移和配置
迁移起来还是很方便,把以前 Octopress 的 source/_post
目录下的文章,拷贝到 Hexo 的同名目录下即可。
以前的图片目录,也可以直接拷贝到 source/images
目录下。
将之前的 CNAME
文件以及 百度和Google的验证文件
放到source目录下即可。
然后修改 Hexo _config.yml
|
|
安装hexo-deployer-git:
|
|
添加 --save
参数安装的模块的名字及其版本信息会出现在 package.json
的 dependencies
选项中。
修改 Hexo _config.yml
|
|
如果要同时部署在GitHub和Coding上,可以按照下面格式填写:
|
|
安装Sitemap插件
|
|
修改 Hexo _config.yml
|
|
配置主题
之前Octopress还弄过侧边栏、多说评论、摘要、访客记录、回到顶部、谷歌统计等,现在没有怪可惜的,但发现Hexo的主题Jacman居然已经帮忙支持了这些功能,还有TOC,这实在是令人欣喜!
安装主题:
|
|
使用主题:
修改 _config.yml 文件如下:
|
|
compress
值为true,在 hexo deploy
的时候会自动压缩 CSS 文件。
更新主题:
|
|
修改主题:
根据自己的需要修改themes/jacman/_config.yml文件。
相关的配置教程:官方配置指南
添加 标签云 widget:
在themes/jacman/_config.yml中,添加如下:
|
|
上传到Github
将原来在Github上的Repository删掉重建,格式依旧是
执行下面命令编译成静态文件并提交:
|
|
更新Hexo
官方发布了新版本后,可以在Hexo建立的博客目录内运行:
|
|
常用命令
|
|
命令简写:
|
|
常见问题
执行
npm install
的时候报错:Error: EACCES: permission denied, open '/Users/name/.npm
解决办法:sudo chown -R $(whoami) $HOME/.npm
Mac 运行
hexo
命令时报错:123{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }解决办法:安装
hexo-cli
的时候使用翻墙工具proxychains4 npm install -g hexo-cli
Markdown 语法:Hexo Markdown 简明语法手册
新建博客时
hexo new 中文
将中文标题转换为拼音:npm install hexo-new-post-pinyin --save
多台电脑同步发表文章:
12345678910111213141516171819202122232425262728293031323334353637在另一台电脑上先安装好 node 和 hexo-cli,然后执行下面的命令://把博客源码从服务器上克隆下来git clone [email protected]:marujun/marujun.git blog-sitecd blog-site//显示所有分支,并切换到源码分支git branch -agit checkout -b source origin/source//安装相应的 Node 依赖插件proxychains4 npm install//克隆我们修改过的主题git clone https://github.com/marujun/jacman.git themes/jacman//克隆已发布的网站元数据git clone [email protected]:marujun/marujun.git .deploy_gitcd .deploy_gitgit checkout -b coding-pages origin/coding-pagescd ..//现在就可以在新的电脑上发布文章了hexo ghexo d//发布完文章之后别忘了提交代码git add source/git commit -m 发布文章git push//在新的电脑上发布完文章之后,使用原来的电脑发布文章之前一定要先同步代码cd blog-sitegit pullcd .deploy_gitgit pullcd ..