我在astro.config.mjs文件中有以下配置,但在我添加了remark-code-extra插件后,语法高亮显示不起作用。不确定我应该如何配置它使其工作。提前感谢!
import tokyoStorm from "./src/code-themes/tokyo-storm.json";
import codeExtra from "remark-code-extra";
export default defineConfig({
...
markdown: {
shikiConfig: {
theme: tokyoStorm,
wrap: true,
},
remarkPlugins: [
[codeExtra, {
transform: node => node.meta ? ({
before: [
{
type: 'element',
tagName: 'div',
properties: {
class: "code-label"
},
children: [
{
type: "element",
tagName: 'span',
children: [
{
type: "text",
value: node.meta
}
]
}
]
}
]
}) : null
}]
]
},
});
这不起作用,因为Astro的语法高亮显示运行在所有其他注释插件之后,remark-code-extra
在remark-shiki
可以添加语法高亮显示之前将代码块包装在div
中。(remark-shiki
只能对非嵌套code
块添加语法高亮)
要解决这个问题,您可以:
-
使用rehype插件来转换你的代码块而不是
remark-code-extra
。Rehype插件在remark插件之后运行,因此代码块在转换时将应用Astro的语法高亮。 -
在调用
remark-code-extra
之前添加自己的注释语法高亮插件。