raffel 1.1.16 → 1.1.17
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/docs/ui/assets/raffel-docs.css +65 -0
- package/dist/docs/ui/assets/raffel-docs.js +42 -3
- package/dist/docs/ui/client-script/index.d.ts +1 -1
- package/dist/docs/ui/client-script/index.d.ts.map +1 -1
- package/dist/docs/ui/client-script/index.js +3 -2
- package/dist/docs/ui/client-script/index.js.map +1 -1
- package/dist/docs/ui/html-builder.d.ts.map +1 -1
- package/dist/docs/ui/html-builder.js +21 -1
- package/dist/docs/ui/html-builder.js.map +1 -1
- package/dist/docs/ui/runtime/index.js +42 -3
- package/dist/docs/ui/runtime/index.js.map +1 -1
- package/dist/docs/ui/style-sections/content.d.ts +1 -1
- package/dist/docs/ui/style-sections/content.d.ts.map +1 -1
- package/dist/docs/ui/style-sections/content.js +35 -0
- package/dist/docs/ui/style-sections/content.js.map +1 -1
- package/dist/docs/ui/style-sections/shell.d.ts.map +1 -1
- package/dist/docs/ui/style-sections/shell.js +30 -0
- package/dist/docs/ui/style-sections/shell.js.map +1 -1
- package/dist/docs/ui/types.d.ts +18 -0
- package/dist/docs/ui/types.d.ts.map +1 -1
- package/dist/ui/docs/ui/client-script/index.d.ts +1 -1
- package/dist/ui/docs/ui/client-script/index.d.ts.map +1 -1
- package/dist/ui/docs/ui/html-builder.d.ts.map +1 -1
- package/dist/ui/docs/ui/style-sections/content.d.ts +1 -1
- package/dist/ui/docs/ui/style-sections/content.d.ts.map +1 -1
- package/dist/ui/docs/ui/style-sections/shell.d.ts.map +1 -1
- package/dist/ui/docs/ui/types.d.ts +18 -0
- package/dist/ui/docs/ui/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -53,6 +53,16 @@
|
|
|
53
53
|
--hover-bg: rgba(99, 102, 241, 0.15);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
/*
|
|
57
|
+
* theme: 'custom' — user-controlled palette via the --raffel-* token set.
|
|
58
|
+
*
|
|
59
|
+
* Fallbacks here are the LIGHT defaults. They only kick in when the user
|
|
60
|
+
* sets theme: 'custom' and does NOT define the corresponding --raffel-*
|
|
61
|
+
* token in their customCss. The matching prefers-color-scheme: dark
|
|
62
|
+
* block below mirrors theme: 'auto' so a dark-mode visitor never lands
|
|
63
|
+
* on a half-styled light surface; together they make 'custom' default
|
|
64
|
+
* to system preference until the consumer takes full control.
|
|
65
|
+
*/
|
|
56
66
|
[data-theme="custom"] {
|
|
57
67
|
--primary-color: var(--raffel-primary-color, #6366f1);
|
|
58
68
|
--primary-hover: var(--raffel-primary-hover, #5457e2);
|
|
@@ -76,6 +86,26 @@
|
|
|
76
86
|
--code-panel-header: var(--raffel-code-panel-header, #37474f);
|
|
77
87
|
}
|
|
78
88
|
|
|
89
|
+
@media (prefers-color-scheme: dark) {
|
|
90
|
+
[data-theme="custom"] {
|
|
91
|
+
--bg-color: var(--raffel-bg-color, #0f172a);
|
|
92
|
+
--bg-primary: var(--raffel-bg-primary, var(--raffel-bg-color, #0f172a));
|
|
93
|
+
--bg-secondary: var(--raffel-bg-secondary, #111c33);
|
|
94
|
+
--bg-tertiary: var(--raffel-bg-tertiary, #1e293b);
|
|
95
|
+
--surface-color: var(--raffel-surface-color, #111c33);
|
|
96
|
+
--text-color: var(--raffel-text-color, #f1f5f9);
|
|
97
|
+
--text-primary: var(--raffel-text-primary, var(--raffel-text-color, #f1f5f9));
|
|
98
|
+
--text-secondary: var(--raffel-text-secondary, #cbd5e1);
|
|
99
|
+
--text-muted: var(--raffel-text-muted, #94a3b8);
|
|
100
|
+
--border-color: var(--raffel-border-color, #475569);
|
|
101
|
+
--border: var(--raffel-border, var(--raffel-border-color, #475569));
|
|
102
|
+
--accent: var(--raffel-accent, var(--raffel-primary-color, #6366f1));
|
|
103
|
+
--code-bg: var(--raffel-code-bg, #1e293b);
|
|
104
|
+
--sidebar-bg: var(--raffel-sidebar-bg, #1e293b);
|
|
105
|
+
--hover-bg: var(--raffel-hover-bg, rgba(99, 102, 241, 0.15));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
79
109
|
@media (prefers-color-scheme: dark) {
|
|
80
110
|
[data-theme="auto"] {
|
|
81
111
|
--bg-color: #0f172a;
|
|
@@ -1662,6 +1692,41 @@
|
|
|
1662
1692
|
color: #c4b5fd;
|
|
1663
1693
|
}
|
|
1664
1694
|
|
|
1695
|
+
/*
|
|
1696
|
+
* Prism dark tokens also apply to theme: 'custom' under prefers-color-scheme
|
|
1697
|
+
* dark, mirroring the shell.ts default-token logic. Without this block,
|
|
1698
|
+
* consumers using customCss on a dark body inherit the light-mode token
|
|
1699
|
+
* colors (orange/green over dark, hard to scan) and have to rewrite all
|
|
1700
|
+
* 8 token classes themselves.
|
|
1701
|
+
*/
|
|
1702
|
+
@media (prefers-color-scheme: dark) {
|
|
1703
|
+
[data-theme="custom"] .markdown-content .token.property,
|
|
1704
|
+
[data-theme="custom"] .markdown-content .token.tag,
|
|
1705
|
+
[data-theme="custom"] .markdown-content .token.boolean,
|
|
1706
|
+
[data-theme="custom"] .markdown-content .token.number,
|
|
1707
|
+
[data-theme="custom"] .markdown-content .token.constant,
|
|
1708
|
+
[data-theme="custom"] .markdown-content .token.symbol {
|
|
1709
|
+
color: #fcd34d;
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1712
|
+
[data-theme="custom"] .markdown-content .token.selector,
|
|
1713
|
+
[data-theme="custom"] .markdown-content .token.attr-name,
|
|
1714
|
+
[data-theme="custom"] .markdown-content .token.string,
|
|
1715
|
+
[data-theme="custom"] .markdown-content .token.char,
|
|
1716
|
+
[data-theme="custom"] .markdown-content .token.builtin {
|
|
1717
|
+
color: #86efac;
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
[data-theme="custom"] .markdown-content .token.function,
|
|
1721
|
+
[data-theme="custom"] .markdown-content .token.class-name {
|
|
1722
|
+
color: #93c5fd;
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1725
|
+
[data-theme="custom"] .markdown-content .token.keyword {
|
|
1726
|
+
color: #c4b5fd;
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1665
1730
|
.markdown-content .mermaid {
|
|
1666
1731
|
margin: 16px 0;
|
|
1667
1732
|
padding: 16px;
|
|
@@ -31,6 +31,8 @@ const docsAssetBasePath = String(data.docsAssetBasePath ?? '');
|
|
|
31
31
|
const footerMarkdown = data.footerMarkdown ?? null;
|
|
32
32
|
const tocConfig = data.tocConfig ?? {};
|
|
33
33
|
const markdownConfig = data.markdownConfig ?? {};
|
|
34
|
+
const mermaidConfig = data.mermaidConfig ?? { enabled: true, src: 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js' };
|
|
35
|
+
let mermaidLoadPromise = null;
|
|
34
36
|
const docsRepoConfig = (data.docsRepoConfig ?? null);
|
|
35
37
|
const breadcrumbsConfig = (data.breadcrumbsConfig && typeof data.breadcrumbsConfig === 'object')
|
|
36
38
|
? data.breadcrumbsConfig
|
|
@@ -1490,15 +1492,52 @@ function scrollToActiveHeading() {
|
|
|
1490
1492
|
function scrollToEndpoint(id) {
|
|
1491
1493
|
byId(id)?.scrollIntoView?.({ behavior: 'smooth', block: 'start' });
|
|
1492
1494
|
}
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
+
/**
|
|
1496
|
+
* Lazy-load the Mermaid renderer the first time a page with diagrams is
|
|
1497
|
+
* visited. Cached: subsequent route transitions inside the SPA reuse the
|
|
1498
|
+
* same `<script>` injection. Pages without `.mermaid` blocks never trigger
|
|
1499
|
+
* the network request, so the ~3MB library stays off the critical path
|
|
1500
|
+
* for the 95% of docs pages that have no diagrams.
|
|
1501
|
+
*/
|
|
1502
|
+
function loadMermaidLibrary(src) {
|
|
1503
|
+
if (win.mermaid)
|
|
1504
|
+
return Promise.resolve(win.mermaid);
|
|
1505
|
+
if (mermaidLoadPromise)
|
|
1506
|
+
return mermaidLoadPromise;
|
|
1507
|
+
mermaidLoadPromise = new Promise((resolve, reject) => {
|
|
1508
|
+
const script = doc.createElement('script');
|
|
1509
|
+
script.src = src;
|
|
1510
|
+
script.defer = true;
|
|
1511
|
+
script.onload = () => resolve(win.mermaid);
|
|
1512
|
+
script.onerror = () => {
|
|
1513
|
+
mermaidLoadPromise = null;
|
|
1514
|
+
reject(new Error(`Failed to load Mermaid from ${src}`));
|
|
1515
|
+
};
|
|
1516
|
+
doc.head?.appendChild(script);
|
|
1517
|
+
});
|
|
1518
|
+
return mermaidLoadPromise;
|
|
1519
|
+
}
|
|
1520
|
+
async function renderMermaidDiagrams(root = doc) {
|
|
1495
1521
|
const diagrams = Array.from(root?.querySelectorAll?.('.mermaid:not([data-mermaid-rendered])') ?? []);
|
|
1496
1522
|
if (diagrams.length === 0)
|
|
1497
1523
|
return;
|
|
1498
|
-
if (
|
|
1524
|
+
if (mermaidConfig.enabled === false) {
|
|
1499
1525
|
diagrams.forEach(diagram => diagram.classList.add('mermaid-fallback'));
|
|
1500
1526
|
return;
|
|
1501
1527
|
}
|
|
1528
|
+
let mermaid = win.mermaid;
|
|
1529
|
+
if (!mermaid) {
|
|
1530
|
+
try {
|
|
1531
|
+
mermaid = await loadMermaidLibrary(mermaidConfig.src);
|
|
1532
|
+
}
|
|
1533
|
+
catch (error) {
|
|
1534
|
+
diagrams.forEach(diagram => {
|
|
1535
|
+
diagram.classList.add('mermaid-fallback', 'mermaid-error');
|
|
1536
|
+
diagram.setAttribute('title', error instanceof Error ? error.message : 'Unable to load Mermaid');
|
|
1537
|
+
});
|
|
1538
|
+
return;
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1502
1541
|
mermaid.initialize?.({ startOnLoad: false, securityLevel: 'strict' });
|
|
1503
1542
|
diagrams.forEach((diagram, index) => {
|
|
1504
1543
|
const source = diagram.getAttribute('data-mermaid-source') || diagram.textContent || '';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/**
|
|
9
9
|
* Generate the per-document data bootstrap.
|
|
10
10
|
*/
|
|
11
|
-
export declare function generateClientDataScript(escapedSpec: string, escapedTagGroups: string, escapedHero: string, escapedSidebar: string, escapedIntroduction: string, escapedDocsPages: string, escapedDocsAliases: string, escapedSearchIndex: string, escapedDocsSidebar: string, escapedDocsAssetBasePath: string, escapedFooter: string, escapedToc: string, escapedMarkdown: string, escapedDocsRepo?: string, escapedBreadcrumbs?: string, escapedPageNav?: string): string;
|
|
11
|
+
export declare function generateClientDataScript(escapedSpec: string, escapedTagGroups: string, escapedHero: string, escapedSidebar: string, escapedIntroduction: string, escapedDocsPages: string, escapedDocsAliases: string, escapedSearchIndex: string, escapedDocsSidebar: string, escapedDocsAssetBasePath: string, escapedFooter: string, escapedToc: string, escapedMarkdown: string, escapedDocsRepo?: string, escapedBreadcrumbs?: string, escapedPageNav?: string, escapedMermaid?: string): string;
|
|
12
12
|
/**
|
|
13
13
|
* Generate the reusable client-side runtime.
|
|
14
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,eAAe,GAAE,MAAe,EAChC,kBAAkB,GAAE,MAA6C,EACjE,cAAc,GAAE,MAAqC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,eAAe,GAAE,MAAe,EAChC,kBAAkB,GAAE,MAA6C,EACjE,cAAc,GAAE,MAAqC,EACrD,cAAc,GAAE,MAA+F,GAC9G,MAAM,CAsBR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAIpD;AAED,wBAAgB,sCAAsC,IAAI,MAAM,CAK/D;AAwKD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,eAAe,GAAE,MAAe,EAChC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,GAAE,MAAqC,GACpD,MAAM,CAoBR"}
|
|
@@ -24,7 +24,7 @@ let cachedSharedRuntimeScript = null;
|
|
|
24
24
|
/**
|
|
25
25
|
* Generate the per-document data bootstrap.
|
|
26
26
|
*/
|
|
27
|
-
export function generateClientDataScript(escapedSpec, escapedTagGroups, escapedHero, escapedSidebar, escapedIntroduction, escapedDocsPages, escapedDocsAliases, escapedSearchIndex, escapedDocsSidebar, escapedDocsAssetBasePath, escapedFooter, escapedToc, escapedMarkdown, escapedDocsRepo = 'null', escapedBreadcrumbs = '{"enabled":true,"hideOnHome":true}', escapedPageNav = '{"enabled":true,"hide":[]}') {
|
|
27
|
+
export function generateClientDataScript(escapedSpec, escapedTagGroups, escapedHero, escapedSidebar, escapedIntroduction, escapedDocsPages, escapedDocsAliases, escapedSearchIndex, escapedDocsSidebar, escapedDocsAssetBasePath, escapedFooter, escapedToc, escapedMarkdown, escapedDocsRepo = 'null', escapedBreadcrumbs = '{"enabled":true,"hideOnHome":true}', escapedPageNav = '{"enabled":true,"hide":[]}', escapedMermaid = '{"enabled":true,"src":"https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"}') {
|
|
28
28
|
return `
|
|
29
29
|
window.__RAFFEL_DOCS__ = {
|
|
30
30
|
spec: ${escapedSpec},
|
|
@@ -42,7 +42,8 @@ export function generateClientDataScript(escapedSpec, escapedTagGroups, escapedH
|
|
|
42
42
|
markdownConfig: ${escapedMarkdown},
|
|
43
43
|
docsRepoConfig: ${escapedDocsRepo},
|
|
44
44
|
breadcrumbsConfig: ${escapedBreadcrumbs},
|
|
45
|
-
pageNavConfig: ${escapedPageNav}
|
|
45
|
+
pageNavConfig: ${escapedPageNav},
|
|
46
|
+
mermaidConfig: ${escapedMermaid}
|
|
46
47
|
};
|
|
47
48
|
`;
|
|
48
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,IAAI,yBAAyB,GAAkB,IAAI,CAAA;AAEnD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,gBAAwB,EACxB,WAAmB,EACnB,cAAsB,EACtB,mBAA2B,EAC3B,gBAAwB,EACxB,kBAA0B,EAC1B,kBAA0B,EAC1B,kBAA0B,EAC1B,wBAAgC,EAChC,aAAqB,EACrB,UAAkB,EAClB,eAAuB,EACvB,kBAA0B,MAAM,EAChC,qBAA6B,oCAAoC,EACjE,iBAAyB,4BAA4B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-builder.d.ts","sourceRoot":"","sources":["../../../src/docs/ui/html-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAA6C,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAoB/F;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"html-builder.d.ts","sourceRoot":"","sources":["../../../src/docs/ui/html-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAA6C,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAoB/F;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA4JlE;AAmCD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAYjE"}
|
|
@@ -70,6 +70,7 @@ export function generateUIHTML(options) {
|
|
|
70
70
|
const escapedDocsRepo = escapeJsonForScript(ui?.docsRepo ?? null);
|
|
71
71
|
const escapedBreadcrumbs = escapeJsonForScript(breadcrumbs);
|
|
72
72
|
const escapedPageNav = escapeJsonForScript(pageNav);
|
|
73
|
+
const escapedMermaid = escapeJsonForScript(normalizeMermaidConfig(ui?.mermaid));
|
|
73
74
|
// Generate hero background CSS
|
|
74
75
|
const heroBackgroundCSS = generateHeroBackgroundCSS(primaryColor, hero?.background, hero?.backgroundImage);
|
|
75
76
|
// Generate CSS
|
|
@@ -82,7 +83,7 @@ ${styles}
|
|
|
82
83
|
const customCssHtml = normalizeCustomCss(ui?.customCss)
|
|
83
84
|
.map(href => `<link rel="stylesheet" href="${escapeHtml(href)}" data-raffel-custom-css>`)
|
|
84
85
|
.join('\n ');
|
|
85
|
-
const dataScript = generateClientDataScript(escapedSpec, escapedTagGroups, escapedHero, escapedSidebar, escapedIntroduction, escapedDocsPages, escapedDocsAliases, escapedSearchIndex, escapedDocsSidebar, escapedDocsAssetBasePath, escapedFooter, escapedToc, escapedMarkdown, escapedDocsRepo, escapedBreadcrumbs, escapedPageNav);
|
|
86
|
+
const dataScript = generateClientDataScript(escapedSpec, escapedTagGroups, escapedHero, escapedSidebar, escapedIntroduction, escapedDocsPages, escapedDocsAliases, escapedSearchIndex, escapedDocsSidebar, escapedDocsAssetBasePath, escapedFooter, escapedToc, escapedMarkdown, escapedDocsRepo, escapedBreadcrumbs, escapedPageNav, escapedMermaid);
|
|
86
87
|
const runtimeScript = assetMode === 'external'
|
|
87
88
|
? `<script>
|
|
88
89
|
// Defensive asset probe: if a sibling JS asset returns HTML, the wildcard
|
|
@@ -192,4 +193,23 @@ export function generateUICSS(options) {
|
|
|
192
193
|
const heroBackgroundCSS = generateHeroBackgroundCSS(primaryColor, hero?.background, hero?.backgroundImage);
|
|
193
194
|
return generateStyles({ primaryColor, heroBackgroundCSS });
|
|
194
195
|
}
|
|
196
|
+
const DEFAULT_MERMAID_CDN_SRC = 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js';
|
|
197
|
+
/**
|
|
198
|
+
* Normalize the `ui.mermaid` option into a concrete `{ enabled, src }` shape
|
|
199
|
+
* the runtime can read off `window.__RAFFEL_DOCS__.mermaidConfig`.
|
|
200
|
+
*
|
|
201
|
+
* undefined / true → enabled with the default CDN source.
|
|
202
|
+
* false → disabled. The runtime will leave `.mermaid` blocks
|
|
203
|
+
* in their fallback state without attempting to load
|
|
204
|
+
* the library.
|
|
205
|
+
* { src } → enabled with a pinned/self-hosted script URL.
|
|
206
|
+
*/
|
|
207
|
+
function normalizeMermaidConfig(option) {
|
|
208
|
+
if (option === false)
|
|
209
|
+
return { enabled: false, src: '' };
|
|
210
|
+
if (option && typeof option === 'object' && 'src' in option && typeof option.src === 'string') {
|
|
211
|
+
return { enabled: true, src: option.src };
|
|
212
|
+
}
|
|
213
|
+
return { enabled: true, src: DEFAULT_MERMAID_CDN_SRC };
|
|
214
|
+
}
|
|
195
215
|
//# sourceMappingURL=html-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-builder.js","sourceRoot":"","sources":["../../../src/docs/ui/html-builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"html-builder.js","sourceRoot":"","sources":["../../../src/docs/ui/html-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,8 @@ const docsAssetBasePath = String(data.docsAssetBasePath ?? '');
|
|
|
31
31
|
const footerMarkdown = data.footerMarkdown ?? null;
|
|
32
32
|
const tocConfig = data.tocConfig ?? {};
|
|
33
33
|
const markdownConfig = data.markdownConfig ?? {};
|
|
34
|
+
const mermaidConfig = data.mermaidConfig ?? { enabled: true, src: 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js' };
|
|
35
|
+
let mermaidLoadPromise = null;
|
|
34
36
|
const docsRepoConfig = (data.docsRepoConfig ?? null);
|
|
35
37
|
const breadcrumbsConfig = (data.breadcrumbsConfig && typeof data.breadcrumbsConfig === 'object')
|
|
36
38
|
? data.breadcrumbsConfig
|
|
@@ -1490,15 +1492,52 @@ function scrollToActiveHeading() {
|
|
|
1490
1492
|
function scrollToEndpoint(id) {
|
|
1491
1493
|
byId(id)?.scrollIntoView?.({ behavior: 'smooth', block: 'start' });
|
|
1492
1494
|
}
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
+
/**
|
|
1496
|
+
* Lazy-load the Mermaid renderer the first time a page with diagrams is
|
|
1497
|
+
* visited. Cached: subsequent route transitions inside the SPA reuse the
|
|
1498
|
+
* same `<script>` injection. Pages without `.mermaid` blocks never trigger
|
|
1499
|
+
* the network request, so the ~3MB library stays off the critical path
|
|
1500
|
+
* for the 95% of docs pages that have no diagrams.
|
|
1501
|
+
*/
|
|
1502
|
+
function loadMermaidLibrary(src) {
|
|
1503
|
+
if (win.mermaid)
|
|
1504
|
+
return Promise.resolve(win.mermaid);
|
|
1505
|
+
if (mermaidLoadPromise)
|
|
1506
|
+
return mermaidLoadPromise;
|
|
1507
|
+
mermaidLoadPromise = new Promise((resolve, reject) => {
|
|
1508
|
+
const script = doc.createElement('script');
|
|
1509
|
+
script.src = src;
|
|
1510
|
+
script.defer = true;
|
|
1511
|
+
script.onload = () => resolve(win.mermaid);
|
|
1512
|
+
script.onerror = () => {
|
|
1513
|
+
mermaidLoadPromise = null;
|
|
1514
|
+
reject(new Error(`Failed to load Mermaid from ${src}`));
|
|
1515
|
+
};
|
|
1516
|
+
doc.head?.appendChild(script);
|
|
1517
|
+
});
|
|
1518
|
+
return mermaidLoadPromise;
|
|
1519
|
+
}
|
|
1520
|
+
async function renderMermaidDiagrams(root = doc) {
|
|
1495
1521
|
const diagrams = Array.from(root?.querySelectorAll?.('.mermaid:not([data-mermaid-rendered])') ?? []);
|
|
1496
1522
|
if (diagrams.length === 0)
|
|
1497
1523
|
return;
|
|
1498
|
-
if (
|
|
1524
|
+
if (mermaidConfig.enabled === false) {
|
|
1499
1525
|
diagrams.forEach(diagram => diagram.classList.add('mermaid-fallback'));
|
|
1500
1526
|
return;
|
|
1501
1527
|
}
|
|
1528
|
+
let mermaid = win.mermaid;
|
|
1529
|
+
if (!mermaid) {
|
|
1530
|
+
try {
|
|
1531
|
+
mermaid = await loadMermaidLibrary(mermaidConfig.src);
|
|
1532
|
+
}
|
|
1533
|
+
catch (error) {
|
|
1534
|
+
diagrams.forEach(diagram => {
|
|
1535
|
+
diagram.classList.add('mermaid-fallback', 'mermaid-error');
|
|
1536
|
+
diagram.setAttribute('title', error instanceof Error ? error.message : 'Unable to load Mermaid');
|
|
1537
|
+
});
|
|
1538
|
+
return;
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1502
1541
|
mermaid.initialize?.({ startOnLoad: false, securityLevel: 'strict' });
|
|
1503
1542
|
diagrams.forEach((diagram, index) => {
|
|
1504
1543
|
const source = diagram.getAttribute('data-mermaid-source') || diagram.textContent || '';
|