@svelte-dev/pretty-code
是一个由 rehype-pretty-code 和 shikiji 提供支持的 MDsveX 高亮插件。这个语法高亮器为 Markdown 或 MDsveX 提供了漂亮的代码块。它只适用于 块代码
(不适用于 内联代码
)。
享受 VS Code 语法高亮引擎的准确性和粒度, 以及其主题生态系统的流行 —— 使用任何你想要的 VS Code 主题!
将注意力引向特定的代码行。
将注意力引向特定的单词或字符序列。
通过终端进行安装:
此包仅支持 ESM,并且当前支持 shikiji
^0.7.0 || ^0.8.0
。
以下在服务器和客户端上都可以工作。
unified@11
被用作依赖项。
默认情况下存在一个网格样式,允许行高亮跨越水平滚动的代码块的整个宽度。
如果需要,你可以禁用此设置:
默认主题是 github-dark-dimmed
。Shikiji 有一堆 预打包的主题, 可以指定为一个简单的字符串:
你也可以通过传递主题 JSON 来使用你自己的主题:
要应用自定义背景,而不是从主题继承背景:
你可以指定一个默认语言:
Transformers 是一种 Shikiji-native 的方式来操作代码块的 hAST
树,并进一步扩展此插件的行为。shikiji-transformers
包提供了一些有用的 transformers。
通过顶部代码块围栏上的元字符串配置代码块。
如果你的库也解析代码块的元字符串,它可能会 引起冲突 与 rehype-pretty-code
。此选项允许你在库开始解析之前过滤掉元字符串的一部分。
在 {}
内放置一个数字范围。
行 <span>
接收一个 data-highlighted-line
属性以通过 CSS 进行样式化。
在 {}
后面放置一个 #
后面的 id。这允许你根据他们的 id 以不同的颜色或样式对行进行着色。
行 <span>
接收一个 data-highlighted-line-id="<id>"
属性 以通过 CSS 进行样式化。
你可以使用 /
:
或者 "
作为分隔符:
也可以高亮不同的字符段:
字符 <span>
接收一个 data-highlighted-chars
属性以通过 CSS 进行样式化。
要只高亮 carrot
的第三到第五个实例,可以在最后一个 /
后面放置一个数字范围。
只高亮 carrot
的第三到第五个实例和 apple
的任何实例。
在字符后面放置一个 #
后面的 id。这允许你根据他们的 id 以不同的颜色对字符进行着色。
字符 <span>
接收一个 data-chars-id="<id>"
属性以通过 CSS 进行样式化。
在你的代码块中添加一个文件标题,文本在双引号 (""
) 内:
在你的代码块下方添加一个标题,文本在双引号 (""
) 内:
可以使用 CSS 计数器添加行号。
如果你想条件显示它们,使用 showLineNumbers
:
<code>
将具有属性 data-line-numbers
和 data-line-numbers-max-digits="n"
。
如果你想从特定的数字开始行号,使用 showLineNumbers{number}
:
将你的主题传递给 theme
,其中键代表 颜色模式:
现在,使用以下 CSS 来显示变量颜色 —— 如果在主题名称中找到空格,那么基于对象的 CSS 变量键将可用 (更多信息):
<code>
和 <pre>
元素将具有数据属性 data-theme="...themes"
,列出每个主题值以空格分隔:
要自定义 HTML 输出,你可以使用访问者回调钩子直接操作 hAST 元素:
要完全配置高亮器,使用 getHighlighter
选项。如果你想配置其他 Shikiji 选项,如 langs
,这将很有帮助。
维护者: Willin Wang
如果您对本项目感兴趣,可以通过以下方式支持我:
Apache-2.0