原文地址:http://yangfch3.com/2016/05/08/hexo-experiences/
这个博客是使用 Hexo 与 NexT 搭建起来的,在搭建的过程中遇到了一些莫名其妙的问题,记录在此。对于官方文档已经有介绍的,在此不表。
1 Hexo
- Hexo 是有中文文档的,当然更推荐看英文文档
- 关于几个文件夹功能的释义
scaffolds
为模板文件夹,模板用于预先定义 new 出来的文章的 layout;source
内_drafts
文件夹用于放置草稿,使用hexo --draft
可查看所有草稿文章;草稿完稿后可以使用publish
命令发布到_post
文件夹内,等待generate
。
- 自定义的其他模板和 post 模板相同,new 出来的文章都将储存到
source/_posts
文件夹 - 当你不想你的文章被发布,同时又不想删除文章,将文章的
Front-Matter
中的layout:
设为false
- 文章的
Front-matter
采用 YAML 语法格式,多个标签与分类不是用逗号隔开,而是采用 YAML 中的列表/并列
写法 - Hexo 支持更强大的quote块:可以添加引用作者、来源、链接等;在有这些需求的时候可以引用
|
|
- Hexo 支持更强大的 code 块:支持为 code 块添加标题和链接;当我们需要引用某个链接内的代码时可以使用,一般情况下使用 md 的代码块语法即可
|
|
- 引入 gist 时,插入
fileName
似乎会失败,所以,引入 gist 时只需要使用gist hash-id
即可
|
|
- Hexo 支持更使用特定的语法,插入指定大小的图片,如下:
|
|
值的注意的几点:
- 路径名必须以`/`开始,否则会解析出错
- 路径是相对于`conifg`内的`root`的,这一点挺坑,可以在`source/`下新建一个`uploads`文件夹用于专门放置这些图片资源
|
|
- 图片宽高只能使用数值,不能包含字符串,也不能是百分数
- 最后一个字段可以为图片添加标题
- 引入某个文件中的代码,使用
include_code
|
|
值得注意的是:code
代码所在的文件必须在downloads/code/
目录下,否则无法获取
- 引用其他文章的路径,基本功能不大
|
|
- 引用其他文章的链接,用处很大,但是有一个小坑
|
|
小坑:不能放在一段的段首,否则 md 文档或解析错误,出现莫名奇妙的 bug。
- 引用文章的资源:获取到的是文章对应
asset
目录下的资源
|
|
将
_config.yml
文件中的post_asset_folder
选项设为true
,便可在new
一篇新文章的同时创建对应的资源文件夹。引用资源文件夹内的文件请使用13
中使用的方法,可以防止首页展示时链接错误的问题。链接:数据文件
hexo generate --watch
可以监听文件变动,自动generate
hexo g -f
可以强制重新生成,防止一些更改后无法generate
的清理自动提交脚本:
deploy.sh
|
|
实现 RSS 订阅:hexojs/hexo-generator-feed
Hexo 的
markdown
解析引擎不支持脚注,可以使用插件实现。
但是笔者在使用了
LouisBarranqueiro/hexo-footnotes
之后发现hexo server
命令无法使用了。(PH:本人是正常的)
更换默认的 md 渲染引擎(hexo-renderer-marked),改为 hexo-renderer-markdown-it,见配置hexo-renderer-marked-it。几大优点:
支持脚注解析支持上下标支持
emoji
– 需要额外配置
2 NexT
NexT 的一些菜单页(如:标签页、分类页、归档页)需要自己添加,方法见链接
NexT 的
i18n
可以在theme/next/language
下的.yml
文件下自己定制NexT 支持文本居中的引用
|
|
- NexT 中的图片可以自由地突破容器宽度的限制(扩大
26%
)
|
|
- 在为文章创建 Tags 的时候,避免标签内出现
&
,否则生成的.xml
文件在浏览器端会解析错误,并且订阅功能也会出现故障。
3 主题编写
- Hexo 提供的辅助函数中截取一段长文字的前
n
个字符
|
|
在 swig 中,胡子或胡子百分号内不能再使用胡子或胡子百分号
DIY 主题,写法参考链接