代码块
文档中的代码块超级厉害 💪。
代码标题
你可以在语言后添加 title
(记得在语言和 title 之间加一个空格)来设置标题。
```jsx title="/src/components/HelloCodeTitle.js"
function HelloCodeTitle(props) {
return <h1>你好,{props.name}</h1>;
}
```
function HelloCodeTitle(props) {
return <h1>你好,{props.name}</h1>;
}
语法高亮
代码块是使用 3 个反引号包裹的文本块。 你可以参阅 MDX 的规范。
```js
console.log('每个仓库都应该有个吉祥物。');
```
在代码块中使用相应语言的标签,Docusaurus 会自动用 Prism React Renderer 选择相应的语法高亮。
console.log('每个仓库都应该有个吉祥物。');
高亮主题
默认情况下,我们使用 Palenight 作为 Prism 语法高亮主题。 你可以通过 docusaurus.config.js 中的 themeConfig.prism
的 theme
字段来更改主题。
举个例子,如果你喜欢 dracula
高亮主题:
import {themes as prismThemes} from 'prism-react-renderer';
export default {
themeConfig: {
prism: {
theme: prismThemes.dracula,
},
},
};
因为每个 Prism 主题都只是一个 JS 对象,所以如果你对默认值不满意,也可以写一个自己的主题。 Docusaurus 对 github
和 vsDark
主题进行了增强,以提供更丰富的高亮效果,你还可以查看我们对浅色和深色代码块主题的实现。
支持的语言
默认情况下,Docusaurus 附带了一些常用语言的子集。
一些流行语言,包括 Java、C#、PHP 在内,默认未启用。
要添加其他 Prism 所支持的语言的代码高亮,请定义在 additionalLanguages
列表中。
每个附加语言都必须是有效的 Prism 组件名称。 比如, Prism 会把 cs
这个_语言_映射到 csharp
,但只有 prism-csharp.js
才是真实存在的_组件_,所以你需要写 additionalLanguages: ['csharp']
。 你可以翻看 node_modules/prismjs/components
来找到所有可用的组件(和对应语言)。
举个例子,如果你想要支持 PowerShell 语言的高亮:
export default {
// ...
themeConfig: {
prism: {
additionalLanguages: ['powershell'],
},
// ...
},
};
添加 additionalLanguages
后,重启 Docusaurus。
如果你想添加 Prism 所不支持语言的语法高亮功能,你可以 swizzle prism-include-languages
:
- npm
- Yarn
- pnpm
npm run swizzle @docusaurus/theme-classic prism-include-languages
yarn swizzle @docusaurus/theme-classic prism-include-languages
pnpm run swizzle @docusaurus/theme-classic prism-include-languages