跳到主要内容

docusaurus自定义渲染内容

使用docusaurus编写文档时,docusaurus仅支持编译成网页,在编译成pdf时需要做一些特殊处理。

这个时候就需要在markdown文件中保留一些rst格式或者rst语法,这些语法格式在编译html时被忽略,在编译pdf才生效。

Docusaurus 使用的是 remark 库,来解析和处理 Markdown 文件,可以通过 remark 自定义插件来忽略 eval-rst 代码块。

下载unist-util-visit

npm install unist-util-visit

编写插件

mkdir remark-plugins
vim remark-ignore-eval-rst.js

在js文件中添加如下内容:

// remark-plugins/remove-code-blocks.js
import { visit } from 'unist-util-visit';

module.exports = function removeCodeBlocks() {
return (tree) => {
visit(tree, 'code', (node) => {
if (node.lang === 'eval-rst' || node.lang === 'eval-md') {
node.type = 'text';
node.value = ''; // Remove the content
}
});
};
};

在docusaurus.config.js中引入该插件:

const remarkIgnoreEvalRst = require('./remark-plugins/remark-ignore-eval-rst');
......
docs: {
remarkPlugins: [remarkIgnoreEvalRst], // 添加自定义的 Remark 插件
},
.....

同时修改一个md文件,使其内容被"eval-rst" 和""包裹:

这里的内容显示在网页。

```eval-rst
这里的内容不显示在网页。
最后执行npm start观察结果。