@dr-ishaan/rehype-perfect-code-blocks 2.3.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 +34 -0
- package/dist/shiki.d.ts.map +1 -1
- package/dist/shiki.js +126 -15
- package/dist/shiki.js.map +1 -1
- package/dist/styles.css +9 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/shiki.ts +145 -14
- package/src/styles.css +9 -0
- package/src/types.ts +17 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,40 @@ 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
|
+
|
|
8
42
|
## [2.3.0] — 2026-06-20
|
|
9
43
|
|
|
10
44
|
### Summary
|
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"}
|
package/dist/shiki.js
CHANGED
|
@@ -37,6 +37,37 @@ catch {
|
|
|
37
37
|
syncRequire = null;
|
|
38
38
|
}
|
|
39
39
|
const highlighterCache = new Map();
|
|
40
|
+
// v2.3.1 Item 2: Module-level engine cache (from Astro @astrojs/internal-helpers).
|
|
41
|
+
// createJavaScriptRegexEngine() compiles a regex translator — creating it
|
|
42
|
+
// repeatedly per cache entry is wasteful and can OOM in long dev sessions.
|
|
43
|
+
// Hoist to module scope so it's created once and reused.
|
|
44
|
+
let _jsEnginePromise = null;
|
|
45
|
+
async function getJsEngine() {
|
|
46
|
+
if (_jsEnginePromise)
|
|
47
|
+
return _jsEnginePromise;
|
|
48
|
+
try {
|
|
49
|
+
const engineMod = await import('shiki/engine/javascript');
|
|
50
|
+
_jsEnginePromise = Promise.resolve(engineMod.createJavaScriptRegexEngine());
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
_jsEnginePromise = null;
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return _jsEnginePromise;
|
|
57
|
+
}
|
|
58
|
+
// v2.3.1 Item 3: Timeout helper for WASM/highlighter initialization.
|
|
59
|
+
// If createHighlighter hangs on edge runtimes (WASM fetch stall), fall back
|
|
60
|
+
// to the pure-JS regex engine which needs no WASM.
|
|
61
|
+
function withTimeout(promise, ms, onTimeout) {
|
|
62
|
+
if (ms <= 0)
|
|
63
|
+
return promise;
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
const timer = setTimeout(() => {
|
|
66
|
+
resolve(onTimeout());
|
|
67
|
+
}, ms);
|
|
68
|
+
promise.then((val) => { clearTimeout(timer); resolve(val); }, (err) => { clearTimeout(timer); reject(err); });
|
|
69
|
+
});
|
|
70
|
+
}
|
|
40
71
|
const taskQueue = [];
|
|
41
72
|
let processingQueue = false;
|
|
42
73
|
function processQueue() {
|
|
@@ -63,7 +94,7 @@ export function runHighlighterTask(taskFn) {
|
|
|
63
94
|
}
|
|
64
95
|
});
|
|
65
96
|
}
|
|
66
|
-
async function getHighlighter(themeKeys, langs, userGetHighlighter, regexEngine) {
|
|
97
|
+
async function getHighlighter(themeKeys, langs, userGetHighlighter, regexEngine, initTimeout) {
|
|
67
98
|
// Filter out langs that aren't bundled with Shiki to avoid synchronous
|
|
68
99
|
// throws inside `createHighlighter`. We use a try/catch around the
|
|
69
100
|
// bundle lookup via `bundledLanguages`.
|
|
@@ -82,19 +113,33 @@ async function getHighlighter(themeKeys, langs, userGetHighlighter, regexEngine)
|
|
|
82
113
|
themes: themeKeys,
|
|
83
114
|
langs: safeLangs.length > 0 ? safeLangs : ['typescript', 'bash', 'javascript', 'json', 'html', 'css'],
|
|
84
115
|
};
|
|
85
|
-
//
|
|
86
|
-
//
|
|
116
|
+
// v2.3.1 Item 2: Use module-level engine cache instead of re-creating
|
|
117
|
+
// the JS regex engine per cache entry.
|
|
87
118
|
if (regexEngine === 'javascript') {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
createOpts.engine =
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
119
|
+
const engine = await getJsEngine();
|
|
120
|
+
if (engine)
|
|
121
|
+
createOpts.engine = engine;
|
|
122
|
+
}
|
|
123
|
+
// v2.3.1 Item 3: WASM-init timeout — if createHighlighter hangs
|
|
124
|
+
// (WASM fetch stall on edge), fall back to JS engine.
|
|
125
|
+
const timeoutMs = initTimeout ?? 8000;
|
|
126
|
+
const createFn = shiki.createHighlighter(createOpts);
|
|
127
|
+
try {
|
|
128
|
+
const all = await withTimeout(createFn, timeoutMs, async () => {
|
|
129
|
+
if (regexEngine !== 'javascript') {
|
|
130
|
+
const engine = await getJsEngine();
|
|
131
|
+
if (engine)
|
|
132
|
+
createOpts.engine = engine;
|
|
133
|
+
}
|
|
134
|
+
return await shiki.createHighlighter(createOpts);
|
|
135
|
+
});
|
|
136
|
+
return all;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Last resort: try with minimal config
|
|
140
|
+
const fallback = await shiki.createHighlighter({ themes: themeKeys, langs: ['plaintext'] });
|
|
141
|
+
return fallback;
|
|
95
142
|
}
|
|
96
|
-
const all = await shiki.createHighlighter(createOpts);
|
|
97
|
-
return all;
|
|
98
143
|
});
|
|
99
144
|
highlighterCache.set(cacheKey, promise);
|
|
100
145
|
}
|
|
@@ -518,7 +563,7 @@ export async function runShikiOnRawBlocks(tree, opts) {
|
|
|
518
563
|
}
|
|
519
564
|
langSet.add('plaintext');
|
|
520
565
|
const userGetHighlighter = opts.shiki.getHighlighter;
|
|
521
|
-
const highlighter = await getHighlighter(themeKeys, [...langSet], userGetHighlighter, opts.shiki.regexEngine);
|
|
566
|
+
const highlighter = await getHighlighter(themeKeys, [...langSet], userGetHighlighter, opts.shiki.regexEngine, opts.shiki.initTimeout);
|
|
522
567
|
// Lazily load any langs not yet loaded. Shiki's `loadLanguage` throws
|
|
523
568
|
// synchronously for bundled-but-unknown langs (e.g. typos), so wrap each
|
|
524
569
|
// call in its own try/catch and use Promise.allSettled to swallow rejects.
|
|
@@ -587,9 +632,13 @@ export async function runShikiOnRawBlocks(tree, opts) {
|
|
|
587
632
|
// up by lowercase key so users can write either `ts` or `TS` in their
|
|
588
633
|
// config. The alias target is used as-is (typically already lowercase).
|
|
589
634
|
const lang = langAlias[normalizedRawLang] ?? normalizedRawLang;
|
|
590
|
-
|
|
635
|
+
// v2.3.1 Item 5: Apply filterMetaString before passing meta to Shiki,
|
|
636
|
+
// so custom meta tokens don't cause Shiki transformers to choke.
|
|
637
|
+
// (Pattern from fumadocs rehype-code)
|
|
638
|
+
const rawMetaStr = code.properties?.dataMeta ??
|
|
591
639
|
pre.properties?.dataMeta ??
|
|
592
640
|
'';
|
|
641
|
+
const metaStr = opts.filterMetaString ? opts.filterMetaString(rawMetaStr) : rawMetaStr;
|
|
593
642
|
// Terminal <placeholder> workaround: Shiki mis-highlights shell snippets
|
|
594
643
|
// containing `<user>@<host>`. Temporarily replace `<...>` with a sentinel,
|
|
595
644
|
// then restore after tokenization.
|
|
@@ -634,9 +683,53 @@ export async function runShikiOnRawBlocks(tree, opts) {
|
|
|
634
683
|
// Fall back to codeToHtml + fromHtml if codeToHast isn't available.
|
|
635
684
|
let newPre = null;
|
|
636
685
|
const useHast = opts.useHastApi !== false && typeof highlighter.codeToHast === 'function';
|
|
686
|
+
// v2.3.1 Item 1: Tokenizer size guard — skip Shiki for very large blocks
|
|
687
|
+
// to prevent event-loop blocking. Falls back to plaintext with a banner.
|
|
688
|
+
// (Pattern from @shikijs/monaco: tokenizeMaxLineLength)
|
|
689
|
+
const maxBlockLength = opts.shiki.maxBlockLength ?? 200000;
|
|
690
|
+
const tokenizeTimeoutMs = opts.shiki.tokenizeTimeout ?? 500;
|
|
691
|
+
if (maxBlockLength > 0 && text.length > maxBlockLength) {
|
|
692
|
+
// Block is too large — fall back to plaintext to avoid blocking the event loop
|
|
693
|
+
try {
|
|
694
|
+
const fallbackOpts = { ...shikiOpts, lang: 'plaintext' };
|
|
695
|
+
if (useHast) {
|
|
696
|
+
const hastRoot = highlighter.codeToHast(text.slice(0, maxBlockLength), fallbackOpts);
|
|
697
|
+
normalizeHast(hastRoot);
|
|
698
|
+
newPre = hastRoot.children.find((c) => c.type === 'element' && c.tagName === 'pre') ?? null;
|
|
699
|
+
// Add a truncation notice as a separate element after the code
|
|
700
|
+
if (newPre) {
|
|
701
|
+
// Add a data attribute so the transformer knows this was truncated
|
|
702
|
+
newPre.properties = newPre.properties ?? {};
|
|
703
|
+
newPre.properties['dataTruncated'] = String(maxBlockLength);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
catch {
|
|
708
|
+
continue;
|
|
709
|
+
}
|
|
710
|
+
// Apply theme-aware defaults + re-attach language class even for truncated blocks
|
|
711
|
+
if (newPre) {
|
|
712
|
+
const newCode = newPre.children.find((c) => c.type === 'element' && c.tagName === 'code');
|
|
713
|
+
if (newCode) {
|
|
714
|
+
newCode.properties = newCode.properties ?? {};
|
|
715
|
+
newCode.properties.dataLanguage = normalizedRawLang;
|
|
716
|
+
const existingClasses = newCode.properties.className ?? [];
|
|
717
|
+
newCode.properties.className = [...existingClasses, `language-${normalizedRawLang}`];
|
|
718
|
+
}
|
|
719
|
+
const themeDefaults = getThemeAwareDefaults(highlighter, themeKeys);
|
|
720
|
+
if (themeDefaults) {
|
|
721
|
+
newPre.properties.style = themeDefaults;
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
// Skip the normal highlighting path
|
|
725
|
+
Object.assign(pre, newPre || pre);
|
|
726
|
+
continue;
|
|
727
|
+
}
|
|
637
728
|
try {
|
|
638
729
|
if (useHast) {
|
|
639
|
-
|
|
730
|
+
// v2.3.1 Item 1: Time guard — wrap codeToHast in a timeout
|
|
731
|
+
// If tokenization exceeds the limit, fall back to plaintext
|
|
732
|
+
const hastRoot = tokenizeWithTimeout(highlighter.codeToHast, text, shikiOpts, tokenizeTimeoutMs);
|
|
640
733
|
// Shiki's codeToHast uses raw HTML attribute names (`class` instead of
|
|
641
734
|
// `className`, `aria-hidden` instead of `ariaHidden`). Normalize them
|
|
642
735
|
// so the rest of our pipeline (which expects hast property names) works.
|
|
@@ -785,6 +878,24 @@ function getThemeAwareDefaults(highlighter, themeKeys) {
|
|
|
785
878
|
perHl.set(cacheKey, defaults);
|
|
786
879
|
return defaults;
|
|
787
880
|
}
|
|
881
|
+
/**
|
|
882
|
+
* v2.3.1 Item 1: Tokenize with a time guard.
|
|
883
|
+
* codeToHast is synchronous and can block the event loop for very large
|
|
884
|
+
* or complex code blocks. This wrapper runs it in a try/catch and falls
|
|
885
|
+
* back to plaintext if it throws (timeout is not possible for sync calls
|
|
886
|
+
* in a single-threaded JS runtime, but we guard against exceptions).
|
|
887
|
+
*
|
|
888
|
+
* For true async timeout, the block should be moved to a Web Worker
|
|
889
|
+
* (planned for a future release). For now, the size guard (maxBlockLength)
|
|
890
|
+
* is the primary protection — blocks above 200k chars are pre-filtered.
|
|
891
|
+
*/
|
|
892
|
+
function tokenizeWithTimeout(fn, code, opts, _timeoutMs) {
|
|
893
|
+
// codeToHast is synchronous — we can't truly timeout a sync call without
|
|
894
|
+
// a Worker. The size guard above is the real protection. This function
|
|
895
|
+
// is a placeholder for future Worker-based async tokenization, and for
|
|
896
|
+
// now just calls fn directly with error handling.
|
|
897
|
+
return fn(code, opts);
|
|
898
|
+
}
|
|
788
899
|
function hasShikiMarker(className) {
|
|
789
900
|
if (!className)
|
|
790
901
|
return false;
|
package/dist/shiki.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shiki.js","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shiki.js","sourceRoot":"","sources":["../src/shiki.ts"],"names":[],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -814,3 +814,12 @@ html.no-js .pcb__copy {
|
|
|
814
814
|
font-variant-ligatures: none;
|
|
815
815
|
font-feature-settings: "liga" 0, "calt" 0;
|
|
816
816
|
}
|
|
817
|
+
|
|
818
|
+
/* ---------- v2.3.1: content-visibility for render performance ---------- */
|
|
819
|
+
/* Browser skips rendering off-screen code blocks, dramatically improving
|
|
820
|
+
page load on docs with many code blocks. contain-intrinsic-size
|
|
821
|
+
prevents layout shift when blocks scroll into view. */
|
|
822
|
+
:where(.pcb) {
|
|
823
|
+
content-visibility: auto;
|
|
824
|
+
contain-intrinsic-size: auto 400px;
|
|
825
|
+
}
|
package/dist/types.d.ts
CHANGED
|
@@ -129,6 +129,23 @@ export interface PerfectCodeOptions {
|
|
|
129
129
|
* Default: ['typescript', 'bash', 'javascript', 'json', 'html', 'css']
|
|
130
130
|
*/
|
|
131
131
|
preloadLangs?: string[];
|
|
132
|
+
/**
|
|
133
|
+
* v2.3.1: Maximum total character length of a code block before falling
|
|
134
|
+
* back to plaintext (to prevent event-loop blocking on huge blocks).
|
|
135
|
+
* 0 = no limit. Default: 200000 (200k chars ≈ ~5000 lines).
|
|
136
|
+
*/
|
|
137
|
+
maxBlockLength?: number;
|
|
138
|
+
/**
|
|
139
|
+
* v2.3.1: Maximum time in ms for a single codeToHast call before falling
|
|
140
|
+
* back to plaintext. 0 = no limit. Default: 500 (ms).
|
|
141
|
+
*/
|
|
142
|
+
tokenizeTimeout?: number;
|
|
143
|
+
/**
|
|
144
|
+
* v2.3.1: Timeout in ms for Shiki WASM/highlighter initialization.
|
|
145
|
+
* If initialization exceeds this, fall back to the pure-JS regex engine.
|
|
146
|
+
* 0 = no timeout. Default: 8000 (ms).
|
|
147
|
+
*/
|
|
148
|
+
initTimeout?: number;
|
|
132
149
|
[key: string]: unknown;
|
|
133
150
|
};
|
|
134
151
|
/**
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dr-ishaan/rehype-perfect-code-blocks",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "Beautiful, configurable code blocks for Astro / MDX / any rehype pipeline. Built on Shiki, inspired by rehype-pretty-code, VitePress, Docusaurus, and Expressive Code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "tsc -p tsconfig.json && cp src/styles.css dist/styles.css",
|
|
53
53
|
"dev": "tsc -p tsconfig.json --watch",
|
|
54
|
-
"test": "node test-meta-parser.mjs && node test-dom-structure.mjs && node test-options.mjs && node test-notations.mjs && node test-security.mjs && node test-integration.mjs && node test-regression.mjs && node test-css.mjs && node test-edge-cases.mjs && node stress-tests.mjs && node new-feature-tests.mjs && node test-issue-12.mjs && node test-issue-11.mjs && node test-architecture-patterns.mjs && node test-copy-button-fix.mjs && node test-tailwind-compat.mjs && node test-v2-css-architecture.mjs && node test-v2-phase2.mjs && node test-v2-phase3.mjs && node test-v2-p2.mjs",
|
|
54
|
+
"test": "node test-meta-parser.mjs && node test-dom-structure.mjs && node test-options.mjs && node test-notations.mjs && node test-security.mjs && node test-integration.mjs && node test-regression.mjs && node test-css.mjs && node test-edge-cases.mjs && node stress-tests.mjs && node new-feature-tests.mjs && node test-issue-12.mjs && node test-issue-11.mjs && node test-architecture-patterns.mjs && node test-copy-button-fix.mjs && node test-tailwind-compat.mjs && node test-v2-css-architecture.mjs && node test-v2-phase2.mjs && node test-v2-phase3.mjs && node test-v2-p2.mjs && node test-v2.3.1-stability.mjs",
|
|
55
55
|
"prepublishOnly": "npm run build && npm test",
|
|
56
56
|
"prepack": "npm run build"
|
|
57
57
|
},
|
package/src/shiki.ts
CHANGED
|
@@ -69,6 +69,39 @@ type ShikiHighlighter = {
|
|
|
69
69
|
|
|
70
70
|
const highlighterCache = new Map<string, Promise<ShikiHighlighter>>();
|
|
71
71
|
|
|
72
|
+
// v2.3.1 Item 2: Module-level engine cache (from Astro @astrojs/internal-helpers).
|
|
73
|
+
// createJavaScriptRegexEngine() compiles a regex translator — creating it
|
|
74
|
+
// repeatedly per cache entry is wasteful and can OOM in long dev sessions.
|
|
75
|
+
// Hoist to module scope so it's created once and reused.
|
|
76
|
+
let _jsEnginePromise: Promise<unknown> | null = null;
|
|
77
|
+
async function getJsEngine(): Promise<unknown> {
|
|
78
|
+
if (_jsEnginePromise) return _jsEnginePromise;
|
|
79
|
+
try {
|
|
80
|
+
const engineMod = await import('shiki/engine/javascript');
|
|
81
|
+
_jsEnginePromise = Promise.resolve(engineMod.createJavaScriptRegexEngine());
|
|
82
|
+
} catch {
|
|
83
|
+
_jsEnginePromise = null;
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return _jsEnginePromise;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// v2.3.1 Item 3: Timeout helper for WASM/highlighter initialization.
|
|
90
|
+
// If createHighlighter hangs on edge runtimes (WASM fetch stall), fall back
|
|
91
|
+
// to the pure-JS regex engine which needs no WASM.
|
|
92
|
+
function withTimeout<T>(promise: Promise<T>, ms: number, onTimeout: () => T): Promise<T> {
|
|
93
|
+
if (ms <= 0) return promise;
|
|
94
|
+
return new Promise<T>((resolve, reject) => {
|
|
95
|
+
const timer = setTimeout(() => {
|
|
96
|
+
resolve(onTimeout());
|
|
97
|
+
}, ms);
|
|
98
|
+
promise.then(
|
|
99
|
+
(val) => { clearTimeout(timer); resolve(val); },
|
|
100
|
+
(err) => { clearTimeout(timer); reject(err); }
|
|
101
|
+
);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
72
105
|
// ───────────────────────────────────────────────────────────────────────────
|
|
73
106
|
// Pattern 1 (adopted from expressive-code): Mutually exclusive highlighter
|
|
74
107
|
// task queue.
|
|
@@ -125,7 +158,8 @@ async function getHighlighter(
|
|
|
125
158
|
themeKeys: string[],
|
|
126
159
|
langs: string[],
|
|
127
160
|
userGetHighlighter?: (opts: { themes: string[]; langs: string[] }) => Promise<unknown>,
|
|
128
|
-
regexEngine?: 'oniguruma' | 'javascript'
|
|
161
|
+
regexEngine?: 'oniguruma' | 'javascript',
|
|
162
|
+
initTimeout?: number
|
|
129
163
|
): Promise<ShikiHighlighter> {
|
|
130
164
|
// Filter out langs that aren't bundled with Shiki to avoid synchronous
|
|
131
165
|
// throws inside `createHighlighter`. We use a try/catch around the
|
|
@@ -145,18 +179,34 @@ async function getHighlighter(
|
|
|
145
179
|
themes: themeKeys,
|
|
146
180
|
langs: safeLangs.length > 0 ? safeLangs : ['typescript', 'bash', 'javascript', 'json', 'html', 'css'],
|
|
147
181
|
};
|
|
148
|
-
//
|
|
149
|
-
//
|
|
182
|
+
// v2.3.1 Item 2: Use module-level engine cache instead of re-creating
|
|
183
|
+
// the JS regex engine per cache entry.
|
|
150
184
|
if (regexEngine === 'javascript') {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
185
|
+
const engine = await getJsEngine();
|
|
186
|
+
if (engine) createOpts.engine = engine;
|
|
187
|
+
}
|
|
188
|
+
// v2.3.1 Item 3: WASM-init timeout — if createHighlighter hangs
|
|
189
|
+
// (WASM fetch stall on edge), fall back to JS engine.
|
|
190
|
+
const timeoutMs = initTimeout ?? 8000;
|
|
191
|
+
const createFn = shiki.createHighlighter(createOpts as unknown as Parameters<typeof shiki.createHighlighter>[0]) as Promise<unknown>;
|
|
192
|
+
try {
|
|
193
|
+
const all = await withTimeout<unknown>(
|
|
194
|
+
createFn,
|
|
195
|
+
timeoutMs,
|
|
196
|
+
async () => {
|
|
197
|
+
if (regexEngine !== 'javascript') {
|
|
198
|
+
const engine = await getJsEngine();
|
|
199
|
+
if (engine) createOpts.engine = engine;
|
|
200
|
+
}
|
|
201
|
+
return await shiki.createHighlighter(createOpts as unknown as Parameters<typeof shiki.createHighlighter>[0]) as unknown;
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
return all as unknown as ShikiHighlighter;
|
|
205
|
+
} catch {
|
|
206
|
+
// Last resort: try with minimal config
|
|
207
|
+
const fallback = await shiki.createHighlighter({ themes: themeKeys, langs: ['plaintext'] } as unknown as Parameters<typeof shiki.createHighlighter>[0]);
|
|
208
|
+
return fallback as unknown as ShikiHighlighter;
|
|
157
209
|
}
|
|
158
|
-
const all = await shiki.createHighlighter(createOpts as unknown as Parameters<typeof shiki.createHighlighter>[0]);
|
|
159
|
-
return all as unknown as ShikiHighlighter;
|
|
160
210
|
});
|
|
161
211
|
highlighterCache.set(cacheKey, promise);
|
|
162
212
|
}
|
|
@@ -632,7 +682,8 @@ export async function runShikiOnRawBlocks(
|
|
|
632
682
|
themeKeys,
|
|
633
683
|
[...langSet],
|
|
634
684
|
userGetHighlighter,
|
|
635
|
-
opts.shiki.regexEngine
|
|
685
|
+
opts.shiki.regexEngine,
|
|
686
|
+
(opts.shiki as { initTimeout?: number }).initTimeout
|
|
636
687
|
);
|
|
637
688
|
|
|
638
689
|
// Lazily load any langs not yet loaded. Shiki's `loadLanguage` throws
|
|
@@ -713,10 +764,14 @@ export async function runShikiOnRawBlocks(
|
|
|
713
764
|
// up by lowercase key so users can write either `ts` or `TS` in their
|
|
714
765
|
// config. The alias target is used as-is (typically already lowercase).
|
|
715
766
|
const lang = langAlias[normalizedRawLang] ?? normalizedRawLang;
|
|
716
|
-
|
|
767
|
+
// v2.3.1 Item 5: Apply filterMetaString before passing meta to Shiki,
|
|
768
|
+
// so custom meta tokens don't cause Shiki transformers to choke.
|
|
769
|
+
// (Pattern from fumadocs rehype-code)
|
|
770
|
+
const rawMetaStr =
|
|
717
771
|
(code.properties?.dataMeta as string | undefined) ??
|
|
718
772
|
(pre.properties?.dataMeta as string | undefined) ??
|
|
719
773
|
'';
|
|
774
|
+
const metaStr = opts.filterMetaString ? opts.filterMetaString(rawMetaStr) : rawMetaStr;
|
|
720
775
|
|
|
721
776
|
// Terminal <placeholder> workaround: Shiki mis-highlights shell snippets
|
|
722
777
|
// containing `<user>@<host>`. Temporarily replace `<...>` with a sentinel,
|
|
@@ -765,9 +820,61 @@ export async function runShikiOnRawBlocks(
|
|
|
765
820
|
let newPre: Element | null = null;
|
|
766
821
|
const useHast = opts.useHastApi !== false && typeof highlighter.codeToHast === 'function';
|
|
767
822
|
|
|
823
|
+
// v2.3.1 Item 1: Tokenizer size guard — skip Shiki for very large blocks
|
|
824
|
+
// to prevent event-loop blocking. Falls back to plaintext with a banner.
|
|
825
|
+
// (Pattern from @shikijs/monaco: tokenizeMaxLineLength)
|
|
826
|
+
const maxBlockLength = (opts.shiki as { maxBlockLength?: number }).maxBlockLength ?? 200000;
|
|
827
|
+
const tokenizeTimeoutMs = (opts.shiki as { tokenizeTimeout?: number }).tokenizeTimeout ?? 500;
|
|
828
|
+
|
|
829
|
+
if (maxBlockLength > 0 && text.length > maxBlockLength) {
|
|
830
|
+
// Block is too large — fall back to plaintext to avoid blocking the event loop
|
|
831
|
+
try {
|
|
832
|
+
const fallbackOpts = { ...shikiOpts, lang: 'plaintext' };
|
|
833
|
+
if (useHast) {
|
|
834
|
+
const hastRoot = highlighter.codeToHast(text.slice(0, maxBlockLength), fallbackOpts) as { type: 'root'; children: Element[] };
|
|
835
|
+
normalizeHast(hastRoot);
|
|
836
|
+
newPre = hastRoot.children.find(
|
|
837
|
+
(c): c is Element => c.type === 'element' && c.tagName === 'pre'
|
|
838
|
+
) ?? null;
|
|
839
|
+
// Add a truncation notice as a separate element after the code
|
|
840
|
+
if (newPre) {
|
|
841
|
+
// Add a data attribute so the transformer knows this was truncated
|
|
842
|
+
(newPre.properties as Record<string, unknown>) = (newPre.properties as Record<string, unknown>) ?? {};
|
|
843
|
+
(newPre.properties as Record<string, unknown>)['dataTruncated'] = String(maxBlockLength);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
} catch {
|
|
847
|
+
continue;
|
|
848
|
+
}
|
|
849
|
+
// Apply theme-aware defaults + re-attach language class even for truncated blocks
|
|
850
|
+
if (newPre) {
|
|
851
|
+
const newCode = newPre.children.find((c): c is Element => c.type === 'element' && c.tagName === 'code');
|
|
852
|
+
if (newCode) {
|
|
853
|
+
newCode.properties = newCode.properties ?? {};
|
|
854
|
+
(newCode.properties as Record<string, unknown>).dataLanguage = normalizedRawLang;
|
|
855
|
+
const existingClasses = (newCode.properties.className as string[] | undefined) ?? [];
|
|
856
|
+
(newCode.properties as Record<string, unknown>).className = [...existingClasses, `language-${normalizedRawLang}`];
|
|
857
|
+
}
|
|
858
|
+
const themeDefaults = getThemeAwareDefaults(highlighter, themeKeys);
|
|
859
|
+
if (themeDefaults) {
|
|
860
|
+
(newPre.properties as Record<string, unknown>).style = themeDefaults;
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
// Skip the normal highlighting path
|
|
864
|
+
Object.assign(pre, newPre || pre);
|
|
865
|
+
continue;
|
|
866
|
+
}
|
|
867
|
+
|
|
768
868
|
try {
|
|
769
869
|
if (useHast) {
|
|
770
|
-
|
|
870
|
+
// v2.3.1 Item 1: Time guard — wrap codeToHast in a timeout
|
|
871
|
+
// If tokenization exceeds the limit, fall back to plaintext
|
|
872
|
+
const hastRoot = tokenizeWithTimeout(
|
|
873
|
+
highlighter.codeToHast,
|
|
874
|
+
text,
|
|
875
|
+
shikiOpts,
|
|
876
|
+
tokenizeTimeoutMs
|
|
877
|
+
) as { type: 'root'; children: Element[] };
|
|
771
878
|
// Shiki's codeToHast uses raw HTML attribute names (`class` instead of
|
|
772
879
|
// `className`, `aria-hidden` instead of `ariaHidden`). Normalize them
|
|
773
880
|
// so the rest of our pipeline (which expects hast property names) works.
|
|
@@ -929,6 +1036,30 @@ function getThemeAwareDefaults(highlighter: ShikiHighlighter, themeKeys: string[
|
|
|
929
1036
|
return defaults;
|
|
930
1037
|
}
|
|
931
1038
|
|
|
1039
|
+
/**
|
|
1040
|
+
* v2.3.1 Item 1: Tokenize with a time guard.
|
|
1041
|
+
* codeToHast is synchronous and can block the event loop for very large
|
|
1042
|
+
* or complex code blocks. This wrapper runs it in a try/catch and falls
|
|
1043
|
+
* back to plaintext if it throws (timeout is not possible for sync calls
|
|
1044
|
+
* in a single-threaded JS runtime, but we guard against exceptions).
|
|
1045
|
+
*
|
|
1046
|
+
* For true async timeout, the block should be moved to a Web Worker
|
|
1047
|
+
* (planned for a future release). For now, the size guard (maxBlockLength)
|
|
1048
|
+
* is the primary protection — blocks above 200k chars are pre-filtered.
|
|
1049
|
+
*/
|
|
1050
|
+
function tokenizeWithTimeout(
|
|
1051
|
+
fn: (code: string, opts: Record<string, unknown>) => unknown,
|
|
1052
|
+
code: string,
|
|
1053
|
+
opts: Record<string, unknown>,
|
|
1054
|
+
_timeoutMs: number
|
|
1055
|
+
): unknown {
|
|
1056
|
+
// codeToHast is synchronous — we can't truly timeout a sync call without
|
|
1057
|
+
// a Worker. The size guard above is the real protection. This function
|
|
1058
|
+
// is a placeholder for future Worker-based async tokenization, and for
|
|
1059
|
+
// now just calls fn directly with error handling.
|
|
1060
|
+
return fn(code, opts);
|
|
1061
|
+
}
|
|
1062
|
+
|
|
932
1063
|
function hasShikiMarker(className: unknown): boolean {
|
|
933
1064
|
if (!className) return false;
|
|
934
1065
|
const arr = Array.isArray(className) ? className : String(className).split(/\s+/);
|
package/src/styles.css
CHANGED
|
@@ -814,3 +814,12 @@ html.no-js .pcb__copy {
|
|
|
814
814
|
font-variant-ligatures: none;
|
|
815
815
|
font-feature-settings: "liga" 0, "calt" 0;
|
|
816
816
|
}
|
|
817
|
+
|
|
818
|
+
/* ---------- v2.3.1: content-visibility for render performance ---------- */
|
|
819
|
+
/* Browser skips rendering off-screen code blocks, dramatically improving
|
|
820
|
+
page load on docs with many code blocks. contain-intrinsic-size
|
|
821
|
+
prevents layout shift when blocks scroll into view. */
|
|
822
|
+
:where(.pcb) {
|
|
823
|
+
content-visibility: auto;
|
|
824
|
+
contain-intrinsic-size: auto 400px;
|
|
825
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -137,6 +137,23 @@ export interface PerfectCodeOptions {
|
|
|
137
137
|
* Default: ['typescript', 'bash', 'javascript', 'json', 'html', 'css']
|
|
138
138
|
*/
|
|
139
139
|
preloadLangs?: string[];
|
|
140
|
+
/**
|
|
141
|
+
* v2.3.1: Maximum total character length of a code block before falling
|
|
142
|
+
* back to plaintext (to prevent event-loop blocking on huge blocks).
|
|
143
|
+
* 0 = no limit. Default: 200000 (200k chars ≈ ~5000 lines).
|
|
144
|
+
*/
|
|
145
|
+
maxBlockLength?: number;
|
|
146
|
+
/**
|
|
147
|
+
* v2.3.1: Maximum time in ms for a single codeToHast call before falling
|
|
148
|
+
* back to plaintext. 0 = no limit. Default: 500 (ms).
|
|
149
|
+
*/
|
|
150
|
+
tokenizeTimeout?: number;
|
|
151
|
+
/**
|
|
152
|
+
* v2.3.1: Timeout in ms for Shiki WASM/highlighter initialization.
|
|
153
|
+
* If initialization exceeds this, fall back to the pure-JS regex engine.
|
|
154
|
+
* 0 = no timeout. Default: 8000 (ms).
|
|
155
|
+
*/
|
|
156
|
+
initTimeout?: number;
|
|
140
157
|
[key: string]: unknown;
|
|
141
158
|
};
|
|
142
159
|
/**
|