在 Hexo 中写作,核心在于理解“布局(Layout)”这一概念。你可以把布局想象成文章的“出生证明”,它决定了这篇文章刚创建时会被放在哪个文件夹,以及它默认的身份是正式文章、独立页面还是草稿。
核心命令:创建与发布
要开始写作,你最常用的两个命令是 new 和 publish。
1. 创建新内容 (hexo new)
这是创建文章的入口。命令格式如下:
1 | hexo new [layout] <title> |
[layout]:可选参数,指定文章的布局类型。如果不填,默认使用post。<title>:必填参数,文章的标题。
常见用法示例:
创建一篇默认的博客文章(布局为 post):
1
hexo new "我的第一篇博客"
这条命令会在
source/_posts目录下生成一个文件。创建一个独立页面(布局为 page):
1
hexo new page "about"
这条命令会在
source根目录下生成文件,通常用于“关于我”、“友情链接”等单页。创建一篇草稿(布局为 draft):
1
hexo new draft "未完成的构思"
这条命令会将文件保存在
source/_drafts目录,不会在生成网站时公开显示。
2. 发布草稿 (hexo publish)
当你完成了草稿的撰写,想将其转为正式文章时,使用 publish 命令。它的工作方式与 new 类似,但会将文件从 _drafts 移动到 _posts。
1 | hexo publish [layout] <title> |
示例:
将之前创建的草稿正式发布:
1 | hexo publish draft "未完成的构思" |
执行后,文件会从 source/_drafts 移至 source/_posts,并在下次生成网站时可见。
深入理解布局 (Layout)
Hexo 预置了三种核心布局,它们对应不同的存储路径和用途:
| 布局名称 | 存储路径 | 用途说明 |
|---|---|---|
| post | source/_posts |
默认布局。用于常规的博客文章,按时间排序展示。 |
| page | source |
用于独立页面,如“关于”、“归档”等,不参与时间流排序。 |
| draft | source/_drafts |
用于未完成的草稿。默认情况下,生成网站时会忽略此目录下的文件。 |
概念辨析:Draft 与 Post 的区别
这就好比作家写书时的“手稿”与“出版书”。draft 布局下的文章是私有的手稿,只有你在本地预览时通过特定参数才能看到;而 post 布局下的文章则是正式出版物,会对所有访客展示。
如果你不希望某篇文章被主题模板处理(例如只想输出纯文本),可以在该文章的 Front-matter(文件头部的元数据区域)中设置 layout: false。
配置文件详解 (_config.yml)
你可以通过编辑站点根目录下的 _config.yml 文件来定制新建文章的行为。
1. 修改默认布局 (default_layout)
如果你希望每次输入 hexo new 时默认创建的是 page 而不是 post,可以修改此项:
1 | default_layout: page |
2. 自定义文件名格式 (new_post_name)
默认情况下,Hexo 使用标题作为文件名。但你可以通过占位符让文件名包含日期等信息,避免标题过长或重复。
配置示例:
1 | new_post_name: :year-:month-:day-:title.md |
这样创建标题为 “Hello World” 的文章时,文件名会自动变为 2026-03-09-hello-world.md。
可用占位符说明:
| 占位符 | 描述 | 示例值 |
|---|---|---|
:title |
文章标题(小写,空格变短横线) | my-first-post |
:year |
创建年份 | 2026 |
:month |
创建月份(带前导零) | 03 |
:i_month |
创建月份(无前导零) | 3 |
:day |
创建日期(带前导零) | 09 |
:i_day |
创建日期(无前导零) | 9 |
3. 控制草稿显示 (render_drafts)
默认情况下,draft 布局的文章在生成网站时是不可见的。如果你想在本地预览时查看草稿效果,有两种方法:
- 方法一(临时): 运行服务器命令时添加
--draft参数。1
hexo server --draft
- 方法二(永久): 在
_config.yml中开启配置。1
render_drafts: true
高级技巧:脚手架 (Scaffolds)
当你执行 hexo new 时,Hexo 并不是凭空创建文件,而是基于 scaffolds 文件夹中的模板文件进行复制。这就像是用模具制作饼干,模具的形状决定了饼干的初始样子。
工作原理:
如果你执行 hexo new photo "My Gallery",Hexo 会去 scaffolds 文件夹寻找 photo.md 文件。如果找到,就以其内容为模板创建新文章;如果找不到,则使用默认模板。
你可以在脚手架模板文件中使用以下变量,Hexo 会在创建时自动替换它们:
{{ layout }}:自动填入当前的布局名称(如 post, page)。{{ title }}:自动填入你命令中指定的标题。{{ date }}:自动填入当前的创建日期。
示例场景:
假设你想让所有新建的 photo 类型文章自动包含特定的标签和分类,你可以创建 scaffolds/photo.md,内容如下:
1 | --- |
多格式支持
Hexo 的灵活性还体现在对多种写作格式的支持上。虽然 Markdown (.md) 是最常用的,但只要安装了相应的渲染插件,你可以使用任何格式。
- 默认支持:Hexo 默认安装了 Markdown 渲染器,所以
.md文件可以直接使用。 - 扩展支持:
- 如果你安装了
hexo-renderer-ejs,就可以使用.ejs后缀写文章。 - 如果你安装了
hexo-renderer-pug,就可以使用.pug后缀。
- 如果你安装了
操作方法:
只需将文章文件的扩展名改为你想要的格式(例如从 article.md 改为 article.ejs),Hexo 就会自动调用对应的渲染插件来处理该文件。这使得 Hexo 不仅能写博客,还能作为灵活的内容生成工具。