@refrakt-md/highlight 0.4.0 → 0.5.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/dist/highlight.d.ts +18 -3
- package/dist/highlight.d.ts.map +1 -1
- package/dist/highlight.js +89 -9
- package/dist/highlight.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/langs/markdoc.d.ts.map +1 -1
- package/dist/langs/markdoc.js +22 -1
- package/dist/langs/markdoc.js.map +1 -1
- package/package.json +3 -3
package/dist/highlight.d.ts
CHANGED
|
@@ -7,14 +7,29 @@ export interface HighlightOptions {
|
|
|
7
7
|
/** Custom highlight function. Receives raw code + language, returns HTML string.
|
|
8
8
|
* Default: Shiki with css-variables theme. */
|
|
9
9
|
highlight?: (code: string, lang: string) => string;
|
|
10
|
+
/** Shiki theme — a built-in theme name, or { light, dark } pair for dual themes.
|
|
11
|
+
* Default: CSS variables theme (--shiki-token-* custom properties). */
|
|
12
|
+
theme?: string | {
|
|
13
|
+
light: string;
|
|
14
|
+
dark: string;
|
|
15
|
+
};
|
|
10
16
|
}
|
|
17
|
+
/** A highlight transform function with an attached `.css` property containing
|
|
18
|
+
* any CSS needed for the selected theme (background overrides, dual-theme toggle). */
|
|
19
|
+
export type HighlightTransform = ((tree: RendererNode) => RendererNode) & {
|
|
20
|
+
css: string;
|
|
21
|
+
};
|
|
11
22
|
/**
|
|
12
23
|
* Create a syntax highlight transform that walks the serialized tree,
|
|
13
24
|
* finds elements with `data-language` + text children, highlights them,
|
|
14
25
|
* and sets `data-codeblock: true` for raw HTML injection by the Renderer.
|
|
15
26
|
*
|
|
16
|
-
* Uses Shiki with a CSS variables theme by default. Pass a
|
|
17
|
-
*
|
|
27
|
+
* Uses Shiki with a CSS variables theme by default. Pass a `theme` option
|
|
28
|
+
* to use any built-in Shiki theme, or a `{ light, dark }` pair for
|
|
29
|
+
* dual-theme support that switches with the site's light/dark mode.
|
|
30
|
+
*
|
|
31
|
+
* The returned function has a `.css` property containing any CSS needed
|
|
32
|
+
* for the selected theme (background color overrides, dual-theme toggle rules).
|
|
18
33
|
*/
|
|
19
|
-
export declare function createHighlightTransform(options?: HighlightOptions): Promise<
|
|
34
|
+
export declare function createHighlightTransform(options?: HighlightOptions): Promise<HighlightTransform>;
|
|
20
35
|
//# sourceMappingURL=highlight.d.ts.map
|
package/dist/highlight.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../src/highlight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../src/highlight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAqD,MAAM,OAAO,CAAC;AAErG,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,mBAAmB,CAAC;AAKrE,MAAM,WAAW,gBAAgB;IAChC;iFAC6E;IAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAC1C;mDAC+C;IAC/C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD;4EACwE;IACxE,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED;uFACuF;AACvF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAU1F;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC7C,OAAO,GAAE,gBAAqB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAiD7B"}
|
package/dist/highlight.js
CHANGED
|
@@ -14,16 +14,50 @@ const DEFAULT_LANGS = [
|
|
|
14
14
|
* finds elements with `data-language` + text children, highlights them,
|
|
15
15
|
* and sets `data-codeblock: true` for raw HTML injection by the Renderer.
|
|
16
16
|
*
|
|
17
|
-
* Uses Shiki with a CSS variables theme by default. Pass a
|
|
18
|
-
*
|
|
17
|
+
* Uses Shiki with a CSS variables theme by default. Pass a `theme` option
|
|
18
|
+
* to use any built-in Shiki theme, or a `{ light, dark }` pair for
|
|
19
|
+
* dual-theme support that switches with the site's light/dark mode.
|
|
20
|
+
*
|
|
21
|
+
* The returned function has a `.css` property containing any CSS needed
|
|
22
|
+
* for the selected theme (background color overrides, dual-theme toggle rules).
|
|
19
23
|
*/
|
|
20
24
|
export async function createHighlightTransform(options = {}) {
|
|
21
|
-
const { langs = DEFAULT_LANGS, highlight: customHighlight } = options;
|
|
25
|
+
const { langs = DEFAULT_LANGS, highlight: customHighlight, theme } = options;
|
|
22
26
|
let highlightFn;
|
|
27
|
+
let css = '';
|
|
23
28
|
if (customHighlight) {
|
|
24
29
|
highlightFn = customHighlight;
|
|
25
30
|
}
|
|
31
|
+
else if (theme && typeof theme === 'object') {
|
|
32
|
+
// Dual theme: { light, dark }
|
|
33
|
+
const highlighter = await createHighlighter({
|
|
34
|
+
themes: [theme.light, theme.dark],
|
|
35
|
+
langs,
|
|
36
|
+
});
|
|
37
|
+
highlightFn = (code, lang) => {
|
|
38
|
+
const html = highlighter.codeToHtml(code, {
|
|
39
|
+
lang,
|
|
40
|
+
themes: { light: theme.light, dark: theme.dark },
|
|
41
|
+
defaultColor: 'light',
|
|
42
|
+
});
|
|
43
|
+
return extractInnerHtml(html);
|
|
44
|
+
};
|
|
45
|
+
css = buildDualThemeCss(highlighter, theme.light, theme.dark);
|
|
46
|
+
}
|
|
47
|
+
else if (theme && typeof theme === 'string') {
|
|
48
|
+
// Single named theme
|
|
49
|
+
const highlighter = await createHighlighter({
|
|
50
|
+
themes: [theme],
|
|
51
|
+
langs,
|
|
52
|
+
});
|
|
53
|
+
highlightFn = (code, lang) => {
|
|
54
|
+
const html = highlighter.codeToHtml(code, { lang, theme });
|
|
55
|
+
return extractInnerHtml(html);
|
|
56
|
+
};
|
|
57
|
+
css = buildSingleThemeCss(highlighter, theme);
|
|
58
|
+
}
|
|
26
59
|
else {
|
|
60
|
+
// Default: CSS variables theme
|
|
27
61
|
const highlighter = await createHighlighter({
|
|
28
62
|
themes: [cssVarsTheme],
|
|
29
63
|
langs,
|
|
@@ -33,7 +67,55 @@ export async function createHighlightTransform(options = {}) {
|
|
|
33
67
|
return extractInnerHtml(html);
|
|
34
68
|
};
|
|
35
69
|
}
|
|
36
|
-
|
|
70
|
+
const transform = ((tree) => walk(tree, highlightFn));
|
|
71
|
+
transform.css = css;
|
|
72
|
+
return transform;
|
|
73
|
+
}
|
|
74
|
+
/** Build CSS for a single named theme — overrides code block bg/fg. */
|
|
75
|
+
function buildSingleThemeCss(highlighter, themeName) {
|
|
76
|
+
const theme = highlighter.getTheme(themeName);
|
|
77
|
+
const bg = theme.bg;
|
|
78
|
+
const fg = theme.fg;
|
|
79
|
+
return `:root {\n\t--rf-color-code-bg: ${bg};\n\t--rf-color-code-text: ${fg};\n}\n`;
|
|
80
|
+
}
|
|
81
|
+
/** Build CSS for dual themes — bg/fg overrides + dark mode span toggle.
|
|
82
|
+
* Uses `defaultColor: 'light'` so light colors are inline on spans.
|
|
83
|
+
* Dark mode uses `!important` to override inline styles (standard Shiki pattern). */
|
|
84
|
+
function buildDualThemeCss(highlighter, lightName, darkName) {
|
|
85
|
+
const light = highlighter.getTheme(lightName);
|
|
86
|
+
const dark = highlighter.getTheme(darkName);
|
|
87
|
+
return `/* Highlight theme: ${lightName} / ${darkName} */
|
|
88
|
+
pre[data-language] {
|
|
89
|
+
\tbackground-color: ${light.bg};
|
|
90
|
+
\tcolor: ${light.fg};
|
|
91
|
+
}
|
|
92
|
+
[data-theme="dark"] pre[data-language] {
|
|
93
|
+
\tbackground-color: ${dark.bg};
|
|
94
|
+
\tcolor: ${dark.fg};
|
|
95
|
+
}
|
|
96
|
+
@media (prefers-color-scheme: dark) {
|
|
97
|
+
\t:root:not([data-theme="light"]) pre[data-language] {
|
|
98
|
+
\t\tbackground-color: ${dark.bg};
|
|
99
|
+
\t\tcolor: ${dark.fg};
|
|
100
|
+
\t}
|
|
101
|
+
}
|
|
102
|
+
[data-theme="dark"] [data-codeblock] span {
|
|
103
|
+
\tcolor: var(--shiki-dark) !important;
|
|
104
|
+
\tbackground-color: var(--shiki-dark-bg) !important;
|
|
105
|
+
\tfont-style: var(--shiki-dark-font-style) !important;
|
|
106
|
+
\tfont-weight: var(--shiki-dark-font-weight) !important;
|
|
107
|
+
\ttext-decoration: var(--shiki-dark-text-decoration) !important;
|
|
108
|
+
}
|
|
109
|
+
@media (prefers-color-scheme: dark) {
|
|
110
|
+
\t:root:not([data-theme="light"]) [data-codeblock] span {
|
|
111
|
+
\t\tcolor: var(--shiki-dark) !important;
|
|
112
|
+
\t\tbackground-color: var(--shiki-dark-bg) !important;
|
|
113
|
+
\t\tfont-style: var(--shiki-dark-font-style) !important;
|
|
114
|
+
\t\tfont-weight: var(--shiki-dark-font-weight) !important;
|
|
115
|
+
\t\ttext-decoration: var(--shiki-dark-text-decoration) !important;
|
|
116
|
+
\t}
|
|
117
|
+
}
|
|
118
|
+
`;
|
|
37
119
|
}
|
|
38
120
|
/** Walk the serialized tree, highlighting elements with `data-language`. */
|
|
39
121
|
function walk(node, highlightFn) {
|
|
@@ -74,11 +156,9 @@ function highlightNode(node, lang, highlightFn) {
|
|
|
74
156
|
}
|
|
75
157
|
/** Strip Shiki's <pre><code> wrapper to get just the highlighted spans. */
|
|
76
158
|
function extractInnerHtml(html) {
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return html.slice(codeStart + '<code>'.length, codeEnd);
|
|
81
|
-
}
|
|
159
|
+
const match = html.match(/<code[^>]*>([\s\S]*)<\/code>/);
|
|
160
|
+
if (match)
|
|
161
|
+
return match[1];
|
|
82
162
|
return html;
|
|
83
163
|
}
|
|
84
164
|
//# sourceMappingURL=highlight.js.map
|
package/dist/highlight.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight.js","sourceRoot":"","sources":["../src/highlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,YAAY,GAAG,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"highlight.js","sourceRoot":"","sources":["../src/highlight.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { createHighlightTransform } from './highlight.js';
|
|
2
|
-
export type { HighlightOptions } from './highlight.js';
|
|
2
|
+
export type { HighlightOptions, HighlightTransform } from './highlight.js';
|
|
3
3
|
export { markdocLanguage } from './langs/markdoc.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdoc.d.ts","sourceRoot":"","sources":["../../src/langs/markdoc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"markdoc.d.ts","sourceRoot":"","sources":["../../src/langs/markdoc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,oBAwE7B,CAAC"}
|
package/dist/langs/markdoc.js
CHANGED
|
@@ -10,12 +10,33 @@ export const markdocLanguage = {
|
|
|
10
10
|
name: 'markdoc',
|
|
11
11
|
scopeName: 'text.html.markdoc',
|
|
12
12
|
displayName: 'Markdoc',
|
|
13
|
-
embeddedLangs: ['markdown'],
|
|
13
|
+
embeddedLangs: ['markdown', 'html'],
|
|
14
14
|
patterns: [
|
|
15
|
+
{ include: '#sandbox-block' },
|
|
15
16
|
{ include: '#markdoc-tag' },
|
|
16
17
|
{ include: 'text.html.markdown' },
|
|
17
18
|
],
|
|
18
19
|
repository: {
|
|
20
|
+
'sandbox-block': {
|
|
21
|
+
name: 'meta.block.sandbox.markdoc',
|
|
22
|
+
contentName: 'meta.embedded.block.html',
|
|
23
|
+
begin: '(\\{%)(\\s*sandbox)((?:\\s+[^%]*)?)(%\\})',
|
|
24
|
+
end: '(\\{%)(\\s*/sandbox\\s*)(%\\})',
|
|
25
|
+
beginCaptures: {
|
|
26
|
+
1: { name: 'punctuation.definition.tag.begin.markdoc' },
|
|
27
|
+
2: { name: 'entity.name.tag.markdoc' },
|
|
28
|
+
3: { patterns: [{ include: '#tag-attributes' }] },
|
|
29
|
+
4: { name: 'punctuation.definition.tag.end.markdoc' },
|
|
30
|
+
},
|
|
31
|
+
endCaptures: {
|
|
32
|
+
1: { name: 'punctuation.definition.tag.begin.markdoc' },
|
|
33
|
+
2: { name: 'entity.name.tag.markdoc' },
|
|
34
|
+
3: { name: 'punctuation.definition.tag.end.markdoc' },
|
|
35
|
+
},
|
|
36
|
+
patterns: [
|
|
37
|
+
{ include: 'text.html.basic' },
|
|
38
|
+
],
|
|
39
|
+
},
|
|
19
40
|
'markdoc-tag': {
|
|
20
41
|
name: 'meta.tag.markdoc',
|
|
21
42
|
begin: '(\\{%)(\\s*\\/?\\s*[a-z][a-z0-9-]*)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdoc.js","sourceRoot":"","sources":["../../src/langs/markdoc.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB;IACpD,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"markdoc.js","sourceRoot":"","sources":["../../src/langs/markdoc.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB;IACpD,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;IACnC,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC7B,EAAE,OAAO,EAAE,cAAc,EAAE;QAC3B,EAAE,OAAO,EAAE,oBAAoB,EAAE;KACjC;IACD,UAAU,EAAE;QACX,eAAe,EAAE;YAChB,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,0BAA0B;YACvC,KAAK,EAAE,2CAA2C;YAClD,GAAG,EAAE,gCAAgC;YACrC,aAAa,EAAE;gBACd,CAAC,EAAE,EAAE,IAAI,EAAE,0CAA0C,EAAE;gBACvD,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;gBACtC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE;gBACjD,CAAC,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE;aACrD;YACD,WAAW,EAAE;gBACZ,CAAC,EAAE,EAAE,IAAI,EAAE,0CAA0C,EAAE;gBACvD,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;gBACtC,CAAC,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE;aACrD;YACD,QAAQ,EAAE;gBACT,EAAE,OAAO,EAAE,iBAAiB,EAAE;aAC9B;SACD;QACD,aAAa,EAAE;YACd,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,qCAAqC;YAC5C,GAAG,EAAE,QAAQ;YACb,aAAa,EAAE;gBACd,CAAC,EAAE,EAAE,IAAI,EAAE,0CAA0C,EAAE;gBACvD,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;aACtC;YACD,WAAW,EAAE;gBACZ,CAAC,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE;aACrD;YACD,QAAQ,EAAE;gBACT,EAAE,OAAO,EAAE,iBAAiB,EAAE;aAC9B;SACD;QACD,gBAAgB,EAAE;YACjB,QAAQ,EAAE;gBACT,EAAE,OAAO,EAAE,iBAAiB,EAAE;gBAC9B,EAAE,OAAO,EAAE,yBAAyB,EAAE;gBACtC,EAAE,OAAO,EAAE,yBAAyB,EAAE;gBACtC,EAAE,OAAO,EAAE,0BAA0B,EAAE;aACvC;SACD;QACD,gBAAgB,EAAE;YACjB,IAAI,EAAE,qCAAqC;YAC3C,KAAK,EAAE,kCAAkC;SACzC;QACD,wBAAwB,EAAE;YACzB,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG;SACR;QACD,wBAAwB,EAAE;YACzB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,YAAY;SACnB;QACD,yBAAyB,EAAE;YAC1B,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,oBAAoB;SAC3B;KACD;CACD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/highlight",
|
|
3
3
|
"description": "Syntax highlighting transform for refrakt.md — Shiki-based tree walker with pluggable highlighter",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"build": "tsc"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@refrakt-md/types": "0.
|
|
33
|
-
"@refrakt-md/transform": "0.
|
|
32
|
+
"@refrakt-md/types": "0.5.0",
|
|
33
|
+
"@refrakt-md/transform": "0.5.0",
|
|
34
34
|
"shiki": "^3.0.0"
|
|
35
35
|
}
|
|
36
36
|
}
|