Skip to content

配置语法高亮

Slidev 使用 Shiki ,一个基于 TextMate 语法,与 VS Code 一样准确的代码高亮器。它直接生成带样式的 HTML 元素,所以不需要引入额外的 CSS 文件。Shiki 自带了一系列 内置主题。而在 Slidev 中,我们还提供内置的 TwoSlash 功能。

配置 Shiki

运行环境: both
该文件中的代码将在 Node.js 中浏览器 运行。请避免使用 Node.js 或 DOM API 以防止出现运行时错误。

创建包含以下内容的 ./setup/shiki.ts 文件:

ts
/* ./setup/shiki.ts */
import { 
defineShikiSetup
} from '@slidev/types'
export default
defineShikiSetup
(() => {
return {
themes
: {
dark
: 'min-dark',
light
: 'min-light',
},
transformers
: [
// ... ], } })

如果你想添加自定义主题或语言( JSON 中的 TextMate 语法/主题),你可以在上述文件中导入它们:

ts
/* ./setup/shiki.ts */
import { 
defineShikiSetup
} from '@slidev/types'
import
customTheme
from './customTheme.tmTheme.json'
import
customLanguage
from './customLanguage.tmLanguage.json'
export default
defineShikiSetup
(() => {
return {
themes
: {
dark
:
customTheme
,
light
: 'min-light',
},
langs
: [
'js', 'typescript', 'cpp',
customLanguage
,
// ... ],
transformers
: [
// ... ], } })

更多详情请参考 Built-in languagesBuilt-in themes 以及 Shiki 的 官方文档

INFO

目前,Shiki 中的 Magic Move 还不支持页面切换效果。

配置 Prism

WARNING

Prism 已被 Slidev 停止支持,并且将在未来版本中被移除。请考虑更换到 Shiki

如果要配置 Prism,你可以引入相应的主题 CSS,或者使用 prism-theme-vars 来进行亮/暗模式下的主题配置。请参考相应文档以了解更多细节。

Released under the MIT License.