添加文件

生成一篇新的文章

$ hexo new "My New Post"
INFO  Created: ~/Documents/hexo-guide/website-sample/source/_posts/My-New-Post.md

生成的文件保存在source/_posts文件夹下,默认文件内容如下

---
title: My New Post
date: 2019-01-18 19:41:07
tags:
---

生成了页面标题和日期,还可以添加标签名

布局

Hexo指定了3种布局:post(文章)、page(页面)和draft(草稿),可在_config.yml中修改默认布局

default_layout: post

默认使用post布局,完整的添加文件命令为

$ hexo new [layout] <title>

不同布局的作用:一是指定生成文件的存储地址:而是指定生成文件使用的脚手架模板

布局 保存路径
post source/_posts
draft source/_drafts
page 生成source/下的文件夹

脚手架模板

hexo将不同布局的模板放置在scaffolds文件夹下,默认模板如下:

# post.md
---
title: {{ title }}
date: {{ date }}
categories: 
tags:
---

# draft.md
---
title: {{ title }}
tags:
---

# page.md
---
title: {{ title }}
date: {{ date }}
---

默认模板文件中的键是Front-matter

相对应的值可以指定三个占位符:

占位符 描述
layout 布局
title 标题
date 文件创建日期

自定义脚手架模板

可以在scaffolds文件夹下自定义脚手架模板,比如新建文件image.md

---
title: {{ title }}
date: {{ date }}
layout: {{ layout }}
---

你好,image

_config.yml上的默认布局和文章命名如下:

new_post_name: :title.md # File name of new posts
default_layout: post

新建文件

$ hexo new image "ImTest"
INFO  Created: ~/Documents/zjzstu.github.com/blogs/source/_posts/ImTest.md

ImTest.md内容如下:

---
title: ImTest
layout: image
date: 2019-01-23 14:00:11
---

你好,image

生成的文件使用了脚手架中的模板image.md,填充了相应的的标题、布局以及创建时间,同时将其放置在默认布局post的路径下

文件名

hexo默认使用标题作为文件名,其中文章名(post name)可以修改

生成文章的文件名和_config.yml文件中的new_post_name属性有关

new_post_name: :title.md # File name of new posts

默认将输入标题作为文件名,还可以添加时间信息

占位符 描述
:title 页面标题 (小字母,空格用连字符代替)
:year 年,比如2019
:month 月,占两位,比如01
:i_month 月,占一位,比如1
:day 日,占两位,比如08
:i_day 日,占一位,比如8

比如,设置为

new_post_name: :year-:month-:day-:title.md

那么生成的文件名包含了时间信息和页面标题

$ hexo new "Next Post" 
INFO  Created: ~/Documents/hexo-guide/website-sample/source/_posts/2019-01-18-Next-Post.md

草稿

发布草稿文件

默认情况下,服务器不会读取草稿箱内的文件,如果想要读取可以在_config.yml中修改属性

render_drafts: false

或者启动服务器时添加参数

hexo server --draft

发布草稿

将草稿箱_drafts下的文件发布到_posts文件夹下

# Third-Post.md在_drafts文件夹内
$ hexo publish draft Third-Post
INFO  Published: ~/Documents/hexo-guide/website-sample/source/_posts/2019-01-18-Third-Post.md