Skip to content

Commit dbc1fa1

Browse files
authored
feat: remove notation escape (#709)
1 parent 42a44e6 commit dbc1fa1

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

docs/.vitepress/config.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { bundledThemes } from 'shiki'
44

55
// @ts-expect-error missing types
66
import { withMermaid } from 'vitepress-plugin-mermaid'
7-
import { transformerMetaWordHighlight, transformerNotationWordHighlight } from '../../packages/transformers/src'
7+
import { transformerMetaWordHighlight, transformerNotationWordHighlight, transformerRemoveNotationEscape } from '../../packages/transformers/src'
88
import { defaultHoverInfoProcessor, transformerTwoslash } from '../../packages/vitepress-twoslash/src/index'
99
import { version } from '../../package.json'
1010
import vite from './vite.config'
@@ -120,12 +120,7 @@ export default withMermaid(defineConfig({
120120
.replace(/_shikijs_core\w*\./g, '')
121121
},
122122
}),
123-
{
124-
name: 'shiki:remove-escape',
125-
postprocess(code) {
126-
return code.replace(/\[\\!code/g, '[!code')
127-
},
128-
},
123+
transformerRemoveNotationEscape(),
129124
],
130125
},
131126

docs/packages/transformers.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,10 @@ Support for `shiki`'s `lineOptions` that is removed in `shiki`.
341341
### `transformerRemoveLineBreak`
342342

343343
Remove line breaks between `<span class="line">`. Useful when you set `display: block` to `.line` in CSS.
344+
345+
---
346+
347+
### `transformerRemoveNotationEscape`
348+
349+
Transform `// [\!code ...]` to `// [!code ...]`.
350+
Avoid rendering the escaped notation syntax as it is.

packages/transformers/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export * from './transformers/render-whitespace'
22
export * from './transformers/remove-line-breaks'
3+
export * from './transformers/remove-notation-escape'
34
export * from './transformers/compact-line-options'
45
export * from './transformers/notation-focus'
56
export * from './transformers/notation-highlight'
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import type { ShikiTransformer } from 'shiki'
2+
3+
/**
4+
* Remove notation escapes.
5+
* Useful when you want to write `// [!code` in markdown.
6+
* If you process `// [\!code ...]` expression, you can get `// [!code ...]` in the output.
7+
*/
8+
export function transformerRemoveNotationEscape(): ShikiTransformer {
9+
return {
10+
name: '@shikijs/transformers:remove-notation-escape',
11+
postprocess(code) {
12+
return code.replace(/\[\\!code/g, '[!code')
13+
},
14+
}
15+
}

0 commit comments

Comments
 (0)