sourcey 2.1.0 → 3.0.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.
Files changed (133) hide show
  1. package/README.md +128 -210
  2. package/dist/cli.js +18 -57
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/scroll-tracker.js +125 -40
  5. package/dist/client/search.js +27 -3
  6. package/dist/client/tabs.js +164 -24
  7. package/dist/components/App.d.ts +3 -2
  8. package/dist/components/App.d.ts.map +1 -1
  9. package/dist/components/App.js +3 -3
  10. package/dist/components/App.js.map +1 -1
  11. package/dist/components/layout/Head.d.ts.map +1 -1
  12. package/dist/components/layout/Head.js +30 -9
  13. package/dist/components/layout/Head.js.map +1 -1
  14. package/dist/components/layout/Header.d.ts +2 -7
  15. package/dist/components/layout/Header.d.ts.map +1 -1
  16. package/dist/components/layout/Header.js +12 -15
  17. package/dist/components/layout/Header.js.map +1 -1
  18. package/dist/components/layout/Page.d.ts.map +1 -1
  19. package/dist/components/layout/Page.js +54 -10
  20. package/dist/components/layout/Page.js.map +1 -1
  21. package/dist/components/layout/Sidebar.js +1 -1
  22. package/dist/components/layout/Sidebar.js.map +1 -1
  23. package/dist/components/layout/TableOfContents.d.ts.map +1 -1
  24. package/dist/components/layout/TableOfContents.js +1 -1
  25. package/dist/components/layout/TableOfContents.js.map +1 -1
  26. package/dist/components/openapi/CodeSamples.d.ts +4 -2
  27. package/dist/components/openapi/CodeSamples.d.ts.map +1 -1
  28. package/dist/components/openapi/CodeSamples.js +9 -5
  29. package/dist/components/openapi/CodeSamples.js.map +1 -1
  30. package/dist/components/openapi/Definition.js +1 -1
  31. package/dist/components/openapi/Definition.js.map +1 -1
  32. package/dist/components/openapi/EndpointBar.d.ts.map +1 -1
  33. package/dist/components/openapi/EndpointBar.js +3 -3
  34. package/dist/components/openapi/EndpointBar.js.map +1 -1
  35. package/dist/components/openapi/Introduction.d.ts.map +1 -1
  36. package/dist/components/openapi/Introduction.js +1 -1
  37. package/dist/components/openapi/Introduction.js.map +1 -1
  38. package/dist/components/openapi/Operation.d.ts.map +1 -1
  39. package/dist/components/openapi/Operation.js +5 -1
  40. package/dist/components/openapi/Operation.js.map +1 -1
  41. package/dist/components/openapi/Responses.d.ts +2 -1
  42. package/dist/components/openapi/Responses.d.ts.map +1 -1
  43. package/dist/components/openapi/Responses.js +17 -6
  44. package/dist/components/openapi/Responses.js.map +1 -1
  45. package/dist/components/openapi/Security.d.ts.map +1 -1
  46. package/dist/components/openapi/Security.js +3 -2
  47. package/dist/components/openapi/Security.js.map +1 -1
  48. package/dist/components/openapi/Tags.d.ts.map +1 -1
  49. package/dist/components/openapi/Tags.js +1 -1
  50. package/dist/components/openapi/Tags.js.map +1 -1
  51. package/dist/components/schema/ExampleView.d.ts +1 -1
  52. package/dist/components/schema/ExampleView.d.ts.map +1 -1
  53. package/dist/components/schema/ExampleView.js +3 -2
  54. package/dist/components/schema/ExampleView.js.map +1 -1
  55. package/dist/components/ui/CopyButton.d.ts +6 -0
  56. package/dist/components/ui/CopyButton.d.ts.map +1 -0
  57. package/dist/components/ui/CopyButton.js +10 -0
  58. package/dist/components/ui/CopyButton.js.map +1 -0
  59. package/dist/components/ui/Markdown.js +1 -1
  60. package/dist/components/ui/Markdown.js.map +1 -1
  61. package/dist/components/ui/SocialIcon.d.ts +5 -0
  62. package/dist/components/ui/SocialIcon.d.ts.map +1 -0
  63. package/dist/components/ui/SocialIcon.js +19 -0
  64. package/dist/components/ui/SocialIcon.js.map +1 -0
  65. package/dist/config.d.ts +133 -37
  66. package/dist/config.d.ts.map +1 -1
  67. package/dist/config.js +227 -73
  68. package/dist/config.js.map +1 -1
  69. package/dist/core/doxygen-loader.d.ts +9 -0
  70. package/dist/core/doxygen-loader.d.ts.map +1 -0
  71. package/dist/core/doxygen-loader.js +68 -0
  72. package/dist/core/doxygen-loader.js.map +1 -0
  73. package/dist/core/markdown-loader.d.ts +2 -5
  74. package/dist/core/markdown-loader.d.ts.map +1 -1
  75. package/dist/core/markdown-loader.js +218 -27
  76. package/dist/core/markdown-loader.js.map +1 -1
  77. package/dist/core/navigation.d.ts +2 -2
  78. package/dist/core/navigation.d.ts.map +1 -1
  79. package/dist/core/navigation.js +9 -10
  80. package/dist/core/navigation.js.map +1 -1
  81. package/dist/core/search-indexer.d.ts +1 -1
  82. package/dist/core/search-indexer.d.ts.map +1 -1
  83. package/dist/core/search-indexer.js +6 -5
  84. package/dist/core/search-indexer.js.map +1 -1
  85. package/dist/dev-server.d.ts +0 -12
  86. package/dist/dev-server.d.ts.map +1 -1
  87. package/dist/dev-server.js +101 -79
  88. package/dist/dev-server.js.map +1 -1
  89. package/dist/index.d.ts +2 -30
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +82 -70
  92. package/dist/index.js.map +1 -1
  93. package/dist/renderer/context.d.ts +29 -2
  94. package/dist/renderer/context.d.ts.map +1 -1
  95. package/dist/renderer/context.js +1 -1
  96. package/dist/renderer/context.js.map +1 -1
  97. package/dist/renderer/html-builder.d.ts +3 -16
  98. package/dist/renderer/html-builder.d.ts.map +1 -1
  99. package/dist/renderer/html-builder.js +6 -20
  100. package/dist/renderer/html-builder.js.map +1 -1
  101. package/dist/renderer/static-renderer.d.ts +2 -2
  102. package/dist/renderer/static-renderer.d.ts.map +1 -1
  103. package/dist/renderer/static-renderer.js +2 -2
  104. package/dist/renderer/static-renderer.js.map +1 -1
  105. package/dist/themes/default/main.css +13 -1
  106. package/dist/themes/default/sourcey.css +629 -41
  107. package/dist/utils/code-samples.d.ts +8 -3
  108. package/dist/utils/code-samples.d.ts.map +1 -1
  109. package/dist/utils/code-samples.js +188 -51
  110. package/dist/utils/code-samples.js.map +1 -1
  111. package/dist/utils/copy-svg.d.ts +9 -0
  112. package/dist/utils/copy-svg.d.ts.map +1 -0
  113. package/dist/utils/copy-svg.js +9 -0
  114. package/dist/utils/copy-svg.js.map +1 -0
  115. package/dist/utils/highlighter.d.ts.map +1 -1
  116. package/dist/utils/highlighter.js +18 -7
  117. package/dist/utils/highlighter.js.map +1 -1
  118. package/dist/utils/icons.d.ts +14 -0
  119. package/dist/utils/icons.d.ts.map +1 -0
  120. package/dist/utils/icons.js +59 -0
  121. package/dist/utils/icons.js.map +1 -0
  122. package/dist/utils/lang-icons.d.ts +17 -0
  123. package/dist/utils/lang-icons.d.ts.map +1 -0
  124. package/dist/utils/lang-icons.js +87 -0
  125. package/dist/utils/lang-icons.js.map +1 -0
  126. package/dist/utils/markdown.d.ts +17 -1
  127. package/dist/utils/markdown.d.ts.map +1 -1
  128. package/dist/utils/markdown.js +59 -2
  129. package/dist/utils/markdown.js.map +1 -1
  130. package/dist/vite-plugin.d.ts.map +1 -1
  131. package/dist/vite-plugin.js +4 -7
  132. package/dist/vite-plugin.js.map +1 -1
  133. package/package.json +5 -4
@@ -1,9 +1,9 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import { basename, extname } from "node:path";
2
+ import { basename, extname, relative } from "node:path";
3
3
  import { load as parseYaml } from "js-yaml";
4
- import { Marked } from "marked";
5
- import { highlightCode } from "../utils/highlighter.js";
6
4
  import { htmlId } from "../utils/html-id.js";
5
+ import { renderIcon } from "../utils/icons.js";
6
+ import { renderMarkdown, extractHeadings } from "../utils/markdown.js";
7
7
  // ---------------------------------------------------------------------------
8
8
  // Frontmatter parsing
9
9
  // ---------------------------------------------------------------------------
@@ -17,27 +17,210 @@ function parseFrontmatter(raw) {
17
17
  return { meta, body: match[2] };
18
18
  }
19
19
  // ---------------------------------------------------------------------------
20
- // Marked instance with Shiki highlighting and heading extraction
20
+ // Component preprocessor: transforms MDX-style JSX components into HTML
21
21
  // ---------------------------------------------------------------------------
22
- function createProseMarked(headings) {
23
- const marked = new Marked();
24
- marked.use({
25
- renderer: {
26
- code({ text, lang }) {
27
- const language = lang?.split(/\s/)[0] ?? "";
28
- return highlightCode(text, language);
29
- },
30
- heading({ tokens, depth }) {
31
- const text = tokens.map(t => ("text" in t ? t.text : t.raw)).join("");
32
- const id = htmlId(text);
33
- if (depth === 2 || depth === 3) {
34
- headings.push({ level: depth, text, id });
35
- }
36
- return `<h${depth} id="${id}">${this.parser.parseInline(tokens)}</h${depth}>\n`;
37
- },
38
- },
22
+ /**
23
+ * Convert JSX-style components to directive syntax so they go through
24
+ * a single rendering path in preprocessDirectives.
25
+ */
26
+ function preprocessComponents(body) {
27
+ let html = body;
28
+ // <Steps> <Step title="...">content</Step> ... </Steps> → :::steps numbered list
29
+ html = html.replace(/<Steps>\s*([\s\S]*?)\s*<\/Steps>/g, (_m, inner) => {
30
+ const steps = [];
31
+ inner.replace(/\s*<Step\s+title="([^"]*)">\s*([\s\S]*?)\s*<\/Step>/g, (_sm, title, content) => {
32
+ steps.push({ title, content: content.trim() });
33
+ return "";
34
+ });
35
+ const list = steps
36
+ .map((s, i) => `${i + 1}. ${s.title}\n ${s.content}`)
37
+ .join("\n");
38
+ return `:::steps\n${list}\n:::`;
39
+ });
40
+ // <CardGroup cols={N}> <Card ...> ... </Card> ... </CardGroup> → :::card-group
41
+ html = html.replace(/<CardGroup\s+cols=\{(\d+)\}>\s*([\s\S]*?)\s*<\/CardGroup>/g, (_m, cols, inner) => {
42
+ const cards = inner.replace(/\s*<Card\s+title="([^"]*)"\s+icon="([^"]*)"(?:\s+href="([^"]*)")?\s*>\s*([\s\S]*?)\s*<\/Card>/g, (_cm, title, icon, href, content) => {
43
+ const hrefAttr = href ? ` href="${href}"` : "";
44
+ return `\n::card{title="${title}" icon="${icon}"${hrefAttr}}\n${content.trim()}\n::`;
45
+ }).trim();
46
+ return `:::card-group{cols="${cols}"}\n${cards}\n:::`;
47
+ });
48
+ // <AccordionGroup> <Accordion ...> ... </AccordionGroup> → wrap in accordion-group
49
+ html = html.replace(/<AccordionGroup>\s*([\s\S]*?)\s*<\/AccordionGroup>/g, (_m, inner) => {
50
+ const items = inner.replace(/\s*<Accordion\s+title="([^"]*)">\s*([\s\S]*?)\s*<\/Accordion>/g, (_am, title, content) => {
51
+ return `\n:::accordion{title="${title}"}\n${content.trim()}\n:::`;
52
+ }).trim();
53
+ return `<div class="accordion-group not-prose">\n${items}\n</div>`;
54
+ });
55
+ // Standalone <Accordion> outside of group
56
+ html = html.replace(/<Accordion\s+title="([^"]*)">\s*([\s\S]*?)\s*<\/Accordion>/g, (_m, title, content) => {
57
+ return `:::accordion{title="${title}"}\n${content.trim()}\n:::`;
58
+ });
59
+ return html;
60
+ }
61
+ // ---------------------------------------------------------------------------
62
+ // Directive preprocessor: transforms :::directive blocks into HTML
63
+ // ---------------------------------------------------------------------------
64
+ /** Parse {key="value" key2="value2"} attribute strings. */
65
+ function parseAttrs(raw) {
66
+ const attrs = {};
67
+ if (!raw)
68
+ return attrs;
69
+ for (const m of raw.matchAll(/(\w+)="([^"]*)"/g)) {
70
+ attrs[m[1]] = m[2];
71
+ }
72
+ return attrs;
73
+ }
74
+ /** Deterministic tab-group ID; reset per page. */
75
+ let directiveCounter = 0;
76
+ function nextId(prefix) {
77
+ return `${prefix}-${++directiveCounter}`;
78
+ }
79
+ /** Reset counter between builds (called from loadMarkdownPage). */
80
+ function resetDirectiveCounter() {
81
+ directiveCounter = 0;
82
+ }
83
+ /** Build tabbed UI HTML (shared by :::tabs and :::code-group). */
84
+ function buildTabbedHtml(tabs, id, extraClass) {
85
+ const cls = extraClass
86
+ ? `directive-tabs ${extraClass} not-prose`
87
+ : "directive-tabs not-prose";
88
+ const buttons = tabs
89
+ .map((t, i) => `<button class="directive-tab${i === 0 ? " active" : ""}" data-tab-group="${id}" data-tab-index="${i}">${t.title}</button>`)
90
+ .join("\n");
91
+ const panels = tabs
92
+ .map((t, i) => `<div class="directive-tab-panel${i === 0 ? " active" : ""}" data-tab-group="${id}" data-tab-index="${i}">
93
+
94
+ ${t.body}
95
+
96
+ </div>`)
97
+ .join("\n");
98
+ return `<div class="${cls}">
99
+ <div class="directive-tab-bar">${buttons}</div>
100
+ ${panels}
101
+ </div>`;
102
+ }
103
+ /**
104
+ * Split content on `::child` markers, returning { attrs, body } for each.
105
+ * Leading content before the first marker is discarded.
106
+ */
107
+ function splitChildren(content, marker) {
108
+ const children = [];
109
+ const parts = content.split(new RegExp(`^\\s*::${marker}`, "gm"));
110
+ for (const part of parts) {
111
+ if (!part.trim())
112
+ continue;
113
+ const m = part.match(/^\{([^}]*)\}\s*\n?([\s\S]*)/);
114
+ if (m) {
115
+ // Strip trailing :: child-close marker
116
+ const body = m[2].trim().replace(/\n?::$/m, "").trim();
117
+ children.push({ attrs: parseAttrs(m[1]), body });
118
+ }
119
+ }
120
+ return children;
121
+ }
122
+ /**
123
+ * Process :::directive blocks. Handles callouts, steps, tabs,
124
+ * code-group, card-group, and accordion.
125
+ *
126
+ * Matching strategy: process one block type at a time. Each regex
127
+ * matches a specific `:::type` opener so closing `:::` markers
128
+ * from other directive types cannot collide.
129
+ */
130
+ function preprocessDirectives(body) {
131
+ let html = body;
132
+ // Callouts: :::note, :::warning, :::tip, :::info (optional title)
133
+ html = html.replace(/^:::(note|warning|tip|info)(?:[^\S\n]+(.+))?\s*\n([\s\S]*?)^:::\s*$/gm, (_m, type, title, content) => {
134
+ const label = title?.trim() || type.charAt(0).toUpperCase() + type.slice(1);
135
+ const body = content.trim();
136
+ return `\n\n<div class="callout callout-${type} not-prose">
137
+ <div class="callout-title">${label}</div>
138
+ ${body ? `<div class="callout-content">\n\n${body}\n\n</div>` : ""}
139
+ </div>\n\n`;
140
+ });
141
+ // Steps: :::steps with a plain numbered list inside
142
+ html = html.replace(/^:::steps\s*\n([\s\S]*?)^:::\s*$/gm, (_m, content) => {
143
+ const lines = content.trim().split("\n");
144
+ const steps = [];
145
+ for (const line of lines) {
146
+ const sm = line.match(/^\d+\.\s+(.+)/);
147
+ if (sm) {
148
+ steps.push({ title: sm[1], body: [] });
149
+ }
150
+ else if (steps.length > 0) {
151
+ // Strip up to 3 leading spaces (markdown list indent)
152
+ steps[steps.length - 1].body.push(line.replace(/^ {1,3}/, ""));
153
+ }
154
+ }
155
+ const items = steps
156
+ .map((s, i) => `<div role="listitem" class="step-item">
157
+ <div class="step-number">${i + 1}</div>
158
+ <div class="step-body">
159
+ <p class="step-title">${s.title}</p>
160
+ <div class="step-content">
161
+
162
+ ${s.body.join("\n").trim()}
163
+
164
+ </div>
165
+ </div>
166
+ </div>`)
167
+ .join("\n");
168
+ return `\n\n<div role="list" class="steps not-prose">\n${items}\n</div>\n\n`;
39
169
  });
40
- return marked;
170
+ // Tabs: :::tabs with ::tab{title="..."} children
171
+ html = html.replace(/^:::tabs\s*\n([\s\S]*?)^:::\s*$/gm, (_m, content) => {
172
+ const tabs = splitChildren(content, "tab").map((c) => ({
173
+ title: c.attrs.title || "",
174
+ body: c.body,
175
+ }));
176
+ return `\n\n${buildTabbedHtml(tabs, nextId("tabs"))}\n\n`;
177
+ });
178
+ // Code Group: :::code-group with titled fenced code blocks
179
+ html = html.replace(/^:::code-group\s*\n([\s\S]*?)^:::\s*$/gm, (_m, content) => {
180
+ const blocks = [];
181
+ const re = /```(\w+)\s+title="([^"]*)"\s*\n([\s\S]*?)```/g;
182
+ let match;
183
+ while ((match = re.exec(content)) !== null) {
184
+ blocks.push({ title: match[2], body: `\`\`\`${match[1]}\n${match[3]}\`\`\`` });
185
+ }
186
+ if (blocks.length === 0)
187
+ return content;
188
+ return `\n\n${buildTabbedHtml(blocks, nextId("cg"), "directive-code-group")}\n\n`;
189
+ });
190
+ // Card Group: :::card-group{cols="N"} with ::card children
191
+ html = html.replace(/^:::card-group(?:\{([^}]*)\})?\s*\n([\s\S]*?)^:::\s*$/gm, (_m, attrsRaw, content) => {
192
+ const cols = parseAttrs(attrsRaw || "").cols || "2";
193
+ const cards = splitChildren(content, "card").map((c) => {
194
+ const tag = c.attrs.href ? "a" : "div";
195
+ const href = c.attrs.href ? ` href="${c.attrs.href}"` : "";
196
+ const iconHtml = renderIcon(c.attrs.icon || "");
197
+ return `<${tag}${href} class="card-item">
198
+ <div class="card-item-inner">
199
+ ${iconHtml}
200
+ <h3 class="card-item-title">${c.attrs.title || ""}</h3>
201
+ <div class="card-item-content">
202
+
203
+ ${c.body}
204
+
205
+ </div>
206
+ </div>
207
+ </${tag}>`;
208
+ });
209
+ return `\n\n<div class="card-group not-prose" data-cols="${cols}">\n${cards.join("\n")}\n</div>\n\n`;
210
+ });
211
+ // Accordion: :::accordion{title="..."}
212
+ html = html.replace(/^:::accordion(?:\{([^}]*)\})?\s*\n([\s\S]*?)^:::\s*$/gm, (_m, attrsRaw, content) => {
213
+ const title = parseAttrs(attrsRaw || "").title || "";
214
+ return `\n\n<details class="accordion-item">
215
+ <summary class="accordion-trigger">${title}</summary>
216
+ <div class="accordion-content">
217
+
218
+ ${content.trim()}
219
+
220
+ </div>
221
+ </details>\n\n`;
222
+ });
223
+ return html;
41
224
  }
42
225
  // ---------------------------------------------------------------------------
43
226
  // Public API
@@ -48,12 +231,20 @@ function createProseMarked(headings) {
48
231
  export async function loadMarkdownPage(filePath, slug) {
49
232
  const raw = await readFile(filePath, "utf-8");
50
233
  const { meta, body } = parseFrontmatter(raw);
51
- const headings = [];
52
- const marked = createProseMarked(headings);
53
- const html = marked.parse(body, { async: false });
54
- const title = meta.title ?? slug;
234
+ resetDirectiveCounter();
235
+ const preprocessed = preprocessDirectives(preprocessComponents(body));
236
+ const headings = extractHeadings(preprocessed);
237
+ const html = renderMarkdown(preprocessed);
238
+ const title = meta.title ?? extractFirstHeading(preprocessed) ?? slug;
55
239
  const description = meta.description ?? "";
56
- return { title, description, slug, html, headings, sourcePath: filePath };
240
+ return { title, description, slug, html, headings, sourcePath: relative(process.cwd(), filePath) };
241
+ }
242
+ /**
243
+ * Extract the first # heading from markdown as a fallback title.
244
+ */
245
+ function extractFirstHeading(md) {
246
+ const match = md.match(/^#\s+(.+)$/m);
247
+ return match ? match[1].trim() : undefined;
57
248
  }
58
249
  /**
59
250
  * Derive a URL slug from a file path.
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-loader.js","sourceRoot":"","sources":["../../src/core/markdown-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-loader.js","sourceRoot":"","sources":["../../src/core/markdown-loader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { NormalizedSpec } from "./types.js";
2
- import type { NavigationTab } from "../config.js";
2
+ import type { ResolvedTab } from "../config.js";
3
3
  import type { MarkdownPage } from "./markdown-loader.js";
4
4
  export interface SiteNavigation {
5
5
  tabs: SiteTab[];
@@ -38,7 +38,7 @@ export declare function buildNavFromSpec(spec: NormalizedSpec, tabSlug: string):
38
38
  * Build a navigation tab from markdown pages.
39
39
  * Groups come from the config; items come from loaded page data.
40
40
  */
41
- export declare function buildNavFromPages(tabConfig: NavigationTab, pagesByPath: Map<string, MarkdownPage>): SiteTab;
41
+ export declare function buildNavFromPages(tab: ResolvedTab, pagesByPath: Map<string, MarkdownPage>): SiteTab;
42
42
  /**
43
43
  * Assemble a SiteNavigation from a list of tabs.
44
44
  * Defaults to the first tab and first page as active.
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/core/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CA+CT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,OAAO,CA8BT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CASnE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,cAAc,CAEhB"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/core/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CA+CT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,OAAO,CA6BT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CASnE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,cAAc,CAEhB"}
@@ -57,30 +57,29 @@ export function buildNavFromSpec(spec, tabSlug) {
57
57
  * Build a navigation tab from markdown pages.
58
58
  * Groups come from the config; items come from loaded page data.
59
59
  */
60
- export function buildNavFromPages(tabConfig, pagesByPath) {
60
+ export function buildNavFromPages(tab, pagesByPath) {
61
61
  const groups = [];
62
- if (tabConfig.groups) {
63
- for (const groupConfig of tabConfig.groups) {
62
+ if (tab.groups) {
63
+ for (const group of tab.groups) {
64
64
  const items = [];
65
- for (const pagePath of groupConfig.pages) {
65
+ for (const pagePath of group.pages) {
66
66
  const page = pagesByPath.get(pagePath);
67
67
  if (!page)
68
68
  continue;
69
69
  items.push({
70
70
  label: page.title,
71
- href: `${tabConfig.slug}/${page.slug}.html`,
71
+ href: `${tab.slug}/${page.slug}.html`,
72
72
  id: page.slug,
73
73
  });
74
74
  }
75
- groups.push({ label: groupConfig.label, items });
75
+ groups.push({ label: group.label, items });
76
76
  }
77
77
  }
78
- // First page href for tab link
79
78
  const firstItem = groups[0]?.items[0];
80
- const href = firstItem?.href ?? `${tabConfig.slug}/`;
79
+ const href = firstItem?.href ?? `${tab.slug}/`;
81
80
  return {
82
- label: tabConfig.label,
83
- slug: tabConfig.slug,
81
+ label: tab.label,
82
+ slug: tab.slug,
84
83
  href,
85
84
  kind: "docs",
86
85
  groups,
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/core/navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/core/navigation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAoC7C,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAoB,EACpB,OAAe;IAEf,MAAM,QAAQ,GAAG,GAAG,OAAO,aAAa,CAAC;IACzC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,cAAc;IACd,MAAM,UAAU,GAAkB;QAChC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,QAAQ,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE;KAChF,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,GAAG,QAAQ,iBAAiB;YAClC,EAAE,EAAE,gBAAgB;SACrB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAE9C,6BAA6B;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM;YAAE,SAAS;QACzB,MAAM,KAAK,GAAkB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvD,KAAK,EAAE,EAAE,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;YAC5D,IAAI,EAAE,GAAG,QAAQ,cAAc,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACrE,EAAE,EAAE,aAAa,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACvD,MAAM,EAAE,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe;IACf,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAkB,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtD,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,GAAG,QAAQ,eAAe,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9C,EAAE,EAAE,cAAc,MAAM,CAAC,IAAI,CAAC,EAAE;SACjC,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAgB,EAChB,WAAsC;IAEtC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,OAAO;oBACrC,EAAE,EAAE,IAAI,CAAC,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;IAE/C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO;QACL,IAAI;QACJ,aAAa,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;QACnC,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAmB,EACnB,OAAe,EACf,QAAgB;IAEhB,OAAO,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACtE,CAAC"}
@@ -21,5 +21,5 @@ export interface SearchEntry {
21
21
  * Build a search index from specs and markdown pages.
22
22
  * Returns a JSON string ready to write to disk.
23
23
  */
24
- export declare function buildSearchIndex(specs: Map<string, NormalizedSpec>, pages: Map<string, MarkdownPage[]>, navigation: SiteNavigation): string;
24
+ export declare function buildSearchIndex(specs: Map<string, NormalizedSpec>, pages: Map<string, MarkdownPage[]>, navigation: SiteNavigation, assetBase?: string): string;
25
25
  //# sourceMappingURL=search-indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-indexer.d.ts","sourceRoot":"","sources":["../../src/core/search-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAClC,UAAU,EAAE,cAAc,GACzB,MAAM,CA+DR"}
1
+ {"version":3,"file":"search-indexer.d.ts","sourceRoot":"","sources":["../../src/core/search-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAClC,UAAU,EAAE,cAAc,EAC1B,SAAS,SAAM,GACd,MAAM,CAgER"}
@@ -6,7 +6,8 @@ import { htmlId } from "../utils/html-id.js";
6
6
  * Build a search index from specs and markdown pages.
7
7
  * Returns a JSON string ready to write to disk.
8
8
  */
9
- export function buildSearchIndex(specs, pages, navigation) {
9
+ export function buildSearchIndex(specs, pages, navigation, assetBase = "/") {
10
+ const base = assetBase.endsWith("/") ? assetBase : assetBase + "/";
10
11
  const entries = [];
11
12
  // Index OpenAPI specs
12
13
  for (const [tabSlug, spec] of specs) {
@@ -18,7 +19,7 @@ export function buildSearchIndex(specs, pages, navigation) {
18
19
  entries.push({
19
20
  title: op.summary ?? `${op.method.toUpperCase()} ${op.path}`,
20
21
  content: op.description?.slice(0, 200) ?? "",
21
- url: `${basePath}#operation-${htmlId(op.path)}-${htmlId(op.method)}`,
22
+ url: `${base}${basePath}#operation-${htmlId(op.path)}-${htmlId(op.method)}`,
22
23
  method: op.method,
23
24
  path: op.path,
24
25
  tab: tabLabel,
@@ -30,7 +31,7 @@ export function buildSearchIndex(specs, pages, navigation) {
30
31
  entries.push({
31
32
  title: name,
32
33
  content: spec.schemas[name].description?.slice(0, 200) ?? "",
33
- url: `${basePath}#definition-${htmlId(name)}`,
34
+ url: `${base}${basePath}#definition-${htmlId(name)}`,
34
35
  tab: tabLabel,
35
36
  category: "Models",
36
37
  });
@@ -45,7 +46,7 @@ export function buildSearchIndex(specs, pages, navigation) {
45
46
  entries.push({
46
47
  title: page.title,
47
48
  content: page.description || stripHtml(page.html).slice(0, 200),
48
- url: `${tabSlug}/${page.slug}.html`,
49
+ url: `${base}${tabSlug}/${page.slug}.html`,
49
50
  tab: tabLabel,
50
51
  category: "Pages",
51
52
  });
@@ -54,7 +55,7 @@ export function buildSearchIndex(specs, pages, navigation) {
54
55
  entries.push({
55
56
  title: heading.text,
56
57
  content: `${page.title} — ${heading.text}`,
57
- url: `${tabSlug}/${page.slug}.html#${heading.id}`,
58
+ url: `${base}${tabSlug}/${page.slug}.html#${heading.id}`,
58
59
  tab: tabLabel,
59
60
  category: "Sections",
60
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"search-indexer.js","sourceRoot":"","sources":["../../src/core/search-indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-indexer.js","sourceRoot":"","sources":["../../src/core/search-indexer.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,5 @@
1
1
  export interface DevServerOptions {
2
- specSource?: string;
3
- outputDir: string;
4
2
  port: number;
5
- logo?: string;
6
- favicon?: string;
7
- themeOverrides?: Record<string, string>;
8
3
  }
9
- /**
10
- * Start a Vite-powered dev server for Sourcey.
11
- *
12
- * Uses Vite's ssrLoadModule() to render TSX components from source,
13
- * so component changes are reflected instantly without a build step.
14
- * CSS uses native Vite HMR. Spec/markdown changes trigger full reload.
15
- */
16
4
  export declare function startDevServer(options: DevServerOptions): Promise<void>;
17
5
  //# sourceMappingURL=dev-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyH7E"}
1
+ {"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2G7E"}