博客写文章常用的 hexo 指令

hexo init 指令

该指令用于新建一个hexo框架的博客网站,若没有指定文件夹位置,默认在当前文件夹创建网站。

语法为:

hexo init [folder]

指令运行后,会生成如下文件:

  • 模板文件:用来存放自定义的文章模版文件,每次写作可按照模板生成初始文章。
  • 资源文件夹:用来存放页面文件和文章文件,包括标签、分类、文章、图片等资源。
  • 主题文件夹:用来存放支持 hexo 框架的主题,如:next 主题、butterfly 主题等。
  • 依赖文件夹:用来存放下载的依赖,是一些在主题配置文件中配置的额外功能,如:KaTex 公式、文章搜索等。

hexo new 指令

该指令用于生成一篇新文章,可以指定自定义的模板来生成。默认使用 _config.yml 中的 default_layout 来生成。

语法为:

hexo new [layout] <title>

标题含有空格时需要使用引号括起来。

hexo new "this is a title"

参数 描述
-p,- -path 自定义新文章的路径
-r,- -replace 存在同名文章,则替换
-s,- -slug 文章的slug,作为新文章的文件名和发布后的URL

hexo new page --path about/me "About me"

如上指令会创建一个 source/about/me.md 的page 文件。

hexo 生成指令

该指令用于生成静态文件,一般与 hexo 部署指令结合使用。

语法为:

hexo generate 或者缩写为 hexo g

hexo 部署指令

该指令用于部署网站,将本地文件上传到服务器中,作为附属参数与 hexo g 使用。

语法为:

hexo deploy 或者结合使用 hexo g -d

hexo 调试指令

该指令用于部署网站之前,在本地对博客进行调试,默认访问网址为:http://localhost:4000/

使用该指令之后,对本地文件进行修改后,一般刷新网页就可以预览效果。如果没有生效,一般需要使用 hexo clean 清除数据之后,重新使用 hexo s 指令。

语法为:

hexo server 或者缩写为 hexo s

选项 描述
-p,- -port 重设端口
-s,- -static 只使用静态文件
-l,- -log 启动日记记录,使用覆盖记录格式

hexo 清理指令

该指令用于清除缓存文件( db.json )和已生成的静态文件( public )。一般在 hexo s 和 hexo g 指令之前使用。

语法:

hexo clean

hexo 扩展

hexo 还支持一些特殊的标签插件,用于在写作过程中实现不同的功能。这些标签可以在文章中快速插入特定内容,并且不受任何书写语法的限制,标签插件永远可用,语法也是一致的。

  • 引用块

    用于在文章中插入引言,可以包含作者、来源和标题。

    语法:

    1
    2
    3
    {% blockquote [author[, source]] [link] [source_link_title] %}
    content
    {% endblockquote %}

    示例:

    不提供参数,输出普通的引用块

    1
    2
    3
    {% blockquote %}
    穷且益坚,不坠青云之志。
    {% endblockquote %}

    穷且益坚,不坠青云之志。

    引用作者以及来源

    1
    2
    3
    {% blockquote 李白,将进酒 %}
    烹羊宰牛且为乐,会须一饮三百杯。
    {endblockquote %}

    烹羊宰牛且为乐,会须一饮三百杯。

    李白将进酒

    引用网络文章

    1
    2
    3
    {% blockquote Seth Godin http://sethgodin.typepad.com/seths_blog/2009/07/welcome-to-island-marketing.html Welcome to Island Marketing %}
    Every interaction is both precious and an opportunity to delight.
    {% endblockquote %}

    Every interaction is both precious and an opportunity to delight.

  • 代码块

    用于在文章中插入代码

    语法:

    1
    2
    3
    {% codeblock [title] [lang:language] [url] [link text] [additional options] %}
    code snippet
    {% endcodeblock %}

    可以通过 option:value 的方式来指定额外选项,如:line_number:false first_line:5

额外选项 描述 默认值
line_number 显示行号 true
line_threshold 代码块行数超过该阈值,才显示行数 0
highlight 启动代码高亮 true
first_line 指定第一个行号 1
mark 突出要特定显示的行,每个值用逗号隔开,可用-表示范围。如: mark:1,4-7
wrap <table> 包裹代码块 true

示例:

普通代码块

1
2
3
{% codeblock %}
print("hello world")
{% endcodeblock %}
1
2
3

print("hello world")

指定语言的代码块

1
2
3
{% codeblock lang:python %}
print("hello world")
{% endcodeblock %}
1
2
3

print("hello world")

附加说明

1
2
3
{% codeblock this is a description %}
print("hello world")
{% endcodeblock %}
this is a description
1
2
3

print("hello world")

  • PULL Quote

    用于在文章中插入 Pull Quote

    语法:

    1
    2
    3
    {% pullquote [class] %}
    content
    {% endpullquote %}

    示例:

    说明如下:

  • 用于在文章中插入链接,并自动给外部链接添加 target=_blank 属性

    语法:

    1
    {% link text url [external] [title] %}

    示例:

    这是一个百度链接

hexo 资源文件夹

这个功能主要是为了更好的管理博客资源,如:图片以及其他资源。打开这个功能会使得每次使用hexo 生成一篇新文章时,自动在同目录下创建一个同名的文件夹用来存放文件相关资源。

打开该功能需要将 _config.yml 中的 post_asset_folder 选项设为 true

_config.yml
1
2
3

post_asset_folder: true

打开这个功能后,也推荐修改 hexo 配置文件中的 new_post_name 字段,来对文章进行更好的管理。可以将其参数设置为 :year-:month-:day-:title.md ,通过日期来对文章进行管理。其他参数如下:

变量 描述
:title 标题(小写,空格会被替换为 - )
:year 建立的年份
:month 建立的月份,前面包含0,如:02
:i_month 建立的月份,前面不包含0,如:2
:day 建立的日期,前面包含0,如:05
:i_day 建立的日期,前面不包含0,如:5