使用hexo完成文章的创建和发布
Hexo 是一个快速、简洁且高效的博客框架,它使用 Markdown(或其他标记语言)解析文章,并能够在几秒内利用漂亮的主题生成静态网页。
参考文档:https://hexo.io/zh-cn/docs/
快速开始
创建一篇新博文
要创建一篇新文章或页面,请执行以下命令:
| $ hexo new "My New Post" | 
启动本地服务
Hexo 3.0 将服务器作为一个单独的模块,需要先安装 hexo-server 才能使用。
| $ npm install hexo-server --save | 
安装完成后,使用以下命令启动服务器,网站将在 http://localhost:4000 上运行。在服务器运行期间,Hexo 会监视文件变动并自动更新,无需重启服务器。
| $ hexo server | 
如果需要更改端口或遇到 EADDRINUSE 错误,可以使用 -p 选项指定其他端口:
| $ hexo server -p 5000 | 
静态模式
在静态模式下,服务器仅处理public文件夹中的文件,并且不会监视文件变动。在使用静态模式时,应该先执行hexo generate命令。这通常用于生产环境(production mode)。
| $ hexo server -s | 
自定义 IP
服务器默认运行在 0.0.0.0,可以通过-i指定ip地址:
| $ hexo server -i 192.168.1.1 | 
设置此参数后,您只能通过指定的 IP 地址访问站点。例如,对于使用无线网络的笔记本电脑,除了本地127.0.0.1地址外,通常还有一个192.168.*.*的局域网 IP 地址。如果使用-i参数指定了局域网 IP,那么无法通过公网 IP 来访问站点。
生成文件
使用 Hexo 生成静态文件快速而且简单。
| $ hexo generate | 
监视文件变动
Hexo 可以监视文件变动并立即重新生成静态文件。在生成过程中,Hexo 会比对文件的 SHA1 校验和,只有发生变动的文件才会被写入。
| $ hexo generate --watch | 
部署网站
执行以下任一命令,在生成完毕后自动部署网站,两个命令的作用是相同的。
| $ hexo generate --deploy | 
简写
上面两个命令可以简写为 $ hexo g -d $ hexo d -g
Front-matter
Front-matter 是位于文件顶部的---分隔区域,用于指定特定文件的变量。例如:
| --- | 
以下是预定义的参数,可以在模板中使用这些参数的值:
| 参数 | 描述 | 默认值 | 
|---|---|---|
| layout | 布局 | config.default_layout | 
| title | 标题 | 文章的文件名 | 
| date | 建立日期 | 文件建立日期 | 
| updated | 更新日期 | 文件更新日期 | 
| comments | 开启文章的评论功能 | true | 
| tags | 标签(不适用于分页) | |
| categories | 分类(不适用于分页) | |
| permalink | 覆盖文章的永久链接,永久链接应该以 /或.html结尾 | null | 
| excerpt | 纯文本的页面摘要。使用 该插件 来格式化文本 | |
| disableNunjucks | 启用时禁用 Nunjucks 标签 {{ }}/{% %}和 标签插件 的渲染功能 | false | 
| lang | 设置语言以覆盖 自动检测 | 继承自 _config.yml | 
布局
根据 _config.yml 中 default_layout 的设置,默认布局是 post 。当文章中的布局被禁用(layout: false),它将不会使用主题处理。然而,它仍然会被任何可用的渲染引擎渲染:如果一篇文章是用 Markdown 写的,并且安装了 Markdown 渲染引擎(比如默认的 hexo-renderer-marked),它将被渲染成 HTML。
除非通过 disableNunjucks 设置或 渲染引擎 禁用,否则无论布局如何,标签插件 总是被处理。
分类和标签
只有文章支持分类和标签,您可以在 Front-matter 中设置。在其他系统中,分类和标签听起来很接近,但是在 Hexo 中两者有着明显的差别:分类具有顺序性和层次性,也就是说 Foo, Bar 不等于 Bar, Foo;而标签没有顺序和层次。
| categories: | 
分类方法的区别
如果您有使用 WordPress 的经验,可能会误解 Hexo 的分类方式。WordPress 支持为一篇文章设置多个分类,并且这些分类可以是同级的,也可以是父子分类。但是在 Hexo 中,不能指定多个同级分类。下面的设置:
- Diary
- Life将会使
Life成为Diary的子分类,而不是同级分类。因此,选择最准确的分类很重要。如果需要为文章添加多个分类,可以尝试以下列表中的方法:
- [Diary, PlayStation]
- [Diary, Games]
- [Life]这样,这篇文章将同时包含三个分类:
PlayStation和Games是Diary的子分类,而Life是一个没有子分类的分类。
JSON Front-matter
除了 YAML,也可以使用 JSON 来编写 Front-matter,只需将---替换为;;;即可。
| "title": "Hello World", | 
