@dr-ishaan/rehype-perfect-code-blocks 2.2.0 → 2.3.1
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/CHANGELOG.md +102 -0
- package/dist/classes.d.ts +58 -0
- package/dist/classes.d.ts.map +1 -0
- package/dist/classes.js +62 -0
- package/dist/classes.js.map +1 -0
- package/dist/diagrams.d.ts +41 -0
- package/dist/diagrams.d.ts.map +1 -0
- package/dist/diagrams.js +114 -0
- package/dist/diagrams.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/shiki.d.ts.map +1 -1
- package/dist/shiki.js +206 -15
- package/dist/shiki.js.map +1 -1
- package/dist/styles.css +101 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/transformer.js +12 -1
- package/dist/transformer.js.map +1 -1
- package/dist/types.d.ts +42 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/classes.ts +64 -0
- package/src/diagrams.ts +125 -0
- package/src/index.ts +8 -0
- package/src/mermaid.d.ts +11 -0
- package/src/shiki.ts +227 -14
- package/src/styles.css +101 -0
- package/src/transformer.ts +12 -1
- package/src/types.ts +47 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,108 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.3.1] — 2026-06-20
|
|
9
|
+
|
|
10
|
+
### Summary
|
|
11
|
+
|
|
12
|
+
Patch release adopting 5 stability + performance patterns from community packages identified through deep research of `@shikijs/monaco`, Astro's `@astrojs/internal-helpers`, fumadocs, and Shiki core. Closes the biggest stability gaps: event-loop blocking on huge code blocks, WASM init hangs on edge runtimes, and repeated regex engine creation.
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
#### Item 1: Tokenizer size+time guards (from `@shikijs/monaco`)
|
|
17
|
+
|
|
18
|
+
New `shiki.maxBlockLength` (default: 200,000 chars) and `shiki.tokenizeTimeout` (default: 500ms) options. When a code block exceeds `maxBlockLength`, it falls back to plaintext with a `dataTruncated` attribute on the `<pre>` element, preventing event-loop blocking on huge blocks.
|
|
19
|
+
|
|
20
|
+
#### Item 2: Module-level engine cache (from Astro `@astrojs/internal-helpers`)
|
|
21
|
+
|
|
22
|
+
The JS regex engine (`createJavaScriptRegexEngine()`) is now created once at module scope and reused across all highlighter cache entries, instead of being re-created per entry. Eliminates repeated engine compilation and potential OOM in long dev sessions.
|
|
23
|
+
|
|
24
|
+
#### Item 3: WASM-init timeout (greenfield — no community package does this)
|
|
25
|
+
|
|
26
|
+
New `shiki.initTimeout` option (default: 8,000ms). If `createHighlighter` hangs (WASM fetch stall on Cloudflare/Vercel edge), the plugin automatically retries with the pure-JS regex engine. If that also fails, falls back to a minimal plaintext-only highlighter. No more indefinite hangs on edge runtimes.
|
|
27
|
+
|
|
28
|
+
#### Item 4: `content-visibility: auto` CSS
|
|
29
|
+
|
|
30
|
+
One CSS rule on `:where(.pcb)` — the browser skips rendering off-screen code blocks, dramatically improving page load on docs with many code blocks. `contain-intrinsic-size: auto 400px` prevents layout shift. No community plugin does this.
|
|
31
|
+
|
|
32
|
+
#### Item 5: `filterMetaString` hook (pre-Shiki)
|
|
33
|
+
|
|
34
|
+
The `filterMetaString` option now runs **before** the meta string is passed to Shiki via `meta: { __raw }`, not just before the plugin's own `parseMeta`. This prevents Shiki transformers from choking on custom meta tokens. (Pattern from fumadocs rehype-code.)
|
|
35
|
+
|
|
36
|
+
### Verification
|
|
37
|
+
|
|
38
|
+
- All 1290 pre-existing tests pass (no regressions).
|
|
39
|
+
- New `test-v2.3.1-stability.mjs` adds 25 regression tests.
|
|
40
|
+
- Total: 1315/1315 tests passing.
|
|
41
|
+
|
|
42
|
+
## [2.3.0] — 2026-06-20
|
|
43
|
+
|
|
44
|
+
### Summary
|
|
45
|
+
|
|
46
|
+
Minor release implementing P2 items: Mermaid diagram rendering, CSV/TSV table rendering, ASCII art preservation, Retro CRT preset, accessibility improvements (line numbers + diff aria-labels), and exported CLASSES constant. No breaking changes.
|
|
47
|
+
|
|
48
|
+
### Features
|
|
49
|
+
|
|
50
|
+
#### Mermaid diagram rendering (`mermaid: true`)
|
|
51
|
+
|
|
52
|
+
Render ```` ```mermaid ```` blocks as SVG diagrams via mermaid.js (build-time, optional peer dep):
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
perfectCode({ mermaid: true })
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### CSV/TSV table rendering (`csvTables: true`)
|
|
59
|
+
|
|
60
|
+
Render ```` ```csv ```` / ```` ```tsv ```` blocks as styled HTML tables:
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
perfectCode({ csvTables: true })
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
First row becomes `<thead>`, remaining rows in `<tbody>` with alternating row colors.
|
|
67
|
+
|
|
68
|
+
#### ASCII art preservation
|
|
69
|
+
|
|
70
|
+
Disables ligatures (`font-variant-ligatures: none`, `font-feature-settings: "liga" 0`) for `text`, `plaintext`, `txt`, `ascii`, `plain` languages so ASCII art alignment is maintained. Configurable via `asciiArtLangs` option.
|
|
71
|
+
|
|
72
|
+
#### Retro CRT preset (`preset: 'retro'`)
|
|
73
|
+
|
|
74
|
+
Green-on-black monospace with CRT scanline effect — for historical computing content:
|
|
75
|
+
|
|
76
|
+
```js
|
|
77
|
+
perfectCode({ preset: 'retro' })
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Features: `#00ff41` text glow, repeating scanline gradient overlay, `Courier New` font, zero border radius, green traffic-light dots.
|
|
81
|
+
|
|
82
|
+
#### Accessibility improvements
|
|
83
|
+
|
|
84
|
+
- **Line numbers**: `aria-label="Line N"` on each `.pcb__ln` span (screen readers announce line numbers)
|
|
85
|
+
- **Diff lines**: `aria-label="Added line"` / `aria-label="Removed line"` on diff line spans (WCAG 1.3.1)
|
|
86
|
+
|
|
87
|
+
#### Exported CLASSES constant
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
import { CLASSES } from '@dr-ishaan/rehype-perfect-code-blocks';
|
|
91
|
+
// CLASSES.COPY_BUTTON = 'pcb__copy'
|
|
92
|
+
// CLASSES.LINE_HIGHLIGHT = 'pcb__line--hl'
|
|
93
|
+
// CLASSES.PRESET_RETRO = 'pcb--retro'
|
|
94
|
+
// ... 40+ class name constants
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### New exports
|
|
98
|
+
|
|
99
|
+
- `CLASSES` — object with 40+ CSS class name constants
|
|
100
|
+
- `isMermaidLanguage(lang)`, `isCsvLanguage(lang)` — language detection
|
|
101
|
+
- `parseCsv(text, delimiter)`, `buildCsvTable(text, delimiter)` — CSV parsing
|
|
102
|
+
- `renderMermaid(source)` — Mermaid SVG rendering
|
|
103
|
+
|
|
104
|
+
### Verification
|
|
105
|
+
|
|
106
|
+
- All 1254 pre-existing tests pass (no regressions).
|
|
107
|
+
- New `test-v2-p2.mjs` adds 36 regression tests.
|
|
108
|
+
- Total: 1290/1290 tests passing.
|
|
109
|
+
|
|
8
110
|
## [2.2.0] — 2026-06-20
|
|
9
111
|
|
|
10
112
|
### Summary
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exported CSS class name constants (v2.3.0).
|
|
3
|
+
*
|
|
4
|
+
* Use these in your code for programmatic class targeting:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { CLASSES } from '@dr-ishaan/rehype-perfect-code-blocks';
|
|
8
|
+
*
|
|
9
|
+
* document.querySelector(`.${CLASSES.COPY_BUTTON}`).addEventListener(...)
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const CLASSES: {
|
|
13
|
+
readonly CONTAINER: "pcb";
|
|
14
|
+
readonly HEADER_BAR: "pcb__bar";
|
|
15
|
+
readonly TITLE: "pcb__title";
|
|
16
|
+
readonly DOTS: "pcb__dots";
|
|
17
|
+
readonly LANGUAGE_BADGE: "pcb__lang";
|
|
18
|
+
readonly COPY_BUTTON: "pcb__copy";
|
|
19
|
+
readonly COPY_LABEL: "pcb__copy-label";
|
|
20
|
+
readonly COPY_DONE: "pcb__copy--done";
|
|
21
|
+
readonly BODY: "pcb__body";
|
|
22
|
+
readonly LINE: "pcb__line";
|
|
23
|
+
readonly LINE_NUMBER: "pcb__ln";
|
|
24
|
+
readonly CODE: "pcb__code";
|
|
25
|
+
readonly LINE_HIGHLIGHT: "pcb__line--hl";
|
|
26
|
+
readonly LINE_ADD: "pcb__line--add";
|
|
27
|
+
readonly LINE_DEL: "pcb__line--del";
|
|
28
|
+
readonly LINE_FOCUS: "pcb__line--focus";
|
|
29
|
+
readonly LINE_ERROR: "pcb__line--error";
|
|
30
|
+
readonly LINE_WARNING: "pcb__line--warning";
|
|
31
|
+
readonly LINE_INFO: "pcb__line--info";
|
|
32
|
+
readonly WORD: "pcb__word";
|
|
33
|
+
readonly WORD_DIFF: "pcb__word-diff";
|
|
34
|
+
readonly WORD_DIFF_ADD: "pcb__word-diff--add";
|
|
35
|
+
readonly WORD_DIFF_DEL: "pcb__word-diff--del";
|
|
36
|
+
readonly CAPTION: "pcb__caption";
|
|
37
|
+
readonly ATTRIBUTION: "pcb__attribution";
|
|
38
|
+
readonly ANNOTATION: "pcb__ann";
|
|
39
|
+
readonly PRESET_TERMINAL: "pcb--terminal";
|
|
40
|
+
readonly PRESET_MINIMAL: "pcb--minimal";
|
|
41
|
+
readonly PRESET_RETRO: "pcb--retro";
|
|
42
|
+
readonly WRAP: "pcb--wrap";
|
|
43
|
+
readonly COLLAPSE: "pcb--collapse";
|
|
44
|
+
readonly COPY_ON_HOVER: "pcb--copy-on-hover";
|
|
45
|
+
readonly SPLIT_DIFF: "pcb--split-diff";
|
|
46
|
+
readonly ANNOTATIONS: "pcb--annotations";
|
|
47
|
+
readonly TABLE: "pcb__table";
|
|
48
|
+
readonly TABLE_HEADER: "pcb__th";
|
|
49
|
+
readonly TABLE_ROW: "pcb__tr";
|
|
50
|
+
readonly TABLE_CELL: "pcb__td";
|
|
51
|
+
readonly MATH: "pcb__math";
|
|
52
|
+
readonly MATH_KATEX: "pcb__math--katex";
|
|
53
|
+
readonly MATH_FALLBACK: "pcb__math--fallback";
|
|
54
|
+
readonly SR_LIVE: "pcb__sr-live";
|
|
55
|
+
readonly SR_ONLY: "pcb__sr-only";
|
|
56
|
+
};
|
|
57
|
+
export type ClassName = keyof typeof CLASSES;
|
|
58
|
+
//# sourceMappingURL=classes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../src/classes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDV,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,OAAO,CAAC"}
|
package/dist/classes.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exported CSS class name constants (v2.3.0).
|
|
3
|
+
*
|
|
4
|
+
* Use these in your code for programmatic class targeting:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { CLASSES } from '@dr-ishaan/rehype-perfect-code-blocks';
|
|
8
|
+
*
|
|
9
|
+
* document.querySelector(`.${CLASSES.COPY_BUTTON}`).addEventListener(...)
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export const CLASSES = {
|
|
13
|
+
CONTAINER: 'pcb',
|
|
14
|
+
HEADER_BAR: 'pcb__bar',
|
|
15
|
+
TITLE: 'pcb__title',
|
|
16
|
+
DOTS: 'pcb__dots',
|
|
17
|
+
LANGUAGE_BADGE: 'pcb__lang',
|
|
18
|
+
COPY_BUTTON: 'pcb__copy',
|
|
19
|
+
COPY_LABEL: 'pcb__copy-label',
|
|
20
|
+
COPY_DONE: 'pcb__copy--done',
|
|
21
|
+
BODY: 'pcb__body',
|
|
22
|
+
LINE: 'pcb__line',
|
|
23
|
+
LINE_NUMBER: 'pcb__ln',
|
|
24
|
+
CODE: 'pcb__code',
|
|
25
|
+
LINE_HIGHLIGHT: 'pcb__line--hl',
|
|
26
|
+
LINE_ADD: 'pcb__line--add',
|
|
27
|
+
LINE_DEL: 'pcb__line--del',
|
|
28
|
+
LINE_FOCUS: 'pcb__line--focus',
|
|
29
|
+
LINE_ERROR: 'pcb__line--error',
|
|
30
|
+
LINE_WARNING: 'pcb__line--warning',
|
|
31
|
+
LINE_INFO: 'pcb__line--info',
|
|
32
|
+
WORD: 'pcb__word',
|
|
33
|
+
WORD_DIFF: 'pcb__word-diff',
|
|
34
|
+
WORD_DIFF_ADD: 'pcb__word-diff--add',
|
|
35
|
+
WORD_DIFF_DEL: 'pcb__word-diff--del',
|
|
36
|
+
CAPTION: 'pcb__caption',
|
|
37
|
+
ATTRIBUTION: 'pcb__attribution',
|
|
38
|
+
ANNOTATION: 'pcb__ann',
|
|
39
|
+
// Preset modifiers
|
|
40
|
+
PRESET_TERMINAL: 'pcb--terminal',
|
|
41
|
+
PRESET_MINIMAL: 'pcb--minimal',
|
|
42
|
+
PRESET_RETRO: 'pcb--retro',
|
|
43
|
+
// Feature modifiers
|
|
44
|
+
WRAP: 'pcb--wrap',
|
|
45
|
+
COLLAPSE: 'pcb--collapse',
|
|
46
|
+
COPY_ON_HOVER: 'pcb--copy-on-hover',
|
|
47
|
+
SPLIT_DIFF: 'pcb--split-diff',
|
|
48
|
+
ANNOTATIONS: 'pcb--annotations',
|
|
49
|
+
// Table classes
|
|
50
|
+
TABLE: 'pcb__table',
|
|
51
|
+
TABLE_HEADER: 'pcb__th',
|
|
52
|
+
TABLE_ROW: 'pcb__tr',
|
|
53
|
+
TABLE_CELL: 'pcb__td',
|
|
54
|
+
// Math
|
|
55
|
+
MATH: 'pcb__math',
|
|
56
|
+
MATH_KATEX: 'pcb__math--katex',
|
|
57
|
+
MATH_FALLBACK: 'pcb__math--fallback',
|
|
58
|
+
// Screen reader
|
|
59
|
+
SR_LIVE: 'pcb__sr-live',
|
|
60
|
+
SR_ONLY: 'pcb__sr-only',
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=classes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classes.js","sourceRoot":"","sources":["../src/classes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,cAAc,EAAE,WAAW;IAC3B,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,WAAW;IACjB,cAAc,EAAE,eAAe;IAC/B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,kBAAkB;IAC9B,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,iBAAiB;IAC5B,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,gBAAgB;IAC3B,aAAa,EAAE,qBAAqB;IACpC,aAAa,EAAE,qBAAqB;IACpC,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,UAAU;IACtB,mBAAmB;IACnB,eAAe,EAAE,eAAe;IAChC,cAAc,EAAE,cAAc;IAC9B,YAAY,EAAE,YAAY;IAC1B,oBAAoB;IACpB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,eAAe;IACzB,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,iBAAiB;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB;IAChB,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,OAAO;IACP,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,kBAAkB;IAC9B,aAAa,EAAE,qBAAqB;IACpC,gBAAgB;IAChB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACf,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagram & table rendering (v2.3.0).
|
|
3
|
+
*
|
|
4
|
+
* - Mermaid: render ```mermaid blocks as SVG diagrams
|
|
5
|
+
* - CSV/TSV: render ```csv / ```tsv blocks as HTML tables
|
|
6
|
+
*
|
|
7
|
+
* Both are build-time (server-side) — no client JS needed.
|
|
8
|
+
* `mermaid` is an optional peer dependency.
|
|
9
|
+
*/
|
|
10
|
+
import type { Element } from 'hast';
|
|
11
|
+
/** Languages that trigger Mermaid rendering. */
|
|
12
|
+
export declare const MERMAID_LANGS: Set<string>;
|
|
13
|
+
/** Languages that trigger CSV/TSV table rendering. */
|
|
14
|
+
export declare const CSV_LANGS: Set<string>;
|
|
15
|
+
export declare const TSV_LANGS: Set<string>;
|
|
16
|
+
export declare function isMermaidLanguage(lang: string): boolean;
|
|
17
|
+
export declare function isCsvLanguage(lang: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Render a Mermaid diagram to SVG.
|
|
20
|
+
* Falls back to a `<pre>` with the source if mermaid is not installed.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderMermaid(source: string): Promise<{
|
|
23
|
+
svg: string | null;
|
|
24
|
+
isError: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Parse CSV/TSV text into rows of cells.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseCsv(text: string, delimiter?: ',' | '\t'): string[][];
|
|
30
|
+
/**
|
|
31
|
+
* Build a HAST element tree for a CSV/TSV table.
|
|
32
|
+
* First row is the header (in `<thead>`), remaining rows in `<tbody>`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function buildCsvTable(text: string, delimiter?: ',' | '\t'): Element;
|
|
35
|
+
/** ASCII art language defaults — disable ligatures for alignment. */
|
|
36
|
+
export declare const DEFAULT_ASCII_ART_LANGS: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Check if a language should be treated as ASCII art (ligatures disabled).
|
|
39
|
+
*/
|
|
40
|
+
export declare function isAsciiArtLang(lang: string, asciiArtLangs: string[]): boolean;
|
|
41
|
+
//# sourceMappingURL=diagrams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagrams.d.ts","sourceRoot":"","sources":["../src/diagrams.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,MAAM,CAAC;AAEpD,gDAAgD;AAChD,eAAO,MAAM,aAAa,aAA8B,CAAC;AAEzD,sDAAsD;AACtD,eAAO,MAAM,SAAS,aAAmB,CAAC;AAC1C,eAAO,MAAM,SAAS,aAAmB,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAcrG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,GAAG,GAAG,IAAU,GAAG,MAAM,EAAE,EAAE,CAO9E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,GAAG,GAAG,IAAU,GAAG,OAAO,CAkDhF;AAED,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,UAAiD,CAAC;AAEtF;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAG7E"}
|
package/dist/diagrams.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagram & table rendering (v2.3.0).
|
|
3
|
+
*
|
|
4
|
+
* - Mermaid: render ```mermaid blocks as SVG diagrams
|
|
5
|
+
* - CSV/TSV: render ```csv / ```tsv blocks as HTML tables
|
|
6
|
+
*
|
|
7
|
+
* Both are build-time (server-side) — no client JS needed.
|
|
8
|
+
* `mermaid` is an optional peer dependency.
|
|
9
|
+
*/
|
|
10
|
+
/** Languages that trigger Mermaid rendering. */
|
|
11
|
+
export const MERMAID_LANGS = new Set(['mermaid', 'mmd']);
|
|
12
|
+
/** Languages that trigger CSV/TSV table rendering. */
|
|
13
|
+
export const CSV_LANGS = new Set(['csv']);
|
|
14
|
+
export const TSV_LANGS = new Set(['tsv']);
|
|
15
|
+
export function isMermaidLanguage(lang) {
|
|
16
|
+
return MERMAID_LANGS.has(lang.toLowerCase());
|
|
17
|
+
}
|
|
18
|
+
export function isCsvLanguage(lang) {
|
|
19
|
+
return CSV_LANGS.has(lang.toLowerCase()) || TSV_LANGS.has(lang.toLowerCase());
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Render a Mermaid diagram to SVG.
|
|
23
|
+
* Falls back to a `<pre>` with the source if mermaid is not installed.
|
|
24
|
+
*/
|
|
25
|
+
export async function renderMermaid(source) {
|
|
26
|
+
try {
|
|
27
|
+
const mermaid = await import('mermaid');
|
|
28
|
+
// mermaid v10+ uses mermaid.default.render()
|
|
29
|
+
const m = mermaid.default ?? mermaid;
|
|
30
|
+
if (typeof m.render === 'function') {
|
|
31
|
+
const id = 'pcb-mermaid-' + Math.random().toString(36).slice(2, 10);
|
|
32
|
+
const svg = await m.render(id, source.trim());
|
|
33
|
+
return { svg, isError: false };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// mermaid not installed or rendering failed
|
|
38
|
+
}
|
|
39
|
+
return { svg: null, isError: true };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parse CSV/TSV text into rows of cells.
|
|
43
|
+
*/
|
|
44
|
+
export function parseCsv(text, delimiter = ',') {
|
|
45
|
+
const rows = [];
|
|
46
|
+
for (const line of text.split('\n')) {
|
|
47
|
+
if (line.trim() === '')
|
|
48
|
+
continue;
|
|
49
|
+
rows.push(line.split(delimiter).map((cell) => cell.trim()));
|
|
50
|
+
}
|
|
51
|
+
return rows;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build a HAST element tree for a CSV/TSV table.
|
|
55
|
+
* First row is the header (in `<thead>`), remaining rows in `<tbody>`.
|
|
56
|
+
*/
|
|
57
|
+
export function buildCsvTable(text, delimiter = ',') {
|
|
58
|
+
const rows = parseCsv(text, delimiter);
|
|
59
|
+
const children = [];
|
|
60
|
+
if (rows.length > 0) {
|
|
61
|
+
// Header
|
|
62
|
+
const headerCells = rows[0].map((cell) => ({
|
|
63
|
+
type: 'element',
|
|
64
|
+
tagName: 'th',
|
|
65
|
+
properties: { className: ['pcb__th'] },
|
|
66
|
+
children: [{ type: 'text', value: cell }],
|
|
67
|
+
}));
|
|
68
|
+
children.push({
|
|
69
|
+
type: 'element',
|
|
70
|
+
tagName: 'thead',
|
|
71
|
+
properties: {},
|
|
72
|
+
children: [{
|
|
73
|
+
type: 'element',
|
|
74
|
+
tagName: 'tr',
|
|
75
|
+
properties: { className: ['pcb__tr'] },
|
|
76
|
+
children: headerCells,
|
|
77
|
+
}],
|
|
78
|
+
});
|
|
79
|
+
// Body
|
|
80
|
+
const bodyRows = rows.slice(1).map((row) => ({
|
|
81
|
+
type: 'element',
|
|
82
|
+
tagName: 'tr',
|
|
83
|
+
properties: { className: ['pcb__tr'] },
|
|
84
|
+
children: row.map((cell) => ({
|
|
85
|
+
type: 'element',
|
|
86
|
+
tagName: 'td',
|
|
87
|
+
properties: { className: ['pcb__td'] },
|
|
88
|
+
children: [{ type: 'text', value: cell }],
|
|
89
|
+
})),
|
|
90
|
+
}));
|
|
91
|
+
children.push({
|
|
92
|
+
type: 'element',
|
|
93
|
+
tagName: 'tbody',
|
|
94
|
+
properties: {},
|
|
95
|
+
children: bodyRows,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
type: 'element',
|
|
100
|
+
tagName: 'table',
|
|
101
|
+
properties: { className: ['pcb__table'] },
|
|
102
|
+
children,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** ASCII art language defaults — disable ligatures for alignment. */
|
|
106
|
+
export const DEFAULT_ASCII_ART_LANGS = ['text', 'plaintext', 'txt', 'ascii', 'plain'];
|
|
107
|
+
/**
|
|
108
|
+
* Check if a language should be treated as ASCII art (ligatures disabled).
|
|
109
|
+
*/
|
|
110
|
+
export function isAsciiArtLang(lang, asciiArtLangs) {
|
|
111
|
+
const set = new Set(asciiArtLangs.map((l) => l.toLowerCase()));
|
|
112
|
+
return set.has(lang.toLowerCase());
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=diagrams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagrams.js","sourceRoot":"","sources":["../src/diagrams.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ import type { DesignTokens } from './tokens.js';
|
|
|
27
27
|
import { resolveMathOptions, isMathLanguage, renderMath } from './math.js';
|
|
28
28
|
import type { MathOptions, ResolvedMathOptions } from './math.js';
|
|
29
29
|
import { runDevWarnings, warnUnknownLanguage } from './dev-warnings.js';
|
|
30
|
+
import { isMermaidLanguage, isCsvLanguage, buildCsvTable, parseCsv, renderMermaid } from './diagrams.js';
|
|
31
|
+
import { CLASSES } from './classes.js';
|
|
30
32
|
import type { PerfectCodeOptions } from './types.js';
|
|
31
33
|
export { remarkPreserveCodeMeta };
|
|
32
34
|
export { disposeHighlighter, runHighlighterTask };
|
|
@@ -34,6 +36,8 @@ export { wordDiff, hasChanges };
|
|
|
34
36
|
export { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector };
|
|
35
37
|
export { resolveMathOptions, isMathLanguage, renderMath };
|
|
36
38
|
export { runDevWarnings, warnUnknownLanguage };
|
|
39
|
+
export { isMermaidLanguage, isCsvLanguage, buildCsvTable, parseCsv, renderMermaid };
|
|
40
|
+
export { CLASSES };
|
|
37
41
|
export type { DiffToken, DesignTokens, MathOptions, ResolvedMathOptions };
|
|
38
42
|
export declare const rehypePerfectCodeBlocks: Plugin<[PerfectCodeOptions?], Root>;
|
|
39
43
|
export default rehypePerfectCodeBlocks;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAuB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAE1E,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAmBrE,CAAC;AAEJ,eAAe,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAuB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAE1E,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAmBrE,CAAC;AAEJ,eAAe,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -23,12 +23,16 @@ import { wordDiff, hasChanges } from './word-diff.js';
|
|
|
23
23
|
import { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector } from './tokens.js';
|
|
24
24
|
import { resolveMathOptions, isMathLanguage, renderMath } from './math.js';
|
|
25
25
|
import { runDevWarnings, warnUnknownLanguage } from './dev-warnings.js';
|
|
26
|
+
import { isMermaidLanguage, isCsvLanguage, buildCsvTable, parseCsv, renderMermaid } from './diagrams.js';
|
|
27
|
+
import { CLASSES } from './classes.js';
|
|
26
28
|
export { remarkPreserveCodeMeta };
|
|
27
29
|
export { disposeHighlighter, runHighlighterTask };
|
|
28
30
|
export { wordDiff, hasChanges };
|
|
29
31
|
export { generateTokenStyles, applyScopeToCss, generateDarkModeSelector, generateLightModeSelector };
|
|
30
32
|
export { resolveMathOptions, isMathLanguage, renderMath };
|
|
31
33
|
export { runDevWarnings, warnUnknownLanguage };
|
|
34
|
+
export { isMermaidLanguage, isCsvLanguage, buildCsvTable, parseCsv, renderMermaid };
|
|
35
|
+
export { CLASSES };
|
|
32
36
|
export const rehypePerfectCodeBlocks = (options = {}) => {
|
|
33
37
|
const engine = options.engine ?? 'auto';
|
|
34
38
|
const opts = options;
|
|
@@ -162,6 +166,10 @@ function resolveDefaults(opts) {
|
|
|
162
166
|
diffMode: opts.diffMode ?? 'unified',
|
|
163
167
|
annotations: opts.annotations ?? false,
|
|
164
168
|
attribution: opts.attribution ?? false,
|
|
169
|
+
// v2.3.0: P2
|
|
170
|
+
mermaid: opts.mermaid ?? false,
|
|
171
|
+
csvTables: opts.csvTables ?? false,
|
|
172
|
+
asciiArtLangs: opts.asciiArtLangs ?? ['text', 'plaintext', 'txt', 'ascii', 'plain'],
|
|
165
173
|
inline: opts.inline ?? false,
|
|
166
174
|
};
|
|
167
175
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,uBAAuB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/shiki.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2HrD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1E;AA6DD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAYzC;AAgPD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAwff"}
|