记录hexo配置中遇到的各种问题,随缘更新中……
- OS:Windows 10
- 主页类型:gitpage
- 官方文档:文档 | Hexo
第一个网页#
此部分根据官方文档操作即可完成,故不赘述
部署到github#
此部分根据官方文档操作即可完成,故不赘述
配置主题#
这里面有非常多主题,随便选一个自己喜欢的用就好了。
我选择的主题是Anatolo,这个主题的作者锦心是一位可爱的OIer妹妹(她还不到大一就能自己写theme,而我配置她的主题都磕磕绊绊quq),她的主页:Lhc_fl Home (lhcfl.github.io)
安装#
配置#
复制
_config.example.yml
为_config.yml
,修改hexo根目录下的_config.yml
:theme: Anatolo
上面是锦心写的配置方法,但是当时我花了很久时间才理解,具体来说应该是把themes/Anatolo
下的_config.example.yml
文件复制到themes/Anatolo
(一开始我以为是复制到根目录……),然后修改hexo项目根目录下的 _config.yml
: theme: Anatolo
。
正文部分#
写入正文#
- 新建文章 :用
hexo new <title>
,可以在_post
目录下新建<title>.md
文件,之后便可以按照markdown语法开始写作。
编辑文章的分类、标签#
参照如下写法即可
1 | title: hexo配置问题 |
插入图片#
这篇文章十分详细地讲了如何方便地结合Typora插入图片:hexo博客如何插入图片 - 知乎 (zhihu.com)
插入公式#
找不到参考的文章了quq
告诫我配置完环境一定要马上整理
警钟长鸣
插入TOC目录#
直接用Typora中的TOC是不能插入目录的!
正确插入方法如下:
-
安装hexo-toc插件:
npm install hexo-toc --save
-
参照文档内的方法编辑
_config.yml
-
在想插入目录的地方写入
1
<!-- toc -->
插入代码#
无需插件,正常写入即可。
TODO:学习利用插件对代码块进行优化的方法。
嵌入youtube视频#
- 打开一个youtube视频
- 点击视频下方的分享键
- 点击弹出窗口中“嵌入”上方的按钮
- 复制右侧iframe开头的代码
- 直接复制到md文件中即可(md文件是兼容html语法的)
下面是一个示例
1 | <iframe width="560" height="315" src="https://www.youtube.com/embed/7XZR0-4uS5s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> |
About页#
用hexo new page "about"
新建“关于”页面,然后正常写入内容即可
Tag页#
用hexo new page "tag"
新建标签统计页面即可,无需写入任何内容
开启评论区#
我使用的是gitalk,配置参照如下两篇博客
Hexo-Anatolo主题添加gitalk评论系统 - 简书 (jianshu.com)
微调Hexo主题Anatolo接入gitalk · Csome
但是需要提醒一点:
- _config.yml下的repo属性只需要填写仓库名字即可,不要填写仓库链接!
首页显示文章摘要#
配置步骤:
- Anatolo/layout/page.pug文件中
block content
中调用+make_post
函数时的true
改成false
- Anatolo/_config.yml文件中
useSummary
的值设置为false
- md文件中的front-matter里面加上
excerpt: xxx
,xxx为摘要内容
尝试对上面的步骤做一个解释(因为我不懂前端,这个步骤也没有文档说明,解释的可能不对)
Anatolo/layout/page.pug 的content这个block可能是产生首页、about页内容的部分,我注意到里面调用了一个mixins中定义的make_post函数,page参数代表的是md文件中的front-matter和正文组成的struct。
1 | block content |
然后找到Anatolo/layout/mixins.pug中的make_post函数的,这边关注它的前半部分就可以了。我们呢发现如果is_detail的值是true,那么首页的摘要处只会显示文章内容和copyright两部分,所以要修改make_post中的输入参数(步骤1)。
然后我们发现无论config文件中的useSummary值如何,这时程序会去找item.excerpt,所以我们front-matter中要写入excerpt属性,内容为摘要(步骤3)。而如果useSummary的值是false,那么如果我们在front-matter中写入了excerpt属性,那么就会把excerpt的内容作为摘要,如果没有写入,则会把文章的内容直接作为摘要。
设置false的原因是我发现如果设置true,about页面会清楚格式(例如无序列表)。
1 | mixin make_post(item, is_detail) |
作者: 核子