mdbook-inline-highlighting 操作手册
mdbook-inline-highlighting 用于给 Markdown 行内代码增加与 fenced code block 相同的 highlight.js 语法高亮。
原仓库:https://github.com/phoenixr-codes/mdbook-inline-highlighting
快速使用
当前书库配置了:
[preprocessor.inline-highlighting]
default-language = "js"
因此最常用的是下面三种写法。
样例:显式指定语言
Python:[py] lambda x: x % 2 == 0
对应源码:
Python:`[py] lambda x: x % 2 == 0`
[py] 会覆盖当前默认的 JavaScript 高亮。
样例:使用默认语言
JavaScript:(x) => x % 2 == 0
对应源码:
JavaScript:`(x) => x % 2 == 0`
因为当前 default-language = "js",没有语言前缀的行内代码会按 JavaScript 高亮。
样例:明确禁用高亮
普通代码:[none] accumulate
对应源码:
普通代码:`[none] accumulate`
[none] 会覆盖默认语言,让这一段保持普通行内代码样式。
语言前缀语法
格式必须是:
[LANGUAGE] TEXT
例如:
`[rust] Vec<String>`
`[py] print("hello")`
`[js] const x = 1`
`[json] {"enabled": true}`
`[bash] mdbook build`
右方括号后必须有一个空格。
正确:
[py] lambda x: x + 1
错误:
[py]lambda x: x + 1
后者会触发 missing space after language identifier。
语言名称由 mdBook 当前使用的 highlight.js 支持范围决定;本插件与代码块使用同一套高亮器。
显示以 [ 开头的普通行内代码
如果行内代码本身以 [xxx] 开头,但这不是语言声明,需要在最前面加反斜杠转义。
例如,要显示 TOML 表名:
`\[preprocessor.katex]`
插件会去掉用于转义的反斜杠,并把 [preprocessor.katex] 当作普通文本,而不是语言标识。
行为速查
| 写法 | 行为 |
|---|---|
`[py] x = 1` | Python 高亮 |
`[rust] let x = 1;` | Rust 高亮 |
`[none] foo` | 不高亮 |
`const x = 1` | 使用默认 JavaScript |
`\[table.name]` | 显示以 [ 开头的普通内容 |
显式 [LANGUAGE] 始终优先于 default-language。
什么时候使用
适合函数、类型、短表达式、API 调用和一两行以内的代码。多行代码、完整脚本和配置文件仍应使用 fenced code block:
```rust
fn main() {
println!("hello");
}
```
当前书库的推荐写法
- 需要准确着色时显式写
[rust]、[py]、[bash]等语言; - JavaScript 可直接使用默认语言;
- 不希望着色时写
[none]; - 内容本身以
[xxx]开头时使用反斜杠转义。