@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 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"}
@@ -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"}
@@ -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;
@@ -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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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;AAyFrD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1E;AA4CD;;;;;;;;;;;;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,CA8Wf"}
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"}