sourcey 3.6.1 → 3.6.3
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/client/tabs.js +62 -36
- package/dist/components/layout/Head.d.ts.map +1 -1
- package/dist/components/layout/Head.js +7 -6
- package/dist/components/openapi/CodeSamples.d.ts.map +1 -1
- package/dist/components/openapi/CodeSamples.js +4 -4
- package/dist/components/openapi/RequestBody.d.ts.map +1 -1
- package/dist/components/openapi/RequestBody.js +5 -7
- package/dist/components/openapi/Responses.d.ts.map +1 -1
- package/dist/components/openapi/Responses.js +14 -24
- package/dist/components/schema/ExampleView.d.ts +24 -1
- package/dist/components/schema/ExampleView.d.ts.map +1 -1
- package/dist/components/schema/ExampleView.js +29 -8
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/core/doxygen-loader.d.ts +1 -1
- package/dist/core/doxygen-loader.d.ts.map +1 -1
- package/dist/core/doxygen-loader.js +2 -1
- package/dist/core/rustdoc-loader.d.ts.map +1 -1
- package/dist/core/rustdoc-loader.js +10 -7
- package/dist/core/rustdoc-render.d.ts +6 -0
- package/dist/core/rustdoc-render.d.ts.map +1 -1
- package/dist/core/rustdoc-render.js +28 -5
- package/dist/dev-server.js +1 -1
- package/dist/renderer/context.d.ts +1 -0
- package/dist/renderer/context.d.ts.map +1 -1
- package/dist/site-assembly.d.ts.map +1 -1
- package/dist/site-assembly.js +2 -1
- package/dist/themes/default/sourcey.css +13 -1
- package/dist/utils/example-variants.d.ts +31 -0
- package/dist/utils/example-variants.d.ts.map +1 -0
- package/dist/utils/example-variants.js +99 -0
- package/package.json +2 -2
package/dist/client/tabs.js
CHANGED
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
trigger.setAttribute('aria-expanded', isOpen ? 'false' : 'true');
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
// Select a language from the dropdown
|
|
37
|
+
// Select a language / example variant from the dropdown
|
|
38
38
|
document.addEventListener('click', function (e) {
|
|
39
39
|
var option = e.target.closest('.code-lang-option');
|
|
40
40
|
if (!option) return;
|
|
41
41
|
|
|
42
|
-
var
|
|
43
|
-
var
|
|
42
|
+
var dropdown = option.closest('.code-lang-dropdown');
|
|
43
|
+
var canSync = !!(dropdown && dropdown.hasAttribute('data-lang-sync'));
|
|
44
44
|
var lang = option.textContent.trim();
|
|
45
45
|
|
|
46
46
|
// Close the menu
|
|
@@ -52,17 +52,16 @@
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
var scrollY = window.scrollY;
|
|
55
|
-
activateLang(
|
|
55
|
+
activateLang(option);
|
|
56
56
|
|
|
57
|
-
// Sync language across
|
|
58
|
-
if (lang !== selectedLang) {
|
|
57
|
+
// Sync language across code-sample groups only (not example variants).
|
|
58
|
+
if (canSync && lang !== selectedLang) {
|
|
59
59
|
selectedLang = lang;
|
|
60
|
+
var ownGroup = option.closest('.code-group');
|
|
60
61
|
document.querySelectorAll('.code-group').forEach(function (group) {
|
|
61
|
-
if (group ===
|
|
62
|
+
if (group === ownGroup || !group.querySelector('.code-lang-dropdown[data-lang-sync]')) return;
|
|
62
63
|
group.querySelectorAll('.code-lang-option').forEach(function (opt) {
|
|
63
|
-
if (opt.textContent.trim() === lang)
|
|
64
|
-
activateLang(group, opt.getAttribute('data-lang-index'));
|
|
65
|
-
}
|
|
64
|
+
if (opt.textContent.trim() === lang) activateLang(opt);
|
|
66
65
|
});
|
|
67
66
|
});
|
|
68
67
|
}
|
|
@@ -70,32 +69,51 @@
|
|
|
70
69
|
window.scrollTo(0, scrollY);
|
|
71
70
|
});
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
72
|
+
// The panels a dropdown controls. A header variant dropdown (in the shared
|
|
73
|
+
// card header) drives the matching response status panel; otherwise panels
|
|
74
|
+
// live in the dropdown's own `.code-lang-scope` or `.code-group`.
|
|
75
|
+
function panelScopeForOption(option) {
|
|
76
|
+
var headerWrap = option.closest('[data-response-dropdown]');
|
|
77
|
+
if (headerWrap) {
|
|
78
|
+
var idx = headerWrap.getAttribute('data-response-dropdown');
|
|
79
|
+
var group = headerWrap.closest('.code-group');
|
|
80
|
+
var panel = group && group.querySelector('.response-panel[data-response-panel="' + idx + '"]');
|
|
81
|
+
if (panel) return panel;
|
|
82
|
+
}
|
|
83
|
+
return option.closest('.code-lang-scope') || option.closest('.code-group');
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function activateLang(option) {
|
|
87
|
+
var dropdown = option.closest('.code-lang-dropdown');
|
|
88
|
+
var scope = panelScopeForOption(option);
|
|
89
|
+
var index = option.getAttribute('data-lang-index');
|
|
90
|
+
|
|
91
|
+
// Update the dropdown label + options (label/trigger live in the dropdown,
|
|
92
|
+
// which for a header variant switcher is separate from the panel scope).
|
|
93
|
+
if (dropdown) {
|
|
94
|
+
var label = dropdown.querySelector('.code-lang-label');
|
|
95
|
+
dropdown.querySelectorAll('.code-lang-option').forEach(function (opt) {
|
|
96
|
+
var isActive = opt.getAttribute('data-lang-index') === index;
|
|
97
|
+
opt.setAttribute('aria-selected', isActive ? 'true' : 'false');
|
|
98
|
+
opt.className = opt.className.replace(/(dark:)?text-\[rgb\([^\]]+\)\]/g, '').trim();
|
|
99
|
+
if (isActive) {
|
|
100
|
+
opt.classList.add('text-[rgb(var(--color-primary))]', 'dark:text-[rgb(var(--color-primary-light))]');
|
|
101
|
+
if (label) label.textContent = opt.textContent.trim();
|
|
102
|
+
var triggerIcon = dropdown.querySelector('.code-lang-trigger .code-lang-icon');
|
|
103
|
+
var optIcon = opt.querySelector('.lang-icon');
|
|
104
|
+
if (triggerIcon && optIcon) triggerIcon.innerHTML = optIcon.outerHTML;
|
|
105
|
+
} else {
|
|
106
|
+
opt.classList.add('text-[rgb(var(--color-stone-600))]', 'dark:text-[rgb(var(--color-stone-400))]');
|
|
89
107
|
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
94
110
|
|
|
95
|
-
// Update panels
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
111
|
+
// Update panels within the controlled scope.
|
|
112
|
+
if (scope) {
|
|
113
|
+
scope.querySelectorAll('.code-lang-panel').forEach(function (p) {
|
|
114
|
+
p.classList.toggle('active', p.getAttribute('data-lang-panel') === index);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
99
117
|
}
|
|
100
118
|
|
|
101
119
|
// ── Response Tabs ──────────────────────────────────────────────────
|
|
@@ -120,6 +138,11 @@
|
|
|
120
138
|
p.classList.toggle('active', p.getAttribute('data-response-panel') === index);
|
|
121
139
|
});
|
|
122
140
|
|
|
141
|
+
// Show only the active status's variant switcher in the header.
|
|
142
|
+
container.querySelectorAll('[data-response-dropdown]').forEach(function (d) {
|
|
143
|
+
d.classList.toggle('hidden', d.getAttribute('data-response-dropdown') !== index);
|
|
144
|
+
});
|
|
145
|
+
|
|
123
146
|
window.scrollTo(0, scrollY);
|
|
124
147
|
});
|
|
125
148
|
|
|
@@ -132,8 +155,11 @@
|
|
|
132
155
|
var container = btn.closest('.code-group') || btn.closest('.prose-code-block');
|
|
133
156
|
if (!container) return;
|
|
134
157
|
|
|
135
|
-
// Find the active panel's code, or the nearest code element
|
|
136
|
-
|
|
158
|
+
// Find the active panel's code, or the nearest code element. With nested
|
|
159
|
+
// panels (a variant switcher inside a response tab), prefer the deepest
|
|
160
|
+
// active panel, which is last in document order.
|
|
161
|
+
var activePanels = container.querySelectorAll('.code-lang-panel.active, .response-panel.active');
|
|
162
|
+
var activePanel = activePanels.length ? activePanels[activePanels.length - 1] : null;
|
|
137
163
|
var codeEl = activePanel
|
|
138
164
|
? activePanel.querySelector('code, .code-block, .font-mono')
|
|
139
165
|
: container.querySelector('code, .code-block, .font-mono');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../../src/components/layout/Head.tsx"],"names":[],"mappings":"AAKA,wBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../../src/components/layout/Head.tsx"],"names":[],"mappings":"AAKA,wBAAgB,IAAI,iCA+FnB"}
|
|
@@ -12,16 +12,17 @@ export function Head() {
|
|
|
12
12
|
? page.changelog.changelog.versions.find((version) => version.id === page.changelog.permalinkVersionId)
|
|
13
13
|
: undefined;
|
|
14
14
|
const siteName = site.name || spec.info.title || "";
|
|
15
|
+
const separator = site.titleSeparator;
|
|
15
16
|
const pageTitle = page.kind === "markdown"
|
|
16
|
-
? composePageTitle(page.markdown.title, siteName)
|
|
17
|
+
? composePageTitle(page.markdown.title, siteName, separator)
|
|
17
18
|
: page.kind === "changelog"
|
|
18
19
|
? (() => {
|
|
19
20
|
const baseTitle = changelogVersion
|
|
20
|
-
? `${changelogVersion.version ?? "Unreleased"}
|
|
21
|
+
? `${changelogVersion.version ?? "Unreleased"}${separator}${page.changelog.title}`
|
|
21
22
|
: page.changelog.title;
|
|
22
|
-
return composePageTitle(baseTitle, siteName);
|
|
23
|
+
return composePageTitle(baseTitle, siteName, separator);
|
|
23
24
|
})()
|
|
24
|
-
: composePageTitle(siteName, "API Reference");
|
|
25
|
+
: composePageTitle(siteName, "API Reference", separator);
|
|
25
26
|
const pageDescription = page.kind === "markdown"
|
|
26
27
|
? page.markdown.description || pageTitle
|
|
27
28
|
: page.kind === "changelog"
|
|
@@ -58,12 +59,12 @@ export function Head() {
|
|
|
58
59
|
`;
|
|
59
60
|
return (_jsxs("head", { children: [_jsx("meta", { charset: "utf-8" }), _jsx("meta", { name: "viewport", content: "width=device-width, initial-scale=1" }), _jsx("title", { children: pageTitle }), _jsx("meta", { name: "description", content: pageDescription }), _jsx("meta", { name: "generator", content: `Sourcey ${pkg.version}` }), options.pageUrl && _jsx("link", { rel: "canonical", href: options.pageUrl }), _jsx("meta", { property: "og:title", content: pageTitle }), _jsx("meta", { property: "og:description", content: pageDescription }), _jsx("meta", { property: "og:type", content: "website" }), siteName && _jsx("meta", { property: "og:site_name", content: siteName }), options.pageUrl && _jsx("meta", { property: "og:url", content: options.pageUrl }), options.ogImageUrl && _jsx("meta", { property: "og:image", content: options.ogImageUrl }), options.ogImageUrl && _jsx("meta", { property: "og:image:width", content: "1200" }), options.ogImageUrl && _jsx("meta", { property: "og:image:height", content: "630" }), options.ogImageUrl && _jsx("meta", { property: "og:image:type", content: "image/png" }), _jsx("meta", { name: "twitter:card", content: options.ogImageUrl ? "summary_large_image" : "summary" }), _jsx("meta", { name: "twitter:title", content: pageTitle }), _jsx("meta", { name: "twitter:description", content: pageDescription }), options.ogImageUrl && _jsx("meta", { name: "twitter:image", content: options.ogImageUrl }), _jsx("meta", { name: "sourcey-search", content: `${options.assetBase}search-index.json` }), options.alternateLinks?.map((link) => (_jsx("link", { rel: "alternate", type: link.type, href: link.href, title: link.title }, `${link.type}-${link.href}`))), _jsx("link", { rel: "preconnect", href: "https://fonts.googleapis.com" }), _jsx("link", { rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "anonymous" }), _jsx("link", { rel: "stylesheet", href: `https://fonts.googleapis.com/css2?family=${encodeURIComponent(fonts.googleFont)}:wght@100..900&display=swap` }), _jsx("style", { dangerouslySetInnerHTML: { __html: themeCSS } }), showLangIconCSS && _jsx("style", { dangerouslySetInnerHTML: { __html: langIconCSS() } }), site.customCSS && _jsx("style", { dangerouslySetInnerHTML: { __html: site.customCSS } }), _jsx("script", { dangerouslySetInnerHTML: { __html: `(function(){var t=localStorage.getItem('sourcey-theme');if(t==='dark')document.documentElement.classList.add('dark')})()` } }), _jsx("link", { rel: "stylesheet", href: `${options.assetBase}sourcey.css` }), site.favicon && _jsx("link", { rel: "icon", href: site.favicon })] }));
|
|
60
61
|
}
|
|
61
|
-
function composePageTitle(title, siteName) {
|
|
62
|
+
function composePageTitle(title, siteName, separator) {
|
|
62
63
|
if (!siteName)
|
|
63
64
|
return title;
|
|
64
65
|
if (!title)
|
|
65
66
|
return siteName;
|
|
66
|
-
return sameTitle(title, siteName) ? title : `${title}
|
|
67
|
+
return sameTitle(title, siteName) ? title : `${title}${separator}${siteName}`;
|
|
67
68
|
}
|
|
68
69
|
function sameTitle(left, right) {
|
|
69
70
|
return normalizeTitle(left) === normalizeTitle(right);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeSamples.d.ts","sourceRoot":"","sources":["../../../src/components/openapi/CodeSamples.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM/D,UAAU,gBAAgB;IACxB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"CodeSamples.d.ts","sourceRoot":"","sources":["../../../src/components/openapi/CodeSamples.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM/D,UAAU,gBAAgB;IACxB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,gBAAgB,uCAyE9F"}
|
|
@@ -12,8 +12,8 @@ export function CodeSamplesExamples({ operation, serverUrl, codeSampleLangs }) {
|
|
|
12
12
|
if (!samples.length)
|
|
13
13
|
return null;
|
|
14
14
|
const title = operation.summary ?? `${operation.method.toUpperCase()} ${operation.path}`;
|
|
15
|
-
return (_jsxs("div", { class: "code-group not-prose", children: [_jsxs("div", { class: "relative flex items-center justify-between gap-2 px-3", children: [_jsx("div", { class: "flex min-w-0 items-center gap-1.5 font-medium text-xs leading-6 my-1 mb-1.5", children: _jsx("span", { class: "truncate text-[rgb(var(--color-stone-950))] dark:text-[rgb(var(--color-stone-50))]", children: title }) }), _jsxs("div", { class: "flex shrink-0 items-center justify-end gap-1.5", children: [_jsxs("div", { class: "code-lang-dropdown relative", children: [_jsx("button", { type: "button", class: "code-lang-trigger group relative my-1 mb-1.5 flex items-center whitespace-nowrap font-medium leading-6 outline-0 text-[rgb(var(--color-stone-500))] dark:text-[rgb(var(--color-stone-400))] cursor-pointer text-xs", "aria-expanded": "false", "aria-haspopup": "listbox", children: _jsxs("div", { class: "z-10 flex items-center gap-1 rounded-lg px-1.5 group-hover:bg-[rgb(var(--color-stone-200)/0.5)] group-hover:text-[rgb(var(--color-primary))] dark:group-hover:bg-[rgb(var(--color-stone-700)/0.7)] dark:group-hover:text-[rgb(var(--color-primary-light))]", children: [_jsx("span", { class: "code-lang-icon", dangerouslySetInnerHTML: { __html: langIcon(samples[0].lang) } }), _jsx("span", { class: "code-lang-label truncate", children: samples[0].label ?? samples[0].lang }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", class: "size-3.5 shrink-0", children: [_jsx("path", { d: "m7 15 5 5 5-5" }), _jsx("path", { d: "m7 9 5-5 5 5" })] })] }) }), _jsx("div", { class: "code-lang-menu hidden absolute right-0 top-full mt-1 z-20 min-w-[120px] rounded-lg border border-[rgb(var(--color-stone-200))] dark:border-[rgb(255_255_255/0.1)] bg-[rgb(var(--color-background-light))] dark:bg-[rgb(var(--color-stone-900))] shadow-lg py-1", role: "listbox", children: samples.map((sample, i) => (_jsxs("button", { role: "option", "aria-selected": i === 0 ? "true" : "false", class: `code-lang-option w-full text-left px-3 py-1.5 text-xs font-medium flex items-center gap-1.5 hover:bg-[rgb(var(--color-stone-100))] dark:hover:bg-[rgb(255_255_255/0.05)] ${i === 0 ? "text-[rgb(var(--color-primary))] dark:text-[rgb(var(--color-primary-light))]" : "text-[rgb(var(--color-stone-600))] dark:text-[rgb(var(--color-stone-400))]"}`, "data-lang-index": String(i), children: [_jsx("span", { dangerouslySetInnerHTML: { __html: langIcon(sample.lang) } }), sample.label ?? sample.lang] }, i))) })] }), _jsx(CopyButton, {})] })] }), samples.map((sample, i) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
return (_jsxs("div", { class: "code-group not-prose", children: [_jsxs("div", { class: "relative flex items-center justify-between gap-2 px-3", children: [_jsx("div", { class: "flex min-w-0 items-center gap-1.5 font-medium text-xs leading-6 my-1 mb-1.5", children: _jsx("span", { class: "truncate text-[rgb(var(--color-stone-950))] dark:text-[rgb(var(--color-stone-50))]", children: title }) }), _jsxs("div", { class: "flex shrink-0 items-center justify-end gap-1.5", children: [_jsxs("div", { class: "code-lang-dropdown relative", "data-lang-sync": true, children: [_jsx("button", { type: "button", class: "code-lang-trigger group relative my-1 mb-1.5 flex items-center whitespace-nowrap font-medium leading-6 outline-0 text-[rgb(var(--color-stone-500))] dark:text-[rgb(var(--color-stone-400))] cursor-pointer text-xs", "aria-expanded": "false", "aria-haspopup": "listbox", children: _jsxs("div", { class: "z-10 flex items-center gap-1 rounded-lg px-1.5 group-hover:bg-[rgb(var(--color-stone-200)/0.5)] group-hover:text-[rgb(var(--color-primary))] dark:group-hover:bg-[rgb(var(--color-stone-700)/0.7)] dark:group-hover:text-[rgb(var(--color-primary-light))]", children: [_jsx("span", { class: "code-lang-icon", dangerouslySetInnerHTML: { __html: langIcon(samples[0].lang) } }), _jsx("span", { class: "code-lang-label truncate", children: samples[0].label ?? samples[0].lang }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", class: "size-3.5 shrink-0", children: [_jsx("path", { d: "m7 15 5 5 5-5" }), _jsx("path", { d: "m7 9 5-5 5 5" })] })] }) }), _jsx("div", { class: "code-lang-menu hidden absolute right-0 top-full mt-1 z-20 min-w-[120px] rounded-lg border border-[rgb(var(--color-stone-200))] dark:border-[rgb(255_255_255/0.1)] bg-[rgb(var(--color-background-light))] dark:bg-[rgb(var(--color-stone-900))] shadow-lg py-1", role: "listbox", children: samples.map((sample, i) => (_jsxs("button", { role: "option", "aria-selected": i === 0 ? "true" : "false", class: `code-lang-option w-full text-left px-3 py-1.5 text-xs font-medium flex items-center gap-1.5 hover:bg-[rgb(var(--color-stone-100))] dark:hover:bg-[rgb(255_255_255/0.05)] ${i === 0 ? "text-[rgb(var(--color-primary))] dark:text-[rgb(var(--color-primary-light))]" : "text-[rgb(var(--color-stone-600))] dark:text-[rgb(var(--color-stone-400))]"}`, "data-lang-index": String(i), children: [_jsx("span", { dangerouslySetInnerHTML: { __html: langIcon(sample.lang) } }), sample.label ?? sample.lang] }, i))) })] }), _jsx(CopyButton, {})] })] }), _jsx("div", { class: "code-card-body", children: samples.map((sample, i) => {
|
|
16
|
+
const html = highlightCode(sample.source, sample.lang);
|
|
17
|
+
return (_jsx("div", { class: `code-lang-panel${i === 0 ? " active" : ""}`, "data-lang-panel": String(i), children: _jsx("div", { class: "relative w-full px-4 py-3.5 text-sm leading-6 bg-[rgb(var(--color-code-block-light))] dark:bg-[rgb(var(--color-code-block-dark))] overflow-x-auto", style: "font-variant-ligatures: none", children: _jsx("div", { class: "font-mono whitespace-pre text-xs leading-[1.35rem] code-block", dangerouslySetInnerHTML: { __html: html } }) }) }, i));
|
|
18
|
+
}) })] }));
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBody.d.ts","sourceRoot":"","sources":["../../../src/components/openapi/RequestBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"RequestBody.d.ts","sourceRoot":"","sources":["../../../src/components/openapi/RequestBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAOjE,UAAU,gBAAgB;IACxB,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,uCA4BrD;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,uBAAuB,uCAKnE"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
2
|
import { SchemaView } from "../schema/SchemaView.js";
|
|
3
|
-
import {
|
|
3
|
+
import { ExampleVariantsCard } from "../schema/ExampleView.js";
|
|
4
4
|
import { Markdown } from "../ui/Markdown.js";
|
|
5
5
|
import { MediaTypeDetails } from "./MediaTypeDetails.js";
|
|
6
|
+
import { buildExampleVariants } from "../../utils/example-variants.js";
|
|
6
7
|
/**
|
|
7
8
|
* Request body content (rendered in the main content column).
|
|
8
9
|
*/
|
|
@@ -19,11 +20,8 @@ export function RequestBody({ body }) {
|
|
|
19
20
|
* Request body example (rendered in the sticky code panel).
|
|
20
21
|
*/
|
|
21
22
|
export function RequestBodyExample({ body }) {
|
|
22
|
-
const
|
|
23
|
-
if (!
|
|
24
|
-
return null;
|
|
25
|
-
const [, content] = mediaTypes[0];
|
|
26
|
-
if (!content.schema)
|
|
23
|
+
const variants = buildExampleVariants(body.content);
|
|
24
|
+
if (!variants.length)
|
|
27
25
|
return null;
|
|
28
|
-
return _jsx(
|
|
26
|
+
return _jsx(ExampleVariantsCard, { variants: variants, title: "Request Body" });
|
|
29
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Responses.d.ts","sourceRoot":"","sources":["../../../src/components/openapi/Responses.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Responses.d.ts","sourceRoot":"","sources":["../../../src/components/openapi/Responses.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,UAAU,cAAc;IACtB,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAUD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE,cAAc,uCAoC1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,cAAc,uCAkF9D"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
2
|
import { httpStatusText } from "../../utils/http.js";
|
|
3
3
|
import { SchemaDatatype } from "../schema/SchemaDatatype.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ExampleVariantsCard, VariantBody, VariantDropdown } from "../schema/ExampleView.js";
|
|
5
5
|
import { Markdown } from "../ui/Markdown.js";
|
|
6
6
|
import { CopyButton } from "../ui/CopyButton.js";
|
|
7
|
-
import {
|
|
8
|
-
import { highlightCode } from "../../utils/highlighter.js";
|
|
7
|
+
import { buildExampleVariants } from "../../utils/example-variants.js";
|
|
9
8
|
function statusColorClass(code) {
|
|
10
9
|
if (code.startsWith("2"))
|
|
11
10
|
return "bg-green-100 text-green-800 dark:bg-green-400/20 dark:text-green-300";
|
|
@@ -32,29 +31,20 @@ export function ResponsesCopy({ responses }) {
|
|
|
32
31
|
export function ResponsesExamples({ responses }) {
|
|
33
32
|
if (!responses.length)
|
|
34
33
|
return null;
|
|
35
|
-
const
|
|
36
|
-
.map((r) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return null;
|
|
40
|
-
const example = schema.example ?? generateExample(schema);
|
|
41
|
-
if (example === undefined)
|
|
42
|
-
return null;
|
|
43
|
-
const json = JSON.stringify(example, null, 2);
|
|
44
|
-
const html = highlightCode(json, "json");
|
|
45
|
-
return { statusCode: r.statusCode, html };
|
|
46
|
-
})
|
|
47
|
-
.filter(Boolean);
|
|
48
|
-
if (!examples.length)
|
|
34
|
+
const groups = responses
|
|
35
|
+
.map((r) => ({ statusCode: r.statusCode, variants: buildExampleVariants(r.content) }))
|
|
36
|
+
.filter((g) => g.variants.length > 0);
|
|
37
|
+
if (!groups.length)
|
|
49
38
|
return null;
|
|
50
|
-
// Single
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return _jsx(ExampleView, { schema: schema, title: `${examples[0].statusCode}` });
|
|
39
|
+
// Single status code: a standalone card, with a variant switcher when the
|
|
40
|
+
// response carries more than one example (named examples / content types).
|
|
41
|
+
if (groups.length === 1) {
|
|
42
|
+
return _jsx(ExampleVariantsCard, { variants: groups[0].variants, title: groups[0].statusCode });
|
|
55
43
|
}
|
|
56
|
-
// Multiple
|
|
57
|
-
|
|
44
|
+
// Multiple status codes: status tabs on the left of the header; on the right,
|
|
45
|
+
// a per-status variant switcher (shown for the active status) next to copy,
|
|
46
|
+
// matching the language select. Panels live in the clipped card body.
|
|
47
|
+
return (_jsxs("div", { class: "response-tabs code-group not-prose", children: [_jsxs("div", { class: "relative flex items-center justify-between gap-2 px-3", children: [_jsx("div", { class: "response-tab-list flex gap-1 overflow-x-auto text-xs leading-6", role: "tablist", children: groups.map((g, i) => (_jsx("button", { type: "button", role: "tab", "aria-selected": i === 0 ? "true" : "false", class: `response-tab group relative my-1 mb-1.5 flex items-center gap-1.5 whitespace-nowrap font-medium outline-0${i === 0 ? " active" : ""}`, "data-response-index": String(i), children: _jsx("div", { class: "z-10 flex items-center gap-1.5 rounded-lg px-1.5 group-hover:bg-[rgb(var(--color-stone-200)/0.5)] group-hover:text-[rgb(var(--color-primary))] dark:group-hover:bg-[rgb(var(--color-stone-700)/0.7)] dark:group-hover:text-[rgb(var(--color-primary-light))]", children: g.statusCode }) }, g.statusCode))) }), _jsxs("div", { class: "flex shrink-0 items-center justify-end gap-1.5", children: [groups.map((g, i) => g.variants.length > 1 ? (_jsx("div", { "data-response-dropdown": String(i), class: i === 0 ? undefined : "hidden", children: _jsx(VariantDropdown, { variants: g.variants }) }, g.statusCode)) : null), _jsx(CopyButton, {})] })] }), _jsx("div", { class: "code-card-body", children: groups.map((g, i) => (_jsx("div", { class: `response-panel${i === 0 ? " active" : ""}`, role: "tabpanel", "data-response-panel": String(i), children: g.variants.length > 1 ? (g.variants.map((v, j) => (_jsx("div", { class: `code-lang-panel${j === 0 ? " active" : ""}`, "data-lang-panel": String(j), children: _jsx(VariantBody, { variant: v }) }, j)))) : (_jsx(VariantBody, { variant: g.variants[0] })) }, g.statusCode))) })] }));
|
|
58
48
|
}
|
|
59
49
|
function renderResponseType(r) {
|
|
60
50
|
const schema = getResponseSchema(r);
|
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
import type { NormalizedSchema } from "../../core/types.js";
|
|
2
|
+
import type { ExampleVariant } from "../../utils/example-variants.js";
|
|
3
|
+
/** Render one example body (highlighted JSON or an external-example link). */
|
|
4
|
+
export declare function VariantBody({ variant, showCopy }: {
|
|
5
|
+
variant: ExampleVariant;
|
|
6
|
+
showCopy?: boolean;
|
|
7
|
+
}): import("preact").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Variant switcher reusing the code-sample language dropdown markup/JS, minus
|
|
10
|
+
* the cross-group language sync (no `data-lang-sync`). Sits in the card header
|
|
11
|
+
* to the left of the copy button, identical to the language select.
|
|
12
|
+
*/
|
|
13
|
+
export declare function VariantDropdown({ variants }: {
|
|
14
|
+
variants: ExampleVariant[];
|
|
15
|
+
}): import("preact").JSX.Element;
|
|
16
|
+
interface ExampleVariantsCardProps {
|
|
17
|
+
variants: ExampleVariant[];
|
|
18
|
+
title?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Standalone example card: a `.code-group` with an optional title, a variant
|
|
22
|
+
* switcher when more than one example exists, and a copy button.
|
|
23
|
+
*/
|
|
24
|
+
export declare function ExampleVariantsCard({ variants, title }: ExampleVariantsCardProps): import("preact").JSX.Element | null;
|
|
2
25
|
interface ExampleViewProps {
|
|
3
26
|
schema: NormalizedSchema;
|
|
4
27
|
title?: string;
|
|
5
28
|
}
|
|
6
29
|
/**
|
|
7
|
-
* Renders a JSON example in a stone-themed code card
|
|
30
|
+
* Renders a schema-derived JSON example in a stone-themed code card.
|
|
8
31
|
*/
|
|
9
32
|
export declare function ExampleView({ schema, title }: ExampleViewProps): import("preact").JSX.Element | null;
|
|
10
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExampleView.d.ts","sourceRoot":"","sources":["../../../src/components/schema/ExampleView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExampleView.d.ts","sourceRoot":"","sources":["../../../src/components/schema/ExampleView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQtE,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,gCA8BjG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,gCAgC3E;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,wBAAwB,uCAsChF;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,gBAAgB,uCAI9D"}
|
|
@@ -1,15 +1,36 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { highlightCode } from "../../utils/highlighter.js";
|
|
2
|
+
import { variantFromSchema } from "../../utils/example-variants.js";
|
|
4
3
|
import { CopyButton } from "../ui/CopyButton.js";
|
|
4
|
+
const BODY_WRAP = "relative w-full px-4 py-3.5 text-sm leading-6 bg-[rgb(var(--color-code-block-light))] dark:bg-[rgb(var(--color-code-block-dark))] overflow-x-auto";
|
|
5
|
+
const BODY_CODE = "font-mono whitespace-pre text-xs leading-[1.35rem]";
|
|
6
|
+
/** Render one example body (highlighted JSON or an external-example link). */
|
|
7
|
+
export function VariantBody({ variant, showCopy }) {
|
|
8
|
+
return (_jsxs("div", { class: BODY_WRAP, style: "font-variant-ligatures: none", children: [showCopy && (_jsx("div", { class: "absolute top-3 right-4 z-10", children: _jsx(CopyButton, {}) })), variant.summary && (_jsx("p", { class: "mb-2 text-xs text-[rgb(var(--color-gray-500))] dark:text-[rgb(var(--color-gray-400))]", children: variant.summary })), variant.externalValue ? (_jsxs("p", { class: "text-xs", children: [_jsx("span", { class: "text-[rgb(var(--color-gray-500))]", children: "External example: " }), _jsx("a", { href: variant.externalValue, target: "_blank", rel: "noopener noreferrer", class: "break-all text-[rgb(var(--color-primary))] hover:underline", children: variant.externalValue })] })) : (_jsx("div", { class: BODY_CODE, dangerouslySetInnerHTML: { __html: variant.html } }))] }));
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Variant switcher reusing the code-sample language dropdown markup/JS, minus
|
|
12
|
+
* the cross-group language sync (no `data-lang-sync`). Sits in the card header
|
|
13
|
+
* to the left of the copy button, identical to the language select.
|
|
14
|
+
*/
|
|
15
|
+
export function VariantDropdown({ variants }) {
|
|
16
|
+
return (_jsxs("div", { class: "code-lang-dropdown relative", children: [_jsx("button", { type: "button", class: "code-lang-trigger group relative my-1 mb-1.5 flex items-center whitespace-nowrap font-medium leading-6 outline-0 text-[rgb(var(--color-stone-500))] dark:text-[rgb(var(--color-stone-400))] cursor-pointer text-xs", "aria-expanded": "false", "aria-haspopup": "listbox", children: _jsxs("div", { class: "z-10 flex items-center gap-1 rounded-lg px-1.5 group-hover:bg-[rgb(var(--color-stone-200)/0.5)] group-hover:text-[rgb(var(--color-primary))] dark:group-hover:bg-[rgb(var(--color-stone-700)/0.7)] dark:group-hover:text-[rgb(var(--color-primary-light))]", children: [_jsx("span", { class: "code-lang-label truncate", children: variants[0].label }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", class: "size-3.5 shrink-0", children: [_jsx("path", { d: "m7 15 5 5 5-5" }), _jsx("path", { d: "m7 9 5-5 5 5" })] })] }) }), _jsx("div", { class: "code-lang-menu hidden absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-lg border border-[rgb(var(--color-stone-200))] dark:border-[rgb(255_255_255/0.1)] bg-[rgb(var(--color-background-light))] dark:bg-[rgb(var(--color-stone-900))] shadow-lg py-1", role: "listbox", children: variants.map((v, i) => (_jsx("button", { role: "option", "aria-selected": i === 0 ? "true" : "false", class: `code-lang-option w-full text-left px-3 py-1.5 text-xs font-medium flex items-center gap-1.5 hover:bg-[rgb(var(--color-stone-100))] dark:hover:bg-[rgb(255_255_255/0.05)] ${i === 0 ? "text-[rgb(var(--color-primary))] dark:text-[rgb(var(--color-primary-light))]" : "text-[rgb(var(--color-stone-600))] dark:text-[rgb(var(--color-stone-400))]"}`, "data-lang-index": String(i), children: v.label }, i))) })] }));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Standalone example card: a `.code-group` with an optional title, a variant
|
|
20
|
+
* switcher when more than one example exists, and a copy button.
|
|
21
|
+
*/
|
|
22
|
+
export function ExampleVariantsCard({ variants, title }) {
|
|
23
|
+
if (!variants.length)
|
|
24
|
+
return null;
|
|
25
|
+
const multi = variants.length > 1;
|
|
26
|
+
return (_jsxs("div", { class: "code-group not-prose", children: [(title || multi) && (_jsxs("div", { class: "relative flex items-center justify-between gap-2 px-3", children: [_jsx("div", { class: "flex min-w-0 items-center gap-1.5 font-medium text-xs leading-6 my-1 mb-1.5", children: title && (_jsx("span", { class: "truncate text-[rgb(var(--color-stone-950))] dark:text-[rgb(var(--color-stone-50))]", children: title })) }), _jsxs("div", { class: "flex shrink-0 items-center justify-end gap-1.5", children: [multi && _jsx(VariantDropdown, { variants: variants }), _jsx(CopyButton, {})] })] })), _jsx("div", { class: "code-card-body", children: multi ? (variants.map((v, i) => (_jsx("div", { class: `code-lang-panel${i === 0 ? " active" : ""}`, "data-lang-panel": String(i), children: _jsx(VariantBody, { variant: v }) }, i)))) : (_jsx(VariantBody, { variant: variants[0], showCopy: !title })) })] }));
|
|
27
|
+
}
|
|
5
28
|
/**
|
|
6
|
-
* Renders a JSON example in a stone-themed code card
|
|
29
|
+
* Renders a schema-derived JSON example in a stone-themed code card.
|
|
7
30
|
*/
|
|
8
31
|
export function ExampleView({ schema, title }) {
|
|
9
|
-
const
|
|
10
|
-
if (
|
|
32
|
+
const variant = variantFromSchema(schema, title ?? "Example");
|
|
33
|
+
if (!variant)
|
|
11
34
|
return null;
|
|
12
|
-
|
|
13
|
-
const html = highlightCode(json, "json");
|
|
14
|
-
return (_jsxs("div", { class: "code-group not-prose", children: [title && (_jsxs("div", { class: "relative flex items-center justify-between gap-2 px-3", children: [_jsx("div", { class: "flex min-w-0 items-center gap-1.5 font-medium text-xs leading-6 my-1 mb-1.5", children: _jsx("span", { class: "truncate text-[rgb(var(--color-stone-950))] dark:text-[rgb(var(--color-stone-50))]", children: title }) }), _jsx("div", { class: "flex shrink-0 items-center justify-end gap-1.5", children: _jsx(CopyButton, {}) })] })), _jsxs("div", { class: "relative w-full px-4 py-3.5 text-sm leading-6 bg-[rgb(var(--color-code-block-light))] dark:bg-[rgb(var(--color-code-block-dark))] overflow-x-auto", style: "font-variant-ligatures: none", children: [!title && (_jsx("div", { class: "absolute top-3 right-4 z-10", children: _jsx(CopyButton, {}) })), _jsx("div", { class: "font-mono whitespace-pre text-xs leading-[1.35rem]", dangerouslySetInnerHTML: { __html: html } })] })] }));
|
|
35
|
+
return _jsx(ExampleVariantsCard, { variants: [variant], title: title });
|
|
15
36
|
}
|
package/dist/config.d.ts
CHANGED
|
@@ -36,6 +36,12 @@ export interface ChangelogConfig {
|
|
|
36
36
|
}
|
|
37
37
|
export interface SourceyConfig {
|
|
38
38
|
name?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Separator inserted between the page title and the site name in `<title>`/OG
|
|
41
|
+
* metadata, and between fields in generated API search snippets.
|
|
42
|
+
* @default " - "
|
|
43
|
+
*/
|
|
44
|
+
titleSeparator?: string;
|
|
39
45
|
/** Public site origin for absolute feeds, OG metadata, and canonical URLs (e.g. "https://docs.example.com"). */
|
|
40
46
|
siteUrl?: string;
|
|
41
47
|
/** Public path prefix when the docs are served from a subpath (e.g. "/reference"). */
|
|
@@ -291,6 +297,7 @@ export interface ResolvedChangelogConfig {
|
|
|
291
297
|
}
|
|
292
298
|
export interface ResolvedConfig {
|
|
293
299
|
name: string;
|
|
300
|
+
titleSeparator: string;
|
|
294
301
|
siteUrl?: string;
|
|
295
302
|
baseUrl: string;
|
|
296
303
|
prettyUrls: PrettyUrls;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -56,6 +56,7 @@ export function configFromSpec(specPath) {
|
|
|
56
56
|
const absSpec = resolve(specPath);
|
|
57
57
|
return {
|
|
58
58
|
name: "API Reference",
|
|
59
|
+
titleSeparator: " - ",
|
|
59
60
|
siteUrl: undefined,
|
|
60
61
|
baseUrl: "",
|
|
61
62
|
prettyUrls: false,
|
|
@@ -95,6 +96,7 @@ export async function resolveConfigFromRaw(raw, configDir) {
|
|
|
95
96
|
const changelog = resolveChangelog(raw.changelog);
|
|
96
97
|
return {
|
|
97
98
|
name: raw.name ?? "",
|
|
99
|
+
titleSeparator: raw.titleSeparator ?? " - ",
|
|
98
100
|
siteUrl: normalizeSiteUrl(raw.siteUrl),
|
|
99
101
|
baseUrl: normalizeBaseUrl(raw.baseUrl),
|
|
100
102
|
prettyUrls: resolvePrettyUrls(raw.prettyUrls),
|
|
@@ -10,5 +10,5 @@ export declare function rewriteGeneratedDoxygenIncludePath(includePath: string):
|
|
|
10
10
|
export declare function rewriteGeneratedDoxygenMarkdown(markdown: string): string;
|
|
11
11
|
export declare function rewriteGeneratedDoxygenHref(href: string): string;
|
|
12
12
|
export declare function rewriteGeneratedDoxygenHtmlLinks(html: string): string;
|
|
13
|
-
export declare function loadDoxygenTab(config: ResolvedDoxygenConfig, tabSlug: string, tabLabel: string): Promise<DoxygenResult>;
|
|
13
|
+
export declare function loadDoxygenTab(config: ResolvedDoxygenConfig, tabSlug: string, tabLabel: string, titleSeparator: string): Promise<DoxygenResult>;
|
|
14
14
|
//# sourceMappingURL=doxygen-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doxygen-loader.d.ts","sourceRoot":"","sources":["../../src/core/doxygen-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAO7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAM1E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzF;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAoB9E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOxE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBrE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"doxygen-loader.d.ts","sourceRoot":"","sources":["../../src/core/doxygen-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAO7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAM1E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzF;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAoB9E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOxE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBrE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CA6GxB"}
|
|
@@ -53,13 +53,14 @@ export function rewriteGeneratedDoxygenHtmlLinks(html) {
|
|
|
53
53
|
return `<code>${label}</code>`;
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
export async function loadDoxygenTab(config, tabSlug, tabLabel) {
|
|
56
|
+
export async function loadDoxygenTab(config, tabSlug, tabLabel, titleSeparator) {
|
|
57
57
|
let generated;
|
|
58
58
|
try {
|
|
59
59
|
generated = await generate({
|
|
60
60
|
directory: config.xml,
|
|
61
61
|
language: config.language,
|
|
62
62
|
sourceUrl: config.sourceUrl,
|
|
63
|
+
titleSeparator,
|
|
63
64
|
quiet: true,
|
|
64
65
|
});
|
|
65
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rustdoc-loader.d.ts","sourceRoot":"","sources":["../../src/core/rustdoc-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAa1E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,wBAA6B,GACzC,OAAO,CAAC,mBAAmB,CAAC,CA0F9B;
|
|
1
|
+
{"version":3,"file":"rustdoc-loader.d.ts","sourceRoot":"","sources":["../../src/core/rustdoc-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAa1E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,wBAA6B,GACzC,OAAO,CAAC,mBAAmB,CAAC,CA0F9B;AA8ZD,eAAO,MAAM,sBAAsB,wYAuBzB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { runIntrospector, RustdocIntrospectorError } from "./rustdoc-introspector.js";
|
|
2
|
-
import { itemAnchor, renderModulePage } from "./rustdoc-render.js";
|
|
2
|
+
import { itemAnchor, itemDisplayName, renderModulePage } from "./rustdoc-render.js";
|
|
3
3
|
import { renderCodeBlock } from "../utils/markdown.js";
|
|
4
4
|
/** Load a rustdoc tab from the configured manifest or snapshot. */
|
|
5
5
|
export async function loadRustdocTab(config, tabSlug, tabLabel, sourceLinks = {}) {
|
|
@@ -247,6 +247,8 @@ function signatureForItem(item) {
|
|
|
247
247
|
return `macro_rules! ${item.name ?? ""}`;
|
|
248
248
|
case "proc_macro":
|
|
249
249
|
return `#[${item.inner.macro_kind === "derive" ? "derive" : "proc_macro"}] ${item.name ?? ""}`;
|
|
250
|
+
case "use":
|
|
251
|
+
return item.inner.is_glob ? `pub use ${item.inner.source}::*;` : `pub use ${item.inner.source};`;
|
|
250
252
|
default:
|
|
251
253
|
return item.name ? item.path.join("::") : null;
|
|
252
254
|
}
|
|
@@ -297,23 +299,24 @@ function itemKindLabel(item) {
|
|
|
297
299
|
}
|
|
298
300
|
function collectHeadings(items) {
|
|
299
301
|
return items
|
|
300
|
-
.filter((i) => i.name)
|
|
301
302
|
.map((i) => ({
|
|
302
303
|
id: itemAnchor(i),
|
|
303
|
-
text: i
|
|
304
|
+
text: itemDisplayName(i),
|
|
304
305
|
level: 3,
|
|
305
|
-
}))
|
|
306
|
+
}))
|
|
307
|
+
.filter((heading) => heading.text);
|
|
306
308
|
}
|
|
307
309
|
function collectSearchEntries(items, moduleTitle) {
|
|
308
310
|
const out = [];
|
|
309
311
|
for (const item of items) {
|
|
310
|
-
|
|
312
|
+
const name = itemDisplayName(item);
|
|
313
|
+
if (!name)
|
|
311
314
|
continue;
|
|
312
|
-
const sig = signatureForItem(item) ??
|
|
315
|
+
const sig = signatureForItem(item) ?? name;
|
|
313
316
|
const docs = item.docs_markdown ?? "";
|
|
314
317
|
const anchor = itemAnchor(item);
|
|
315
318
|
out.push({
|
|
316
|
-
title: `${itemKindLabel(item).replace("rust ", "")} ${
|
|
319
|
+
title: `${itemKindLabel(item).replace("rust ", "")} ${name}`,
|
|
317
320
|
content: `${sig}\n${docs}`.slice(0, 500),
|
|
318
321
|
anchor,
|
|
319
322
|
category: itemKindLabel(item),
|
|
@@ -30,6 +30,12 @@ export declare function encodeImplAnchor(traitName: string, forType: string): st
|
|
|
30
30
|
/** Encode a single segment for anchor-ID use: <,>,space and special chars escaped rustdoc-style. */
|
|
31
31
|
export declare function encodeGenericSegment(value: string): string;
|
|
32
32
|
export declare function itemAnchor(item: Item): string;
|
|
33
|
+
/**
|
|
34
|
+
* Heading/anchor display name for an item. Re-exports (`use`) carry their name
|
|
35
|
+
* on `inner`, not the top-level `item.name` which rustdoc leaves null, so we
|
|
36
|
+
* derive it from the imported name or the re-exported path (with `::*` for globs).
|
|
37
|
+
*/
|
|
38
|
+
export declare function itemDisplayName(item: Item): string;
|
|
33
39
|
/** Multi-line signature renderer with rustdoc break rules. */
|
|
34
40
|
export declare function renderSignature(signature: Signature, ctx: RenderContext): string;
|
|
35
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rustdoc-render.d.ts","sourceRoot":"","sources":["../../src/core/rustdoc-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,kEAAkE;IAClE,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA2C7C;
|
|
1
|
+
{"version":3,"file":"rustdoc-render.d.ts","sourceRoot":"","sources":["../../src/core/rustdoc-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,kEAAkE;IAClE,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA2C7C;AAoBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAMlD;AAQD,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAMhF;AAuJD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,GAAG,EAAE,aAAa,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAiCxC;AA2BD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAqC1D;AAmBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAIxE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAO9E;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CA0BrE;AA6PD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,EACZ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAC5B,GAAG,EAAE,MAAM,GACV,MAAM,CAsCR;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAWxE;AAuBD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAO5C;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,IAAI,EAAE,EACb,GAAG,EAAE,aAAa,GACjB,gBAAgB,CA4BlB;AAmED,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC"}
|
|
@@ -58,7 +58,7 @@ export function itemAnchor(item) {
|
|
|
58
58
|
case "struct_field":
|
|
59
59
|
return `structfield.${slug(item.name)}`;
|
|
60
60
|
case "use":
|
|
61
|
-
return `reexport.${slug(item.
|
|
61
|
+
return `reexport.${slug(useBaseName(item.inner))}`;
|
|
62
62
|
case "module":
|
|
63
63
|
return `mod.${slug(item.name)}`;
|
|
64
64
|
case "impl":
|
|
@@ -83,6 +83,22 @@ function slug(name) {
|
|
|
83
83
|
return "";
|
|
84
84
|
return name;
|
|
85
85
|
}
|
|
86
|
+
/** Base name of a re-export: the imported name, or the last path segment. */
|
|
87
|
+
function useBaseName(inner) {
|
|
88
|
+
return inner.name || (inner.source.split("::").filter(Boolean).pop() ?? inner.source);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Heading/anchor display name for an item. Re-exports (`use`) carry their name
|
|
92
|
+
* on `inner`, not the top-level `item.name` which rustdoc leaves null, so we
|
|
93
|
+
* derive it from the imported name or the re-exported path (with `::*` for globs).
|
|
94
|
+
*/
|
|
95
|
+
export function itemDisplayName(item) {
|
|
96
|
+
if (item.inner.kind === "use") {
|
|
97
|
+
const base = useBaseName(item.inner);
|
|
98
|
+
return item.inner.is_glob ? `${base}::*` : base;
|
|
99
|
+
}
|
|
100
|
+
return item.name ?? "";
|
|
101
|
+
}
|
|
86
102
|
// ---------------------------------------------------------------------------
|
|
87
103
|
// Signature formatter
|
|
88
104
|
// ---------------------------------------------------------------------------
|
|
@@ -366,7 +382,7 @@ export function renderItemHtml(item, ctx) {
|
|
|
366
382
|
apiSectionAnchor({
|
|
367
383
|
level: 4,
|
|
368
384
|
id: anchor,
|
|
369
|
-
text: item
|
|
385
|
+
text: itemDisplayName(item) || anchor,
|
|
370
386
|
className: "code-header rust-item-header",
|
|
371
387
|
}),
|
|
372
388
|
signatureHtml,
|
|
@@ -604,6 +620,13 @@ function fallbackSignatureText(item) {
|
|
|
604
620
|
return `macro_rules! ${item.name ?? ""}`;
|
|
605
621
|
case "proc_macro":
|
|
606
622
|
return `#[${item.inner.macro_kind === "derive" ? "derive" : "proc_macro"}] ${item.name ?? ""}`;
|
|
623
|
+
case "use": {
|
|
624
|
+
const { source, name, is_glob } = item.inner;
|
|
625
|
+
if (is_glob)
|
|
626
|
+
return `pub use ${source}::*;`;
|
|
627
|
+
const lastSegment = source.split("::").filter(Boolean).pop();
|
|
628
|
+
return name && name !== lastSegment ? `pub use ${source} as ${name};` : `pub use ${source};`;
|
|
629
|
+
}
|
|
607
630
|
default:
|
|
608
631
|
return null;
|
|
609
632
|
}
|
|
@@ -703,9 +726,9 @@ export function renderModulePage(module, items, ctx) {
|
|
|
703
726
|
sidebar.push({
|
|
704
727
|
label: group,
|
|
705
728
|
items: members
|
|
706
|
-
.
|
|
707
|
-
.
|
|
708
|
-
.
|
|
729
|
+
.map((m) => ({ text: itemDisplayName(m), anchor: itemAnchor(m) }))
|
|
730
|
+
.filter((entry) => entry.text)
|
|
731
|
+
.sort((a, b) => a.text.localeCompare(b.text)),
|
|
709
732
|
});
|
|
710
733
|
}
|
|
711
734
|
return {
|
package/dist/dev-server.js
CHANGED
|
@@ -205,7 +205,7 @@ export async function startDevServer(options) {
|
|
|
205
205
|
if (!tab || tab.source.kind !== "doxygen")
|
|
206
206
|
return;
|
|
207
207
|
log(`rebuilding doxygen tab "${tab.label}"`);
|
|
208
|
-
const { pages, navTab } = await loadDoxygenTab(tab.source.config, tab.slug, tab.label);
|
|
208
|
+
const { pages, navTab } = await loadDoxygenTab(tab.source.config, tab.slug, tab.label, config.titleSeparator);
|
|
209
209
|
if (cache !== snapshot)
|
|
210
210
|
return;
|
|
211
211
|
for (const [key, page] of data.pageMap) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/renderer/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,WAAW,0CAA+C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,cAAc,yCAGzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,0CAA+C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,WAAW,uCAA4C,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3F,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,eAAO,MAAM,WAAW,sCAA2C,CAAC"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/renderer/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,WAAW,0CAA+C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,cAAc,yCAGzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,0CAA+C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,WAAW,uCAA4C,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3F,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,eAAO,MAAM,WAAW,sCAA2C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-assembly.d.ts","sourceRoot":"","sources":["../src/site-assembly.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAkB,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAIxF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAiB,QAAQ,EAAgB,MAAM,2BAA2B,CAAC;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IAC1C,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;IAC9C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAiKhF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAKzE;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAGlF;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAGtF;AAUD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,uBAAuB,GAAG,MAAM,CAMnF;AAUD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9B,IAAI,EAAE,WAAW,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAoBzB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GACrB,IAAI,CAsBN;AAaD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,mBAAmB,EAAE,EAClC,eAAe,UAAQ,GACtB,IAAI,CAYN;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAIjF;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAI9E;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAEvF;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"site-assembly.d.ts","sourceRoot":"","sources":["../src/site-assembly.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAkB,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAIxF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAiB,QAAQ,EAAgB,MAAM,2BAA2B,CAAC;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IAC1C,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;IAC9C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAiKhF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAKzE;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAGlF;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAGtF;AAUD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,uBAAuB,GAAG,MAAM,CAMnF;AAUD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9B,IAAI,EAAE,WAAW,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAoBzB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GACrB,IAAI,CAsBN;AAaD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,mBAAmB,EAAE,EAClC,eAAe,UAAQ,GACtB,IAAI,CAYN;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAIjF;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAI9E;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAEvF;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA6BjF;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAUlD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA6FpF"}
|
package/dist/site-assembly.js
CHANGED
|
@@ -38,7 +38,7 @@ export async function assembleSite(config) {
|
|
|
38
38
|
continue;
|
|
39
39
|
}
|
|
40
40
|
if (tab.source.kind === "doxygen") {
|
|
41
|
-
const { pages, navTab } = await loadDoxygenTab(tab.source.config, tab.slug, tab.label);
|
|
41
|
+
const { pages, navTab } = await loadDoxygenTab(tab.source.config, tab.slug, tab.label, config.titleSeparator);
|
|
42
42
|
for (const [slug, page] of pages) {
|
|
43
43
|
const outputPath = pageOutputPath(tab.slug, slug, config.prettyUrls);
|
|
44
44
|
pageMap.set(outputPath, {
|
|
@@ -271,6 +271,7 @@ export async function buildSiteConfig(config) {
|
|
|
271
271
|
const customCSS = await loadCustomCSS(config.theme.css);
|
|
272
272
|
return {
|
|
273
273
|
name: config.name,
|
|
274
|
+
titleSeparator: config.titleSeparator,
|
|
274
275
|
siteUrl: config.siteUrl,
|
|
275
276
|
baseUrl: config.baseUrl,
|
|
276
277
|
prettyUrls: config.prettyUrls,
|
|
@@ -1425,7 +1425,9 @@ h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
|
|
|
1425
1425
|
position: relative;
|
|
1426
1426
|
display: flex;
|
|
1427
1427
|
flex-direction: column;
|
|
1428
|
-
|
|
1428
|
+
/* Visible so an open header dropdown menu is not clipped by the card; the
|
|
1429
|
+
code body's rounded corners are clipped by .code-card-body instead. */
|
|
1430
|
+
overflow: visible;
|
|
1429
1431
|
border-radius: var(--radius);
|
|
1430
1432
|
border: 1px solid rgb(var(--color-stone-950) / 0.1);
|
|
1431
1433
|
}
|
|
@@ -1435,11 +1437,21 @@ h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
|
|
|
1435
1437
|
|
|
1436
1438
|
#sourcey .code-group > div:first-child {
|
|
1437
1439
|
background: rgb(var(--color-stone-50));
|
|
1440
|
+
border-top-left-radius: var(--radius);
|
|
1441
|
+
border-top-right-radius: var(--radius);
|
|
1438
1442
|
}
|
|
1439
1443
|
.dark #sourcey .code-group > div:first-child {
|
|
1440
1444
|
background: rgb(255 255 255 / 0.03);
|
|
1441
1445
|
}
|
|
1442
1446
|
|
|
1447
|
+
/* Clips the code panels' rounded bottom corners now that the card itself does
|
|
1448
|
+
not clip. Horizontal code scrolling stays on the inner body element. */
|
|
1449
|
+
#sourcey .code-card-body {
|
|
1450
|
+
overflow: hidden;
|
|
1451
|
+
border-bottom-left-radius: var(--radius);
|
|
1452
|
+
border-bottom-right-radius: var(--radius);
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1443
1455
|
/* ── Selection ─────────────────────────────────────────────────────── */
|
|
1444
1456
|
|
|
1445
1457
|
#sourcey ::selection { background: rgb(var(--color-primary) / 0.12); }
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { MediaTypeContent, NormalizedSchema } from "../core/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* A single, render-ready example. One media type can contribute several
|
|
4
|
+
* (named `examples`); each becomes its own variant so the UI can offer a
|
|
5
|
+
* switcher between them.
|
|
6
|
+
*/
|
|
7
|
+
export interface ExampleVariant {
|
|
8
|
+
/** Label shown in the variant switcher (example name, media type, or "Example"). */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Optional caption from a named example's `summary`/`description`. */
|
|
11
|
+
summary?: string;
|
|
12
|
+
/** Media type the example came from (e.g. `application/json`). */
|
|
13
|
+
mediaType: string;
|
|
14
|
+
/** Syntax-highlighted HTML body, empty when the example is external-only. */
|
|
15
|
+
html: string;
|
|
16
|
+
/** Raw text body (for copy + tests), or the URL for an external example. */
|
|
17
|
+
raw: string;
|
|
18
|
+
/** Set when the example is referenced via `externalValue` rather than inline. */
|
|
19
|
+
externalValue?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Build a single variant from a schema, falling back to a generated example. */
|
|
22
|
+
export declare function variantFromSchema(schema: NormalizedSchema, label?: string, mediaType?: string): ExampleVariant | null;
|
|
23
|
+
/**
|
|
24
|
+
* Collect every render-ready example for a content map (a response, request
|
|
25
|
+
* body, or parameter). Provided examples win over the schema: named `examples`
|
|
26
|
+
* first, then a single `example`, and only then a schema-generated fallback.
|
|
27
|
+
* Every media type contributes, so multi-content-type responses surface them
|
|
28
|
+
* all rather than just the first.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildExampleVariants(content?: Record<string, MediaTypeContent>): ExampleVariant[];
|
|
31
|
+
//# sourceMappingURL=example-variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example-variants.d.ts","sourceRoot":"","sources":["../../src/utils/example-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAI1F;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA2DD,iFAAiF;AACjF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,KAAK,SAAY,EACjB,SAAS,SAAqB,GAC7B,cAAc,GAAG,IAAI,CAIvB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACzC,cAAc,EAAE,CAiClB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { generateExample } from "./example-generator.js";
|
|
2
|
+
import { highlightCode } from "./highlighter.js";
|
|
3
|
+
/** Map a media type to a highlighter language, defaulting to JSON. */
|
|
4
|
+
function langForMediaType(mediaType) {
|
|
5
|
+
const m = mediaType.toLowerCase();
|
|
6
|
+
if (m.includes("xml"))
|
|
7
|
+
return "xml";
|
|
8
|
+
if (m.includes("yaml") || m.includes("yml"))
|
|
9
|
+
return "yaml";
|
|
10
|
+
if (m.includes("html"))
|
|
11
|
+
return "html";
|
|
12
|
+
if (m.includes("json"))
|
|
13
|
+
return "json";
|
|
14
|
+
if (m.startsWith("text/"))
|
|
15
|
+
return "text";
|
|
16
|
+
return "json";
|
|
17
|
+
}
|
|
18
|
+
/** Build a variant from a concrete example value. */
|
|
19
|
+
function variantFromValue(value, opts) {
|
|
20
|
+
const lang = langForMediaType(opts.mediaType);
|
|
21
|
+
// JSON media encodes any value (a bare string "hi" renders as "hi"); other
|
|
22
|
+
// media types keep a provided string body verbatim (pre-formatted XML/text).
|
|
23
|
+
const raw = typeof value === "string" && lang !== "json"
|
|
24
|
+
? value
|
|
25
|
+
: JSON.stringify(value, null, 2);
|
|
26
|
+
return {
|
|
27
|
+
label: opts.label,
|
|
28
|
+
summary: opts.summary,
|
|
29
|
+
mediaType: opts.mediaType,
|
|
30
|
+
raw,
|
|
31
|
+
html: highlightCode(raw, lang),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Build a variant from a named OpenAPI example object. */
|
|
35
|
+
function variantFromExample(name, example, mediaType) {
|
|
36
|
+
if (example.value !== undefined) {
|
|
37
|
+
return variantFromValue(example.value, {
|
|
38
|
+
label: example.summary ?? name,
|
|
39
|
+
summary: example.description,
|
|
40
|
+
mediaType,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (example.externalValue) {
|
|
44
|
+
return {
|
|
45
|
+
label: example.summary ?? name,
|
|
46
|
+
summary: example.description,
|
|
47
|
+
mediaType,
|
|
48
|
+
raw: example.externalValue,
|
|
49
|
+
html: "",
|
|
50
|
+
externalValue: example.externalValue,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
/** Build a single variant from a schema, falling back to a generated example. */
|
|
56
|
+
export function variantFromSchema(schema, label = "Example", mediaType = "application/json") {
|
|
57
|
+
const value = schema.example ?? generateExample(schema);
|
|
58
|
+
if (value === undefined)
|
|
59
|
+
return null;
|
|
60
|
+
return variantFromValue(value, { label, mediaType });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Collect every render-ready example for a content map (a response, request
|
|
64
|
+
* body, or parameter). Provided examples win over the schema: named `examples`
|
|
65
|
+
* first, then a single `example`, and only then a schema-generated fallback.
|
|
66
|
+
* Every media type contributes, so multi-content-type responses surface them
|
|
67
|
+
* all rather than just the first.
|
|
68
|
+
*/
|
|
69
|
+
export function buildExampleVariants(content) {
|
|
70
|
+
if (!content)
|
|
71
|
+
return [];
|
|
72
|
+
const entries = Object.entries(content);
|
|
73
|
+
const multiMedia = entries.length > 1;
|
|
74
|
+
const variants = [];
|
|
75
|
+
for (const [mediaType, media] of entries) {
|
|
76
|
+
const named = media.examples ? Object.entries(media.examples) : [];
|
|
77
|
+
if (named.length) {
|
|
78
|
+
for (const [name, example] of named) {
|
|
79
|
+
const variant = variantFromExample(name, example, mediaType);
|
|
80
|
+
if (variant)
|
|
81
|
+
variants.push(variant);
|
|
82
|
+
}
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (media.example !== undefined) {
|
|
86
|
+
variants.push(variantFromValue(media.example, {
|
|
87
|
+
label: multiMedia ? mediaType : "Example",
|
|
88
|
+
mediaType,
|
|
89
|
+
}));
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (media.schema) {
|
|
93
|
+
const variant = variantFromSchema(media.schema, multiMedia ? mediaType : "Example", mediaType);
|
|
94
|
+
if (variant)
|
|
95
|
+
variants.push(variant);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return variants;
|
|
99
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sourcey",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.3",
|
|
4
4
|
"description": "Precision documentation from OpenAPI, MCP, Doxygen, godoc, rustdoc, and Markdown. Static HTML you own.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"js-yaml": "^4.1.0",
|
|
47
47
|
"marked": "^15.0.0",
|
|
48
48
|
"mcp-parser": "^0.4.0",
|
|
49
|
-
"moxygen": "^2.1.
|
|
49
|
+
"moxygen": "^2.1.10",
|
|
50
50
|
"preact": "^10.28.4",
|
|
51
51
|
"preact-render-to-string": "^6.6.6",
|
|
52
52
|
"sanitize-html": "^2.17.4",
|