简述
本文主要讲解Hexo安装时遇到的坑,Hexo安装之后的使用教程,Hexo安装需要的环境和教程,请自行百度、谷歌,主要整理来自简书,后续我也会陆续补充。
1. 安装Hexo
1 | $ npm install -g hexo |
这里可能安装失败,可能权限不够,在命令前加sudo
1 | $ sudo npm install -g hexo |
2. 部署Hexo
1 | $ hexo init |
注:这个命令会初始化博客的目录,所以,执行这个命令时,在你想创建的目录下执行,就自动生成到对应目录下。
执行命令生,会在当前命令的路径下,生成以下文件:
1 | . |
- .deploy:执行hexo deploy命令部署到GitHub上的内容目录
- public:执行hexo generate命令,输出的静态网页内容目录
- scaffolds:layout模板文件目录,其中的md文件可以添加编辑
- scripts:扩展脚本目录,这里可以自定义一些javascript脚本
- source:文章源码目录,该目录下的markdown和html文件均会被hexo处理。该页面对应repo的根目录,404文件、favicon.ico文件,CNAME文件等都应该放这里,该目录下可新建页面目录。
- _drafts:草稿文章
- _posts:发布文章
- themes:主题文件目录
- _config.yml:全局配置文件,大多数的设置都在这里
- package.json:应用程序数据,指明hexo的版本等信息,类似于一般软件中的关于按钮
3. Hexo命令
Hexo下,通过 _config.yml 设置博客,可以想象成我们用的软件里的设置一样,只是它通过一个文件列出这些参数,然后让我们填写和修改。
全局设置
在你博客目录下有一个文件名_config.yml,打开可以配置信息。
局部页面
在你博客目录下 \themes\你使用的主题_config.yml
写博客相关命令
Hexo常用命令:
1 | hexo new "postName" #新建文章 |
当然,如果每次输入那么长命令,那么一定想到用简写:
1 | hexo n == hexo new |
其它的,还可以复合命令:
1 | hexo deploy -g |
有时候生成的网页出错了,而生成的rss其实没有清除,那么用下面的命令,在重新生成吧
1 | $ hexo clean |
当本地调试出现诡异现象时候,请先使用 hexo clean 清理已经生成的静态文件后重试。
注:Hexo原理就是hexo在执行hexo generate时会在本地先把博客生成的一套静态站点放到public文件夹中,在执行hexo deploy时将其复制到.deploy文件夹中。Github的版本库通常建议同时附上README.md说明文件,但是hexo默认情况下会把所有md文件解析成html文件,所以即使你在线生成了README.md,它也会在你下一次部署时被删去。怎么解决呢?
在执行hexo deploy前把在本地写好的README.md文件复制到.deploy文件夹中,再去执行hexo deploy。
4. 一些报错处理
- 在本地调试开启server的时候出现如下提示:
1 | ERROR Plugin load failed: hexo-server |
原因:
Besides, utilities are separated into a standalone module. hexo.util is not reachable anymore.
解决方法,执行命令:
1 | sudo npm install hexo-server |
- 执行命令hexo server,有如下提示:
1 | Usage: hexo |
原因:
我认为是没有生成本地服务
解决方法,执行命令:
1 | npm install hexo-server --save |
- 提示:hexo-server@0.1.2 node_modules/hexo-server
白板和Cannot GET / 几个字
原因:
由于2.6以后就更新了,我们需要手动配置些东西,我们需要输入下面三行命令:
1 | $ npm install hexo-renderer-ejs --save |
这个时候再重新生成静态文件,命令:
1 | $ hexo generate (或hexo g) |
启动本地服务器:
1 | $ hexo server (或hexo s) |
- 升级 node 版本之后编译报错
原因:可能是由于 hexo 依赖的 node 版本号还是以前版本而导致
解决方法:建议重装一下 hexo ,重新执行一遍 npm install -g hexo-cli
即可。
5. 博客管理
上面命令中,其实生成文章,可以直接把写好的文章插入到目录/_posts
下面,后缀为.MD就行,在文章头部固定格式:
- title: Mac提高使用效率的一些方法 # 文章的标题,这个才是显示的文章标题,其实文件名不影响
- date: 2015-09-01 20:33:26 # 用命令会自动生成,也可以自己写,所以文章时间可以改
- categories: technology # 文章的分类,这个可以自己定义
- tags: [Mac,效率,快捷方式] # tag,为文章添加标签,方便搜索
当然,里面有很多东西的,如果你专注于写作,那么可以不用太关心了,比如tags标签可以写成下面那样,因为hexo文章的头部文件是用AML来写的。
1 | tags: |
如果在博客文章列表中,不想全文显示,可以增加** , 后面的内容就不会显示在列表。
6. 插件
安装插件
1 | $ npm install <plugin-name> --save |
添加RSS
1 | $ npm install hexo-generator-feed |
然后,到博客目录 /public 下,如果没有发现atom.xml,说明命令没有生效!!!(楼主就是在这里被坑了次)
解决方法:
1 | $ npm install hexo-generator-feed --save |
这个命令来自hexo-generator-feed
1 | Install |
其中可以选择:
然后在 Hexo 根目录下的 _config.yml 里配置一下
1 | feed: |
最后,在 hexo generate之后,会发现public文件夹下多了atom.xml!
例如要订阅我的blog只要输入ihtc.cc/atom就可以搜寻到啦!
添加Sitemap
Sitemap 的提交主要的目的,是要避免搜索引擎的爬虫没有完整的收录整个网页的内容,所以提交 Sitemap 是能够补足搜索引擎的不足,进而加速网页的收录速度,达到搜寻引擎友好的目的。
1 | $ npm install hexo-generator-sitemap --save |
这个命令来自hexo-generator-sitemap
1 | Install |
同样可以选择:
在 Hexo 根目录下的 _config.yml 里配置一下
1 | sitemap: |
对于国内用户还需要安装插件 hexo-generator-baidu-sitemap, 顾名思义是为百度量身打造的。
安装
1 | $ npm install hexo-generator-baidu-sitemap --save |
然后在 Hexo 根目录下的 _config.yml 里配置一下
1 | baidusitemap: |
其它插件
Plugins · hexojs/hexo
7. 评论设置
在Hexo中,默认使用的评论是国外的Disqus,不过因为国内的”网络环境”问题,我们改为国内的多说评论系统。
需要说明的是 short_name:字段,这个字段为你多说填写的站点名字,比如我的域名:jelon.duoshuo.com,那么我的short_name: “jelon”
8. 404页面
GitHub Pages 自定义404页面非常容易,直接在根目录下创建自己的404.html就可以。但是自定义404页面仅对绑定顶级域名的项目才起作用,GitHub默认分配的二级域名是不起作用的,使用hexo server在本机调试也是不起作用的。
其实,404页面可以做更多有意义的事,来做个404公益项目吧。
腾讯公益 404.html :
1 | <html> |
复制上面代码,贴粘到目录下新建的404.html即可!
9. 统计
因Google Analytics偶尔被墙,故国内用百度统计
最新的统计服务已经开放,两行代码轻松搞定,你可以直接使用:不蒜子
本人墙裂推荐,只需要两行代码哦。各种用法实例和显示效果参考不蒜子文档中的实例链接。不蒜子,极客的算子,极简的算子,任你发挥的算子。
10. 更新
更新hexo:
1 | $ npm update -g hexo |
更新主题:
1 | $ cd themes/你的主题 |
更新插件:
1 | $ npm update |