快捷方式
站内引用,引用自己的博客
使用F8
快速定位markdown
语法错误的地方。
插入的图片上面需要有一行文字,否则生成的网页图片显示会有瑕疵
调试
运行命令时带上参数--debug
,则会输出console.log()
所打印的日志
本地搜索
安装插件
1 | npm install hexo-generator-searchdb --save |
根目录_config.yml
中开启本地搜索,xml
对于特殊字符的处理可能存在问题,建议使用json
1 | #本地搜索 |
同时theme
下的配置需要开启
1 | local_search: |
hexo
开始搜索使用插件hexo-generator-searchdb
,插件在扫描项目文件后生成search.json
文件。 该文件按照特定格式存储了博客的所有内容。但该插件记录的中文为ascii
码,因此在搜索时使用中文搜索不到 博客正文内容,因此我们需要修改生成search.json
文件的过程。将ascii
转码。
修改项目根目录下的文件node_modules/hexo-generator-searchdb/lib/json_generator.js
1 | ; |
vscode 中图片无法预览
vscode 中的 markdown 图片仅能预览当前 md 文件下或其子文件中的图片,但是若是图片在这儿,渲染后的 html 文件中将无法查看图片。我们自定义两个插件来解决这个问题。
根据hexo api我们编写两个插件
- 首先我们在
source/_posts
目录下建一个专门用于存放图片的文件夹images
,在 markdown 中我们使用![name](./images/picture.png)
来插入图片,这样我们在 vscode 中就可以预览图片了。 - 编写一个插件
hexo-li-assert-image
,用于将![name](./images/picture.png)
渲染后的<img>
中的 src 替换为/images/picture.png
- 编写一个插件,用于在渲染完成后,将
source/_posts/images/
的所有图片拷贝到public/images
下
代码如下
1 | ; |
1 | ; |
本地搜索增加正则模式
当我们开始搜索时,若以/
开始,当输入的是有效的 js 正则表达式(/reg/
)时,才会开始搜索所有文章,开始搜索时会将正则表达式的的最后一个/
截掉
使用 next 主题,修改其本地搜索的逻辑。拷贝` themes/next/layout/_third-party/search/localsearch.swig为
li_localsearch.swig`。 将其修改为
1 | {% if theme.local_search.enable %} |
修改同目录下的index.swig
1 | {% include 'algolia-search.swig' %} {% if theme.local_search.li%} {% include |
在主题配置文件中,增加
1 | local_search: |
后台进程启动 hexo server
在博客根目录下面创建一个 hexo_run.js
1 | const { exec } = require("child_process"); |
1 | 全局安装 |
增加 echarts 树图
例如
1 | hexo 中 在 `{% %}`中包含的内容,会被 hexo 视为一个 tag |
hexo 插件node_modules/hexo/lib/plugins/tag/index.js
中会注册相关 tag 的处理器 例如
1 | tag.register("pullquote", require("./pullquote")(ctx), true); |
node_modules/hexo/lib/plugins/tag/pullquote.js
的内容如下
1 | ; |
pullquote
最终生成一个<blockquote>
标签,并且其 class
为pullquote
以及其后定义的值,我们在theme
下的footer.swig
中,新增关于对li-echarts-tree
的元素进行 echarts 渲染。我们定义无序列表的来实现 echarts 中的树图。无序列表会被渲染成ul
,li
元素。那么我们可以这样实现
1 | <script src="/js/echarts.min.js"></script> |
hexo 错误解决
Error: expected end of comment, got end of file
不支持写双大括号,使用下述方式来替代
1 | <span>{</span><span>{</span><span>}</span><span>}</span> |