hexo之文章的基本操作

啊!又是美好的一天!~弄了好久终于弄好了这个博客,在这里记录一下hexo的基本使用,以防自己忘掉。本文是根据官方文档和各位博主大牛再加上自己的一些理解构成的,若有不足之处,非常感谢各位的指出,我们互相进步!

新建文章

1、进入博客目录,在 /source/_posts 文件夹下直接建立一个.md文件。
2、进入博客目录,按住Shift并鼠标右键,点击在此处打开命令窗口,输入下面代码:

1
$ hexo new [layout] <title>

您可以在命令中指定文章的布局(layout),默认为 post,可以通过修改 _config.yml 中的 default_layout 参数来指定默认布局。如果title中有空格,则应该用双引号括起来,如:$ hexo new "new_page"

#部署文章
在博客目录下打开命令窗口,依次输入以下代码:

1
2
3
4
5
hexo generate(可简写为g) #生成更改
hexo deploy(可简写为d) #将生成的更改部署到github上

以上两个命令可合并为
hexo g -d

注意
1、部署到GitHub时,可能因为网速、被墙等原因,需要多次运行hexo d;有时候可以运行hexo clean后再运行上述代码
2、.md文件不要用记事本打开,建议使用具有markdown语法的程序打开,比如:Sublime Testnotepad++等。也可以使用在线markdown编辑器

布局(Layout)

Hexo 有三种默认布局:post(文章)、page(会生成一个新路径,如about) 和draft(草稿),它们分别对应不同的路径,而您自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。

布局 路径
post source/_posts
page source
draft source/_drafts

草稿(draft)

刚刚提到了 Hexo 的一种特殊布局:draft,这种布局在建立时会被保存到 source/_drafts 文件夹,您可通过 publish 命令将草稿移动到 source/_posts 文件夹,该命令的使用方式与 new 十分类似,您也可在命令中指定 layout 来指定布局。

1
$ hexo publish [layout] <title>

草稿默认不会显示在页面中,您可在执行时加上 --draft 参数,或是把 render_drafts 参数设为 true 来预览草稿。

文章编辑

基本格式

例如此文章头格式

1
2
3
4
5
6
7
8
9
---
title: Hexo 发表文章的基本操作方法
date: 2018-4-6
categories: Hexo #表示文章的分类
author: Jayce
tags: #标识文章的标签
- Hexo
cover_picture: images/pineapple.jpeg #此文章的封面图
---

文字编辑为Markdown,详见具体实例

插入图片

在写文章时,常常有配图说明的需求。Hexo有多种图片插入方式,可以将图片存放在本地引用或者将图片放在CDN上引用。

本地引用

绝对路径

当Hexo项目中只用到少量图片时,可以将图片统一放在source/images文件夹中,通过markdown语法访问它们
source/images/image.jpg

1
![](/images/image.jpg)

相对路径

图片除了可以放在统一的images文件夹中,还可以放在文章自己的目录中。文章的目录可以通过配置_config.yml来生成。
_config.yml

1
post_asset_folder:true

_config.yml文件中的配置项post_asset_folder设为true后,执行命令$ hexo new post_name,在source/_posts中会生成文章post_name.md和同名文件夹post_name。将图片资源放在post_name中,文章就可以使用相对路径引用图片资源了。
_posts/post_name/image.jpg

1
![](image.jpg)

上述是markdown的引用方式,图片只能在文章中显示,但无法在首页中正常显示。

如果希望图片在文章和首页中同时显示,可以使用标签插件语法。
_posts/post_name/image.jpg

1
{% asset_img image.jpg This is an image %}

CDN引用

除了在本地存储图片,还可以将图片上传到一些免费的CDN服务中。比如Cloudinary提供的图片CDN服务,在Cloudinary中上传图片后,会生成对应的url地址,将地址直接拿来引用即可。