关于Hexo搭建博客(三)
这篇文章主要是关于博客文章的创作方面。
有了前面两节的基础,现在应该可以正常使用博客并发布文章了,在Blog目录下执行:
1
$ hexo new post "test"
即可生成一篇test.md文章,在
Blog/source/_posts
可以找到它。Hexo创建的每一个.md文件,在头部会有一个Front-matter区域:
Hexo可以创建三种类型的文件:文章(post),页面(page),草稿(draft)。它们的模版文件在第二节提到的scaffolds文件夹下。通过配置对应类型的模版文件,在以后新建对应类型文件的时候,文件的Front-matter区域会自动进行填充预设好的内容,比较方便。
markdown语法推荐使用软件Typora进行编写,因为Mac版本是需要收费的,所以只能通过魔法才能永久使用。这里简单介绍下markdown的常用语法:
分级标题:
1
2
3
4
5
6# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题字体:
1
2
3
4
5
6
7
8
9
10
11*斜体文字*
_斜体文字_
**粗体文字**
__粗体文字__
***粗斜体文字***
___粗斜体文字___下划线、删除线:
1
2<u>带下划线文本</u>
~~带删除线文本~~有序列表:
1
2
31. 有序列表文字
2. 有序列表文字
3. 有序列表文字无序列表:
1
2
3* 无序列表文字
* 无序列表文字
* 无序列表文字代码:
1
`代码`
代码块:
1
2
3
4```
代码块
```超链接:
1
[链接名称](链接网址)
图片:
1

作为一个合格的博客,也出于博客的可读性考虑,必须要对文章设置分类,当然这里建议按大类进行划分,而具体的文章系列可以通过给文章命名来实现,这样在展示的时候也比较简洁。
安装Hexo分类插件:1
npm install hexo-generator-category
新建分类页面(page):
1
hexo new page categories
修改
source/categories/index.md
的Front-matter区域:1
2
3title: categories
date: 2022-05-09 10:11:45
layout: category在
_config.yml
配置文件下修改分类属性:
以后在文章的Front-matter区域只需要填写对应分类名即可对文章分类。关于文章的封面(cover)以及文章内的图片有必要说一下,因为之前也是踩了不少的坑。
文章的封面图是直接在文章的Front-matter区域设置的,注意图片路径默认是
主题文件夹下的source/img文件夹
,且为相对路径,所以为了方便使用,我在img文件夹下建立cover文件夹,使用的时候只需要:/img/cover/xxx.jpg
即可。注意一定是主题文件夹,不要搞到Hexo的source里面去,因为在网页上显示博客用的是博客主题里面的文件.ejs,ejs引擎把数据渲染生成HTML,这些文件里面的数据路径一定是自己的source文件夹下的资源。文章里面用到的图片,也是大费周折,之前经常会显示不出来,看网上好多小伙伴都有类似的问题,仔细想了一下这个问题与Typora和Hexo两部分有关。
更改Hexo配置文件***_config.yml***文件里的post_asset_folder属性:1
post_asset_folder: true
这样当我们创建一个post时,在与它同级的目录下会自动创建一个与post同名的资源文件夹,用于存放该post用到的图片。
然后安装Hexo插件:1
$ npm install hexo-asset-image --save
这里要注意,插件要更改一个地方才能使用,因为插件版本比Hexo版本老,会有bug。在博客根目录按以下路径找到
index.js
文件:
node_modules –> hexo-asset-image –> index.js
在第58行找到:1
$(this).attr('src', config.root + link + src);
更改为:
1
$(this).attr('src',src);
因为我是用Typora进行编辑的,所以还需要对Typora进行设置才能更方便地直接插入图片。找到Typora的偏好设置,按下面进行配置:
这样当我们插入图片时,Typora会让我们选择插入的图片,选择后会自动把该图片复制到post的资源文件夹下,不需要自己进行操作,同时不开源代码模式进行编辑的话还可以显示图片预览,避免部署以后才发现图片显示不出来。
- OK,至此基本上已经大功告成了,总的来说Hexo真的是有很多细节比较麻烦,毕竟博客这种主观性比较强的东西每个人的想法都不太一样,很多问题并没有一个普适的方法解决,需要自己探索。另外前端的玩法五花八门,专业的朋友做起来会比较得心应手,不过作为一个记录学习过程和心得的地方,it’s enough,Hexo系列到这里就结束了,后续遇到问题再进行补充~