@docubook/core 1.7.2 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +2 -0
- package/dist/compile.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/rehypeMermaid.d.ts +11 -0
- package/dist/plugins/rehypeMermaid.d.ts.map +1 -0
- package/dist/plugins/rehypeMermaid.js +34 -0
- package/dist/plugins/rehypeMermaid.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -89,6 +89,7 @@ const tocs = await docsService.getTocsForSlug("getting-started/introduction");
|
|
|
89
89
|
| `handleCodeTitles` | Move code title metadata to `<pre>` attributes (advanced) | transformer function |
|
|
90
90
|
| `handleCodeExpandableRemark` | Remark plugin that detects `Expandable` meta on code blocks and injects expandable data attributes | transformer function |
|
|
91
91
|
| `handleCodeExpandable` | Rehype plugin that propagates expandable metadata from `<code>` to `<pre>` elements | transformer function |
|
|
92
|
+
| `rehypeMermaid` | Rehype plugin that transforms ` ```mermaid ` fenced code blocks into `<Mermaid chart="...">` elements | transformer function |
|
|
92
93
|
| `serialize` | Re-exported from `next-mdx-remote/serialize` for non-RSC MDX compilation workflows | `MDXRemoteSerializeResult` |
|
|
93
94
|
| `MDXRemote` | Re-exported from `next-mdx-remote` for client-side MDX hydration | React component |
|
|
94
95
|
| `cn` | Merge class names using `clsx` + `tailwind-merge` | `string` |
|
|
@@ -254,7 +255,30 @@ const mdxSource = await serialize(rawMdx, { parseFrontmatter: true });
|
|
|
254
255
|
|
|
255
256
|
Use this for Pages Router or non-RSC environments where `compileMDX` (used internally by `parseMdx`) is not available. `serialize` compiles MDX on the server and `MDXRemote` hydrates it on the client.
|
|
256
257
|
|
|
257
|
-
#### 12.
|
|
258
|
+
#### 12. Mermaid diagram support (`rehypeMermaid`)
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
import { rehypeMermaid } from "@docubook/core";
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
This plugin transforms ` ```mermaid ` fenced code blocks into `<Mermaid chart="...">` elements during MDX compilation. It runs after `preProcess` and before other code transforms, so mermaid blocks are converted before prism or expandable-code plugins process them.
|
|
265
|
+
|
|
266
|
+
The plugin is included in `createDefaultRehypePlugins()` by default — no manual registration needed.
|
|
267
|
+
|
|
268
|
+
In your MDX files:
|
|
269
|
+
|
|
270
|
+
````md
|
|
271
|
+
```mermaid
|
|
272
|
+
graph TD
|
|
273
|
+
A[Start] --> B{Decision}
|
|
274
|
+
B -->|Yes| C[Process]
|
|
275
|
+
B -->|No| D[End]
|
|
276
|
+
```
|
|
277
|
+
````
|
|
278
|
+
|
|
279
|
+
This requires the `<Mermaid>` component to be registered in your MDX component map (provided by `@docubook/mdx-content`).
|
|
280
|
+
|
|
281
|
+
#### 13. Expandable code blocks (code plugins)
|
|
258
282
|
|
|
259
283
|
```ts
|
|
260
284
|
import {
|
package/dist/compile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAUlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAGrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,KAAK,iBAAiB,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,KAAK,kBAAkB,GAAG,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,UAAU,SAAU,MAAM,IAAI,SA0B1C,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,MAAM,IAAI,SAiB3C,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,SAAS,EAAE,CAaxD;AAED,wBAAgB,0BAA0B,IAAI,SAAS,EAAE,CAExD;AAED,wBAAsB,QAAQ,CAAC,WAAW,EACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAiBxC"}
|
package/dist/compile.js
CHANGED
|
@@ -8,6 +8,7 @@ import rehypeSlug from "rehype-slug";
|
|
|
8
8
|
import rehypeCodeTitles from "rehype-code-titles";
|
|
9
9
|
import { handleCodeTitles } from "./plugins/handleCodeTitles";
|
|
10
10
|
import { handleCodeExpandableRemark, handleCodeExpandable } from "./plugins/handleCodeExpandable";
|
|
11
|
+
import { rehypeMermaid } from "./plugins/rehypeMermaid";
|
|
11
12
|
// Re-export serialize for non-RSC usage
|
|
12
13
|
export { serialize };
|
|
13
14
|
// Re-export MDXRemote for client-side hydration
|
|
@@ -57,6 +58,7 @@ export const postProcess = () => (tree) => {
|
|
|
57
58
|
export function createDefaultRehypePlugins() {
|
|
58
59
|
return [
|
|
59
60
|
preProcess,
|
|
61
|
+
rehypeMermaid, // Transform ```mermaid before code transforms
|
|
60
62
|
rehypeCodeTitles,
|
|
61
63
|
handleCodeTitles,
|
|
62
64
|
handleCodeExpandable, // Copy expandable metadata from <code> to <pre> before prism transforms nodes.
|
package/dist/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKxD,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAwB5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IAC7C,KAAK,CAAC,IAAI,EAAE,CAAC,IAAU,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,IAAmB,CAAC;QACpC,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClF,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAyB,CAAC;YACnD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE/D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;YAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;oBAC7B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBACtC,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;YACrF,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAa,CAAC;YAChD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IAC9C,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAU,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,IAAmB,CAAC;QACpC,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9D,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACtC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACvC,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnF,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YACzD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjF,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,UAAU;QACV,aAAa,EAAE,8CAA8C;QAC7D,gBAAgB;QAChB,gBAAgB;QAChB,oBAAoB,EAAE,+EAA+E;QACrG,WAAW;QACX,oBAAoB,EAAE,sDAAsD;QAC5E,UAAU;QACV,sBAAsB;QACtB,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAc,EACd,UAA2B,EAAE;IAE7B,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa,IAAK,0BAA0B,EAA0C,CAAC;IACjG,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa,IAAK,0BAA0B,EAA0C,CAAC;IAEjG,OAAO,MAAM,UAAU,CAAc;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;YAClD,UAAU,EAAE;gBACV,aAAa;gBACb,aAAa;aACd;SACF;QACD,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;AACL,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { cn, parseDate, stringToDate, formatDate, formatDate2, toIsoDateOnly } f
|
|
|
3
3
|
export { parseMdx, serialize, MDXRemote, preProcess, postProcess, createDefaultRehypePlugins, createDefaultRemarkPlugins, } from "./compile";
|
|
4
4
|
export { handleCodeTitles } from "./plugins/handleCodeTitles";
|
|
5
5
|
export { handleCodeExpandableRemark, handleCodeExpandable } from "./plugins/handleCodeExpandable";
|
|
6
|
+
export { rehypeMermaid } from "./plugins/rehypeMermaid";
|
|
6
7
|
export { extractFrontmatter, extractFrontmatterWithContent, extractTocsFromRawMdx, sluggify, } from "./extract";
|
|
7
8
|
export type { ParseMdxOptions } from "./compile";
|
|
8
9
|
export { readMdxFileBySlug, parseMdxFile, compileParsedMdxFile, createMdxContentService, } from "./content";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,8BAA8B,GAC/B,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,8BAA8B,GAC/B,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { cn, parseDate, stringToDate, formatDate, formatDate2, toIsoDateOnly } f
|
|
|
2
2
|
export { parseMdx, serialize, MDXRemote, preProcess, postProcess, createDefaultRehypePlugins, createDefaultRemarkPlugins, } from "./compile";
|
|
3
3
|
export { handleCodeTitles } from "./plugins/handleCodeTitles";
|
|
4
4
|
export { handleCodeExpandableRemark, handleCodeExpandable } from "./plugins/handleCodeExpandable";
|
|
5
|
+
export { rehypeMermaid } from "./plugins/rehypeMermaid";
|
|
5
6
|
export { extractFrontmatter, extractFrontmatterWithContent, extractTocsFromRawMdx, sluggify, } from "./extract";
|
|
6
7
|
export { readMdxFileBySlug, parseMdxFile, compileParsedMdxFile, createMdxContentService, } from "./content";
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Node } from "unist";
|
|
2
|
+
/**
|
|
3
|
+
* Rehype plugin that transforms `<pre><code class="language-mermaid">` fenced
|
|
4
|
+
* blocks into `<Mermaid chart="...">` elements.
|
|
5
|
+
*
|
|
6
|
+
* This allows Mermaid diagram definitions to be authored via standard fenced
|
|
7
|
+
* code blocks (````mermaid) which avoids JSX parsing collisions with
|
|
8
|
+
* Mermaid's `{...}` (decision nodes) and `[...]` (label nodes) syntax.
|
|
9
|
+
*/
|
|
10
|
+
export declare const rehypeMermaid: () => (tree: Node) => void;
|
|
11
|
+
//# sourceMappingURL=rehypeMermaid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehypeMermaid.d.ts","sourceRoot":"","sources":["../../src/plugins/rehypeMermaid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,OAAO,CAAC;AAS1C;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,SAAU,MAAM,IAAI,SAgC7C,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { visit } from "unist-util-visit";
|
|
2
|
+
/**
|
|
3
|
+
* Rehype plugin that transforms `<pre><code class="language-mermaid">` fenced
|
|
4
|
+
* blocks into `<Mermaid chart="...">` elements.
|
|
5
|
+
*
|
|
6
|
+
* This allows Mermaid diagram definitions to be authored via standard fenced
|
|
7
|
+
* code blocks (````mermaid) which avoids JSX parsing collisions with
|
|
8
|
+
* Mermaid's `{...}` (decision nodes) and `[...]` (label nodes) syntax.
|
|
9
|
+
*/
|
|
10
|
+
export const rehypeMermaid = () => (tree) => {
|
|
11
|
+
visit(tree, "element", (node, index, parent) => {
|
|
12
|
+
if (!parent || index === null || node.tagName !== "pre")
|
|
13
|
+
return;
|
|
14
|
+
const codeEl = node.children?.find((child) => child.type === "element" && child.tagName === "code");
|
|
15
|
+
if (!codeEl)
|
|
16
|
+
return;
|
|
17
|
+
const classList = Array.isArray(codeEl.properties?.className)
|
|
18
|
+
? codeEl.properties.className
|
|
19
|
+
: typeof codeEl.properties?.className === "string"
|
|
20
|
+
? codeEl.properties.className.split(" ").filter(Boolean)
|
|
21
|
+
: [];
|
|
22
|
+
if (!classList.includes("language-mermaid"))
|
|
23
|
+
return;
|
|
24
|
+
const textNode = codeEl.children?.find((child) => child.type === "text");
|
|
25
|
+
const chart = textNode?.value ?? "";
|
|
26
|
+
parent.children[index] = {
|
|
27
|
+
type: "element",
|
|
28
|
+
tagName: "Mermaid",
|
|
29
|
+
properties: { chart },
|
|
30
|
+
children: [],
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=rehypeMermaid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehypeMermaid.js","sourceRoot":"","sources":["../../src/plugins/rehypeMermaid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQzC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAiB,EAAE,KAAoB,EAAE,MAAqB,EAAE,EAAE;QACxF,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CACP,KAAqB,CAAC,IAAI,KAAK,SAAS,IAAK,KAAqB,CAAC,OAAO,KAAK,MAAM,CAC9D,CAAC;QAE7B,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;YAC3D,CAAC,CAAE,MAAM,CAAC,UAAU,CAAC,SAAsB;YAC3C,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,KAAK,QAAQ;gBAChD,CAAC,CAAE,MAAM,CAAC,UAAU,CAAC,SAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpE,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAAE,OAAO;QAEpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAE,KAAkB,CAAC,IAAI,KAAK,MAAM,CAExE,CAAC;QAEd,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG;YACvB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,EAAE,KAAK,EAAE;YACrB,QAAQ,EAAE,EAAE;SACa,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|