sourcey 3.5.9 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -117
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +98 -0
- package/dist/adapters/mkdocs.d.ts +5 -0
- package/dist/adapters/mkdocs.d.ts.map +1 -0
- package/dist/adapters/mkdocs.js +367 -0
- package/dist/adapters/shared.d.ts +12 -0
- package/dist/adapters/shared.d.ts.map +1 -0
- package/dist/adapters/shared.js +134 -0
- package/dist/adapters/types.d.ts +68 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +1 -0
- package/dist/client/search.js +77 -8
- package/dist/client/sidebar.js +169 -0
- package/dist/components/layout/Head.js +16 -3
- package/dist/components/layout/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/Sidebar.js +1 -1
- package/dist/components/layout/TableOfContents.d.ts.map +1 -1
- package/dist/components/layout/TableOfContents.js +4 -2
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +79 -141
- package/dist/core/doxygen-loader.d.ts.map +1 -1
- package/dist/core/doxygen-loader.js +2 -0
- package/dist/core/markdown-loader.d.ts +14 -0
- package/dist/core/markdown-loader.d.ts.map +1 -1
- package/dist/core/markdown-loader.js +63 -22
- package/dist/core/navigation.d.ts.map +1 -1
- package/dist/core/navigation.js +8 -7
- package/dist/core/search-indexer.d.ts +10 -0
- package/dist/core/search-indexer.d.ts.map +1 -1
- package/dist/core/search-indexer.js +5 -0
- package/dist/dev-server.d.ts.map +1 -1
- package/dist/dev-server.js +60 -33
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +19 -14
- package/dist/site-assembly.d.ts.map +1 -1
- package/dist/site-assembly.js +107 -25
- package/dist/utils/markdown.d.ts.map +1 -1
- package/dist/utils/markdown.js +15 -4
- package/dist/vite-plugin.d.ts +2 -0
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.js +71 -1
- package/package.json +4 -3
package/dist/client/search.js
CHANGED
|
@@ -21,16 +21,41 @@
|
|
|
21
21
|
var url = searchMeta.getAttribute('content');
|
|
22
22
|
fetch(url).then(function (r) { return r.json(); }).then(function (data) {
|
|
23
23
|
entries = data.map(function (e) {
|
|
24
|
+
var title = e.title || '';
|
|
25
|
+
var qualifiedName = e.qualifiedName || '';
|
|
26
|
+
var owner = e.owner || '';
|
|
27
|
+
var tab = e.tab || '';
|
|
24
28
|
return {
|
|
25
29
|
url: e.url,
|
|
26
30
|
method: e.method || '',
|
|
27
31
|
path: e.path || '',
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
title: title,
|
|
33
|
+
summary: qualifiedName || title,
|
|
34
|
+
tag: owner ? owner : tab,
|
|
30
35
|
content: e.content || '',
|
|
31
36
|
category: e.category || '',
|
|
32
37
|
featured: !!e.featured,
|
|
33
|
-
|
|
38
|
+
symbolKind: e.symbolKind || '',
|
|
39
|
+
owner: owner,
|
|
40
|
+
ownerKind: e.ownerKind || '',
|
|
41
|
+
namespace: e.namespace || '',
|
|
42
|
+
qualifiedName: qualifiedName,
|
|
43
|
+
titleLower: title.toLowerCase(),
|
|
44
|
+
pathLower: (e.path || '').toLowerCase(),
|
|
45
|
+
qualifiedLower: qualifiedName.toLowerCase(),
|
|
46
|
+
ownerLower: owner.toLowerCase(),
|
|
47
|
+
searchText: [
|
|
48
|
+
e.method || '',
|
|
49
|
+
e.path || '',
|
|
50
|
+
title,
|
|
51
|
+
qualifiedName,
|
|
52
|
+
owner,
|
|
53
|
+
e.ownerKind || '',
|
|
54
|
+
e.namespace || '',
|
|
55
|
+
e.symbolKind || '',
|
|
56
|
+
e.content || '',
|
|
57
|
+
tab
|
|
58
|
+
].join(' ').toLowerCase()
|
|
34
59
|
};
|
|
35
60
|
});
|
|
36
61
|
indexLoaded = true;
|
|
@@ -84,20 +109,64 @@
|
|
|
84
109
|
filtered = featured.concat(rest).slice(0, 30);
|
|
85
110
|
} else {
|
|
86
111
|
var terms = q.split(/\s+/);
|
|
87
|
-
filtered = entries.
|
|
88
|
-
return
|
|
112
|
+
filtered = entries.map(function (e) {
|
|
113
|
+
return { entry: e, score: scoreEntry(e, q, terms) };
|
|
114
|
+
}).filter(function (result) {
|
|
115
|
+
return result.score > 0;
|
|
89
116
|
});
|
|
90
|
-
|
|
91
|
-
|
|
117
|
+
var categoryOrder = {
|
|
118
|
+
Pages: 0,
|
|
119
|
+
Endpoints: 1,
|
|
120
|
+
Models: 2,
|
|
121
|
+
Functions: 3,
|
|
122
|
+
Types: 4,
|
|
123
|
+
Enums: 5,
|
|
124
|
+
'Enum Values': 6,
|
|
125
|
+
Variables: 7,
|
|
126
|
+
Friends: 8,
|
|
127
|
+
Properties: 9,
|
|
128
|
+
Members: 10,
|
|
129
|
+
Sections: 20
|
|
130
|
+
};
|
|
92
131
|
filtered.sort(function (a, b) {
|
|
93
|
-
|
|
132
|
+
if (b.score !== a.score) return b.score - a.score;
|
|
133
|
+
return (categoryOrder[a.entry.category] || 19) - (categoryOrder[b.entry.category] || 19);
|
|
94
134
|
});
|
|
135
|
+
filtered = filtered.map(function (result) { return result.entry; }).slice(0, 50);
|
|
95
136
|
}
|
|
96
137
|
|
|
97
138
|
activeIndex = filtered.length ? 0 : -1;
|
|
98
139
|
render();
|
|
99
140
|
}
|
|
100
141
|
|
|
142
|
+
function scoreEntry(e, q, terms) {
|
|
143
|
+
if (!terms.every(function (t) { return e.searchText.indexOf(t) !== -1; })) return 0;
|
|
144
|
+
|
|
145
|
+
var compactQuery = q.replace(/\s+/g, '');
|
|
146
|
+
var qualified = e.qualifiedLower || '';
|
|
147
|
+
var title = e.titleLower || '';
|
|
148
|
+
var path = e.pathLower || '';
|
|
149
|
+
var owner = e.ownerLower || '';
|
|
150
|
+
var score = 1;
|
|
151
|
+
|
|
152
|
+
if (qualified && qualified === compactQuery) score += 1200;
|
|
153
|
+
if (title && title === q) score += 900;
|
|
154
|
+
if (path && path === q) score += 850;
|
|
155
|
+
if (qualified && qualified.endsWith('::' + compactQuery)) score += 780;
|
|
156
|
+
if (owner && compactQuery === owner + '::' + title) score += 760;
|
|
157
|
+
if (qualified && compactQuery.indexOf('::') !== -1 && qualified.indexOf(compactQuery) !== -1) score += 700;
|
|
158
|
+
if (title && title.indexOf(q) === 0) score += 500;
|
|
159
|
+
if (qualified && qualified.indexOf(compactQuery) !== -1) score += 420;
|
|
160
|
+
if (owner && owner.indexOf(compactQuery) !== -1) score += 240;
|
|
161
|
+
if (path && path.indexOf(q) !== -1) score += 180;
|
|
162
|
+
if (e.content.toLowerCase().indexOf(q) !== -1) score += 80;
|
|
163
|
+
|
|
164
|
+
if (e.category === 'Sections') score -= 70;
|
|
165
|
+
if (e.symbolKind) score += 35;
|
|
166
|
+
if (e.featured) score += 20;
|
|
167
|
+
return score;
|
|
168
|
+
}
|
|
169
|
+
|
|
101
170
|
function render() {
|
|
102
171
|
var html = '';
|
|
103
172
|
var lastCategory = '';
|
package/dist/client/sidebar.js
CHANGED
|
@@ -4,7 +4,176 @@
|
|
|
4
4
|
// backdrop click, nav link click, Escape (native dialog behavior).
|
|
5
5
|
// Dropdown toggles list visibility for tab selection.
|
|
6
6
|
(function () {
|
|
7
|
+
function storageGet(key) {
|
|
8
|
+
try {
|
|
9
|
+
return window.sessionStorage.getItem(key);
|
|
10
|
+
} catch {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function storageSet(key, value) {
|
|
16
|
+
try {
|
|
17
|
+
window.sessionStorage.setItem(key, value);
|
|
18
|
+
} catch {
|
|
19
|
+
// Ignore blocked storage. Sidebar navigation still works normally.
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function storageRemove(key) {
|
|
24
|
+
try {
|
|
25
|
+
window.sessionStorage.removeItem(key);
|
|
26
|
+
} catch {
|
|
27
|
+
// Ignore blocked storage. Sidebar navigation still works normally.
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function normalizePath(pathname) {
|
|
32
|
+
var clean = (pathname || '/').replace(/\/+$/, '') || '/';
|
|
33
|
+
clean = clean.replace(/\/index(?:\.html)?$/, '') || '/';
|
|
34
|
+
clean = clean.replace(/\.html$/, '');
|
|
35
|
+
return clean || '/';
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function commonPath(paths) {
|
|
39
|
+
if (!paths.length) return null;
|
|
40
|
+
var parts = paths.map(function (path) {
|
|
41
|
+
return normalizePath(path).split('/').filter(Boolean);
|
|
42
|
+
});
|
|
43
|
+
var common = [];
|
|
44
|
+
|
|
45
|
+
for (var i = 0; i < parts[0].length; i++) {
|
|
46
|
+
var part = parts[0][i];
|
|
47
|
+
var allMatch = parts.every(function (segments) {
|
|
48
|
+
return segments[i] === part;
|
|
49
|
+
});
|
|
50
|
+
if (!allMatch) break;
|
|
51
|
+
common.push(part);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return '/' + common.join('/');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function navScope(nav) {
|
|
58
|
+
var paths = [];
|
|
59
|
+
nav.querySelectorAll('a.nav-link[href]').forEach(function (link) {
|
|
60
|
+
var href = link.getAttribute('href');
|
|
61
|
+
if (!href || href.startsWith('#')) return;
|
|
62
|
+
|
|
63
|
+
try {
|
|
64
|
+
var url = new URL(href, window.location.href);
|
|
65
|
+
if (url.origin === window.location.origin) {
|
|
66
|
+
paths.push(url.pathname);
|
|
67
|
+
}
|
|
68
|
+
} catch {
|
|
69
|
+
// Ignore malformed hrefs.
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
return commonPath(paths);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function searchIndexScope() {
|
|
77
|
+
var meta = document.querySelector('meta[name="sourcey-search"]');
|
|
78
|
+
var content = meta && meta.getAttribute('content');
|
|
79
|
+
if (!content) return null;
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
var url = new URL(content, window.location.href);
|
|
83
|
+
if (url.origin === window.location.origin) {
|
|
84
|
+
return normalizePath(url.pathname.replace(/\/search-index\.json$/, ''));
|
|
85
|
+
}
|
|
86
|
+
} catch {
|
|
87
|
+
// Ignore malformed metadata.
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function sidebarStorageKey(scroller, nav) {
|
|
94
|
+
var tab = scroller.getAttribute('data-sourcey-sidebar-tab') || 'default';
|
|
95
|
+
var scope = navScope(nav) || searchIndexScope() || normalizePath(window.location.pathname);
|
|
96
|
+
return 'sourcey:sidebar-scroll:v1:' + window.location.origin + scope + ':' + tab;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function clampSidebarScroll(scroller, top) {
|
|
100
|
+
var max = Math.max(0, scroller.scrollHeight - scroller.clientHeight);
|
|
101
|
+
return Math.max(0, Math.min(top, max));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function saveSidebarScroll(scroller, key) {
|
|
105
|
+
storageSet(key, String(Math.round(scroller.scrollTop || 0)));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function restoreSidebarScroll(scroller, key) {
|
|
109
|
+
var raw = storageGet(key);
|
|
110
|
+
if (raw === null) return false;
|
|
111
|
+
storageRemove(key);
|
|
112
|
+
|
|
113
|
+
var top = Number(raw);
|
|
114
|
+
if (!Number.isFinite(top) || top <= 0) return false;
|
|
115
|
+
|
|
116
|
+
function apply() {
|
|
117
|
+
scroller.scrollTop = clampSidebarScroll(scroller, top);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
apply();
|
|
121
|
+
requestAnimationFrame(apply);
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function revealActiveSidebarLink(nav) {
|
|
126
|
+
var active = nav.querySelector('.nav-link.active');
|
|
127
|
+
if (!active) return;
|
|
128
|
+
requestAnimationFrame(function () {
|
|
129
|
+
active.scrollIntoView({ block: 'nearest', behavior: 'auto' });
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function shouldSaveForNavigation(e, link) {
|
|
134
|
+
if (!link || e.defaultPrevented) return false;
|
|
135
|
+
if (e.button !== undefined && e.button !== 0) return false;
|
|
136
|
+
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return false;
|
|
137
|
+
if (link.hasAttribute('download')) return false;
|
|
138
|
+
|
|
139
|
+
var target = link.getAttribute('target');
|
|
140
|
+
if (target && target.toLowerCase() !== '_self') return false;
|
|
141
|
+
|
|
142
|
+
var href = link.getAttribute('href');
|
|
143
|
+
if (!href || href.startsWith('#')) return false;
|
|
144
|
+
|
|
145
|
+
try {
|
|
146
|
+
var url = new URL(href, window.location.href);
|
|
147
|
+
if (url.origin !== window.location.origin) return false;
|
|
148
|
+
if (url.pathname === window.location.pathname && url.search === window.location.search && url.hash) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
return url.protocol === 'http:' || url.protocol === 'https:';
|
|
152
|
+
} catch {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function initDesktopSidebarScroll() {
|
|
158
|
+
var scroller = document.querySelector('[data-sourcey-sidebar-scroll]');
|
|
159
|
+
var nav = document.getElementById('nav');
|
|
160
|
+
if (!scroller || !nav) return;
|
|
161
|
+
|
|
162
|
+
var key = sidebarStorageKey(scroller, nav);
|
|
163
|
+
var restored = restoreSidebarScroll(scroller, key);
|
|
164
|
+
if (!restored) revealActiveSidebarLink(nav);
|
|
165
|
+
|
|
166
|
+
nav.addEventListener('click', function (e) {
|
|
167
|
+
var link = e.target.closest('a[href]');
|
|
168
|
+
if (shouldSaveForNavigation(e, link)) {
|
|
169
|
+
saveSidebarScroll(scroller, key);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
7
174
|
function init() {
|
|
175
|
+
initDesktopSidebarScroll();
|
|
176
|
+
|
|
8
177
|
var dialog = document.getElementById('mobile-nav');
|
|
9
178
|
var openBtns = document.querySelectorAll('[data-drawer-slide]');
|
|
10
179
|
if (!dialog) return;
|
|
@@ -13,15 +13,15 @@ export function Head() {
|
|
|
13
13
|
: undefined;
|
|
14
14
|
const siteName = site.name || spec.info.title || "";
|
|
15
15
|
const pageTitle = page.kind === "markdown"
|
|
16
|
-
? (
|
|
16
|
+
? composePageTitle(page.markdown.title, siteName)
|
|
17
17
|
: page.kind === "changelog"
|
|
18
18
|
? (() => {
|
|
19
19
|
const baseTitle = changelogVersion
|
|
20
20
|
? `${changelogVersion.version ?? "Unreleased"} — ${page.changelog.title}`
|
|
21
21
|
: page.changelog.title;
|
|
22
|
-
return
|
|
22
|
+
return composePageTitle(baseTitle, siteName);
|
|
23
23
|
})()
|
|
24
|
-
:
|
|
24
|
+
: composePageTitle(siteName, "API Reference");
|
|
25
25
|
const pageDescription = page.kind === "markdown"
|
|
26
26
|
? page.markdown.description || pageTitle
|
|
27
27
|
: page.kind === "changelog"
|
|
@@ -58,3 +58,16 @@ export function Head() {
|
|
|
58
58
|
`;
|
|
59
59
|
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
60
|
}
|
|
61
|
+
function composePageTitle(title, siteName) {
|
|
62
|
+
if (!siteName)
|
|
63
|
+
return title;
|
|
64
|
+
if (!title)
|
|
65
|
+
return siteName;
|
|
66
|
+
return sameTitle(title, siteName) ? title : `${title} — ${siteName}`;
|
|
67
|
+
}
|
|
68
|
+
function sameTitle(left, right) {
|
|
69
|
+
return normalizeTitle(left) === normalizeTitle(right);
|
|
70
|
+
}
|
|
71
|
+
function normalizeTitle(value) {
|
|
72
|
+
return value.trim().replace(/\s+/g, " ").toLowerCase();
|
|
73
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/Sidebar.tsx"],"names":[],"mappings":"AA+FA;;GAEG;AACH,wBAAgB,OAAO,
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/Sidebar.tsx"],"names":[],"mappings":"AA+FA;;GAEG;AACH,wBAAgB,OAAO,wCA2GtB"}
|
|
@@ -58,7 +58,7 @@ export function Sidebar() {
|
|
|
58
58
|
const primaryAction = site.navbar.primary;
|
|
59
59
|
const groups = activeTab.groups;
|
|
60
60
|
const logoHref = site.logo?.href ?? `${base}${nav.tabs[0]?.href ?? ""}`;
|
|
61
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", { id: "sidebar", class: "z-20 hidden lg:block fixed bottom-0 right-auto w-[18rem]", style: "top: var(--header-height)", children: _jsx("div", { class: "absolute inset-0 z-10 overflow-auto pr-8 pb-10", children: _jsxs("div", { class: "relative text-sm leading-6", children: [_jsx("div", { class: "sticky top-0 h-8 z-10 bg-gradient-to-b from-[rgb(var(--color-background-light))] dark:from-[rgb(var(--color-background-dark))]" }), _jsx("nav", { id: "nav", role: "navigation", children: _jsx(NavGroups, { groups: groups, activePageSlug: nav.activePageSlug, base: base }) })] }) }) }), _jsxs("dialog", { id: "mobile-nav", class: "mobile-nav-dialog", children: [site.logo?.light && (_jsx("div", { class: "px-4 py-4 border-b border-[rgb(var(--color-gray-200)/0.7)] dark:border-[rgb(var(--color-gray-800)/0.5)] shrink-0", children: _jsx(Logo, { href: logoHref, logo: site.logo, height: "h-6" }) })), nav.tabs.length > 1 && (_jsx("div", { class: "pt-5 px-4 shrink-0", children: _jsxs("div", { class: "drawer-dropdown", children: [_jsxs("button", { id: "drawer-group-toggle", type: "button", class: "drawer-dropdown-trigger", "aria-expanded": "false", children: [_jsx("span", { class: "drawer-dropdown-label", children: activeTab.label }), _jsx(DropdownChevron, {})] }), _jsx("ul", { id: "drawer-group-list", class: "drawer-dropdown-list", style: "display:none", children: nav.tabs.map((tab) => (_jsx("li", { children: _jsx("a", { href: `${base}${tab.href}`, class: `drawer-dropdown-item${tab.slug === nav.activeTabSlug ? " active" : ""}`, children: tab.label }) }, tab.slug))) })] }) })), _jsx("nav", { class: "pt-5 pb-3 px-4 flex-1 overflow-y-auto", children: _jsx(NavGroups, { groups: groups, activePageSlug: nav.activePageSlug, base: base }) }), (links.length > 0 || primaryAction) && (_jsx("div", { class: "px-4 py-3 border-t border-[rgb(var(--color-gray-200)/0.7)] dark:border-[rgb(var(--color-gray-800)/0.5)] shrink-0", children: _jsxs("ul", { class: "space-y-3", children: [links.map((link) => {
|
|
61
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { id: "sidebar", class: "z-20 hidden lg:block fixed bottom-0 right-auto w-[18rem]", style: "top: var(--header-height)", children: _jsx("div", { class: "absolute inset-0 z-10 overflow-auto pr-8 pb-10", "data-sourcey-sidebar-scroll": true, "data-sourcey-sidebar-tab": nav.activeTabSlug || "default", children: _jsxs("div", { class: "relative text-sm leading-6", children: [_jsx("div", { class: "sticky top-0 h-8 z-10 bg-gradient-to-b from-[rgb(var(--color-background-light))] dark:from-[rgb(var(--color-background-dark))]" }), _jsx("nav", { id: "nav", role: "navigation", children: _jsx(NavGroups, { groups: groups, activePageSlug: nav.activePageSlug, base: base }) })] }) }) }), _jsxs("dialog", { id: "mobile-nav", class: "mobile-nav-dialog", children: [site.logo?.light && (_jsx("div", { class: "px-4 py-4 border-b border-[rgb(var(--color-gray-200)/0.7)] dark:border-[rgb(var(--color-gray-800)/0.5)] shrink-0", children: _jsx(Logo, { href: logoHref, logo: site.logo, height: "h-6" }) })), nav.tabs.length > 1 && (_jsx("div", { class: "pt-5 px-4 shrink-0", children: _jsxs("div", { class: "drawer-dropdown", children: [_jsxs("button", { id: "drawer-group-toggle", type: "button", class: "drawer-dropdown-trigger", "aria-expanded": "false", children: [_jsx("span", { class: "drawer-dropdown-label", children: activeTab.label }), _jsx(DropdownChevron, {})] }), _jsx("ul", { id: "drawer-group-list", class: "drawer-dropdown-list", style: "display:none", children: nav.tabs.map((tab) => (_jsx("li", { children: _jsx("a", { href: `${base}${tab.href}`, class: `drawer-dropdown-item${tab.slug === nav.activeTabSlug ? " active" : ""}`, children: tab.label }) }, tab.slug))) })] }) })), _jsx("nav", { class: "pt-5 pb-3 px-4 flex-1 overflow-y-auto", children: _jsx(NavGroups, { groups: groups, activePageSlug: nav.activePageSlug, base: base }) }), (links.length > 0 || primaryAction) && (_jsx("div", { class: "px-4 py-3 border-t border-[rgb(var(--color-gray-200)/0.7)] dark:border-[rgb(var(--color-gray-800)/0.5)] shrink-0", children: _jsxs("ul", { class: "space-y-3", children: [links.map((link) => {
|
|
62
62
|
const label = link.label ?? socialLabels[link.type] ?? link.href;
|
|
63
63
|
return (_jsx("li", { children: _jsxs("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", class: "flex items-center gap-2.5 text-[rgb(var(--color-gray-600))] hover:text-[rgb(var(--color-gray-900))] dark:text-[rgb(var(--color-gray-400))] dark:hover:text-[rgb(var(--color-gray-200))]", children: [link.type !== "link" && _jsx(SocialIcon, { type: link.type }), _jsx("span", { children: label })] }) }, link.href));
|
|
64
64
|
}), primaryAction && (_jsx("li", { children: _jsxs("a", { href: primaryAction.href, target: "_blank", class: "group relative flex items-center justify-center px-4 py-2 text-sm font-medium", children: [_jsx("span", { class: "absolute inset-0 bg-[rgb(var(--color-primary-dark))] rounded-lg group-hover:opacity-90" }), _jsx("span", { class: "z-10 text-white", children: primaryAction.label })] }) }))] }) }))] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../src/components/layout/TableOfContents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../src/components/layout/TableOfContents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AA2CjE,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,uCAuBxE"}
|
|
@@ -7,10 +7,12 @@ import { iconPath } from "../../utils/icons.js";
|
|
|
7
7
|
*/
|
|
8
8
|
const tocLink = "toc-item break-words block hover:text-[rgb(var(--color-gray-900))] dark:hover:text-[rgb(var(--color-gray-300))] dark:text-[rgb(var(--color-gray-400))] transition-colors";
|
|
9
9
|
function TocList({ headings }) {
|
|
10
|
-
// Group
|
|
10
|
+
// Group by the shallowest heading present. Moxygen C++ pages often use
|
|
11
|
+
// h1 for the page title and h3 for sections, with no h2 in between.
|
|
12
|
+
const rootLevel = Math.min(...headings.map((h) => h.level));
|
|
11
13
|
const groups = [];
|
|
12
14
|
for (const h of headings) {
|
|
13
|
-
if (h.level
|
|
15
|
+
if (h.level <= rootLevel) {
|
|
14
16
|
groups.push({ root: h, children: [] });
|
|
15
17
|
}
|
|
16
18
|
else if (groups.length) {
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { PrettyUrls } from "./site-url.js";
|
|
2
|
+
import type { MarkdownPreprocessor } from "./core/markdown-loader.js";
|
|
3
|
+
import type { ResolvedTabSource, SourceAdapter } from "./adapters/types.js";
|
|
2
4
|
export type { PrettyUrls } from "./site-url.js";
|
|
3
5
|
export type ThemePreset = "default" | "minimal" | "api-first";
|
|
4
6
|
export interface ThemeConfig {
|
|
@@ -88,6 +90,21 @@ export interface SourceyConfig {
|
|
|
88
90
|
};
|
|
89
91
|
}
|
|
90
92
|
export type DoxygenIndexStyle = "auto" | "rich" | "structured" | "flat" | "none";
|
|
93
|
+
export interface DoxygenSourceUrlInput {
|
|
94
|
+
path: string;
|
|
95
|
+
line?: string;
|
|
96
|
+
symbol?: string;
|
|
97
|
+
}
|
|
98
|
+
export interface DoxygenSourceUrlRoute {
|
|
99
|
+
/** Doxygen source path prefix. Longest matching prefix wins. */
|
|
100
|
+
prefix: string;
|
|
101
|
+
/**
|
|
102
|
+
* Base URL or template for this route. Omit or set false to suppress public
|
|
103
|
+
* links while still rendering the plain "Defined in path:line" location.
|
|
104
|
+
*/
|
|
105
|
+
url?: string | false;
|
|
106
|
+
}
|
|
107
|
+
export type DoxygenSourceUrlResolver = string | DoxygenSourceUrlRoute[] | ((input: DoxygenSourceUrlInput) => string | undefined);
|
|
91
108
|
export interface DoxygenConfig {
|
|
92
109
|
/** Path to Doxygen XML output directory */
|
|
93
110
|
xml: string;
|
|
@@ -104,6 +121,14 @@ export interface DoxygenConfig {
|
|
|
104
121
|
* - "none" or false: no index page, land on the first API page
|
|
105
122
|
*/
|
|
106
123
|
index?: DoxygenIndexStyle | false;
|
|
124
|
+
/**
|
|
125
|
+
* Base URL or template for source links in generated API pages.
|
|
126
|
+
* A plain URL is joined with the Doxygen file path and "#L<line>".
|
|
127
|
+
* Templates may use {path}, {fullPath}, and {line}. In route maps,
|
|
128
|
+
* {path} is the matched-prefix-relative path and {fullPath} is the original
|
|
129
|
+
* Doxygen path.
|
|
130
|
+
*/
|
|
131
|
+
sourceUrl?: DoxygenSourceUrlResolver;
|
|
107
132
|
}
|
|
108
133
|
export type GodocMode = "auto" | "live" | "snapshot";
|
|
109
134
|
export interface GodocGoEnv {
|
|
@@ -148,7 +173,11 @@ export interface TabConfig {
|
|
|
148
173
|
tab: string;
|
|
149
174
|
/** Custom URL slug for this tab. Defaults to slugified tab name. */
|
|
150
175
|
slug?: string;
|
|
176
|
+
/** Source adapter object, usually created with `mkdocs()`, `openapi()`, `markdown()`, `doxygen()`, `godoc()`, or `mcp()`. */
|
|
177
|
+
source?: SourceAdapter;
|
|
151
178
|
openapi?: string;
|
|
179
|
+
/** Path to a MkDocs mkdocs.yml/mkdocs.yaml file. Sourcey imports docs_dir and nav. */
|
|
180
|
+
mkdocs?: string;
|
|
152
181
|
groups?: GroupConfig[];
|
|
153
182
|
doxygen?: DoxygenConfig;
|
|
154
183
|
/** Path to an mcp.json file (MCP server snapshot). */
|
|
@@ -237,6 +266,7 @@ export interface ResolvedDoxygenConfig {
|
|
|
237
266
|
language: string;
|
|
238
267
|
groups: boolean;
|
|
239
268
|
index: DoxygenIndexStyle;
|
|
269
|
+
sourceUrl?: DoxygenSourceUrlResolver;
|
|
240
270
|
}
|
|
241
271
|
export interface ResolvedGodocConfig {
|
|
242
272
|
/** Absolute path to the Go module directory (containing go.mod). */
|
|
@@ -256,7 +286,9 @@ export interface ResolvedGodocConfig {
|
|
|
256
286
|
export interface ResolvedTab {
|
|
257
287
|
label: string;
|
|
258
288
|
slug: string;
|
|
289
|
+
source: ResolvedTabSource;
|
|
259
290
|
openapi?: string;
|
|
291
|
+
mkdocs?: string;
|
|
260
292
|
groups?: ResolvedGroup[];
|
|
261
293
|
doxygen?: ResolvedDoxygenConfig;
|
|
262
294
|
mcp?: string;
|
|
@@ -267,6 +299,12 @@ export interface ResolvedPage {
|
|
|
267
299
|
slug: string;
|
|
268
300
|
/** Absolute filesystem path to the .md/.mdx file */
|
|
269
301
|
file: string;
|
|
302
|
+
/** Optional navigation label supplied by a source format such as MkDocs. */
|
|
303
|
+
label?: string;
|
|
304
|
+
/** Optional source root used for source-format-relative includes and assets. */
|
|
305
|
+
sourceRoot?: string;
|
|
306
|
+
/** Optional source-adapter Markdown preprocessors. */
|
|
307
|
+
preprocess?: MarkdownPreprocessor[];
|
|
270
308
|
}
|
|
271
309
|
export interface ResolvedGroup {
|
|
272
310
|
label: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|