在Hexo中使用Asciidoc格式编写文章
在Hexo中使用Asciidoc格式编写文章
前言
虽然markdown简单易懂, 但是其功能有时非常有限, 例如自定义的表格, mark等, 需要使用三方语法甚至内嵌html来实现, 于是打算使用asciidoc来编写文章, 但是hexo默认不支持asciidoc, 本文记录hexo适配asciidoc的过程.
安装asciidoc
虽然已经有了 hexo-renderer-asciidoc 这个插件, 但是有几点会导致这个插件并不好用
此插件使用的代码高亮是
hexo-utils
提供的, 但是它的代码高亮并不会读配置文件, 于是会和主题配置格格不入asciidoc需要引入额外的css, 但是这个插件并未限定作用域. 如果导入asciidoc的css会导致全局生效, 影响其他md的文章
所需要依赖
1 |
|
Tip | 请酌情对依赖进行升级 |
编写renderer
在hexo的根目录下创建一个`scripts`文件夹, 并创建一个 asciidoc-renderer.js
文件, 内容如下
1 |
|
编写css
由于asciidoc有一些样式, 这些样式需要引入 (当然不引入也可以)
将
@asciidoctor/core
下的asciidoctor.css
复制到source/css
下在
source/css
下创建一个asciidoc-renderer.less
文件, 内容如下安装
hexo-renderer-less
插件注入
asciidoc-renderer.css
到主题中
1 |
|
在 asciidoc-renderer.js
下面添加
1 |
|
asciidoctor.css里有些主题和博客里的主题对不上, 我删除了部分样式例如
所有的
font-family
所有的
font-color
大部分
background-color
魔改Hexo
Warning | Hexo可能已经修复此问题, 请追踪Issue: #5523 |
由于Hexo的 这行代码, 导致在开启`post_asset_folder`的情况下, 只能渲染一种格式的文章, 于是需要魔改Hexo
在对应的代码处修改为
1 |
|
在 _config.yml
中添加
1 |
|
即可支持md和adoc的混合渲染