sourcey 3.5.10 → 3.6.1
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 +24 -97
- package/dist/adapters/index.d.ts +12 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +130 -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 +74 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +1 -0
- package/dist/cli.js +28 -34
- package/dist/client/search.js +213 -82
- package/dist/client/tabs.js +23 -0
- package/dist/components/layout/Head.js +17 -4
- package/dist/components/layout/TableOfContents.d.ts.map +1 -1
- package/dist/components/layout/TableOfContents.js +4 -2
- package/dist/components/openapi/Introduction.d.ts.map +1 -1
- package/dist/components/openapi/Introduction.js +16 -1
- package/dist/components/openapi/Security.d.ts.map +1 -1
- package/dist/components/openapi/Security.js +18 -2
- package/dist/config.d.ts +101 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +95 -143
- package/dist/core/api-rendering.d.ts +47 -0
- package/dist/core/api-rendering.d.ts.map +1 -0
- package/dist/core/api-rendering.js +76 -0
- package/dist/core/doxygen-loader.d.ts.map +1 -1
- package/dist/core/doxygen-loader.js +36 -17
- package/dist/core/godoc-loader.d.ts.map +1 -1
- package/dist/core/godoc-loader.js +17 -6
- 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 +70 -26
- package/dist/core/mcp-normalizer.d.ts.map +1 -1
- package/dist/core/mcp-normalizer.js +48 -34
- package/dist/core/navigation.d.ts.map +1 -1
- package/dist/core/navigation.js +8 -7
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/parser.js +75 -4
- package/dist/core/rustdoc-introspector.d.ts +29 -0
- package/dist/core/rustdoc-introspector.d.ts.map +1 -0
- package/dist/core/rustdoc-introspector.js +236 -0
- package/dist/core/rustdoc-loader.d.ts +25 -0
- package/dist/core/rustdoc-loader.d.ts.map +1 -0
- package/dist/core/rustdoc-loader.js +469 -0
- package/dist/core/rustdoc-render.d.ts +76 -0
- package/dist/core/rustdoc-render.d.ts.map +1 -0
- package/dist/core/rustdoc-render.js +785 -0
- package/dist/core/rustdoc-types.d.ts +314 -0
- package/dist/core/rustdoc-types.d.ts.map +1 -0
- package/dist/core/rustdoc-types.js +18 -0
- 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 +6 -1
- package/dist/core/sourcey-rustdoc/Cargo.lock +705 -0
- package/dist/core/sourcey-rustdoc/Cargo.toml +38 -0
- package/dist/core/sourcey-rustdoc/README.md +59 -0
- package/dist/core/sourcey-rustdoc/src/diagnostics.rs +42 -0
- package/dist/core/sourcey-rustdoc/src/doctest.rs +268 -0
- package/dist/core/sourcey-rustdoc/src/extract.rs +492 -0
- package/dist/core/sourcey-rustdoc/src/lib.rs +58 -0
- package/dist/core/sourcey-rustdoc/src/links.rs +126 -0
- package/dist/core/sourcey-rustdoc/src/main.rs +256 -0
- package/dist/core/sourcey-rustdoc/src/signature.rs +415 -0
- package/dist/core/sourcey-rustdoc/src/spec.rs +390 -0
- package/dist/core/sourcey-rustdoc/tests/format_version.rs +45 -0
- package/dist/dev-server.d.ts.map +1 -1
- package/dist/dev-server.js +109 -33
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -14
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +21 -16
- package/dist/renderer/changelog-feed.d.ts.map +1 -1
- package/dist/renderer/changelog-feed.js +27 -19
- package/dist/renderer/html-builder.d.ts.map +1 -1
- package/dist/renderer/html-builder.js +4 -3
- package/dist/renderer/llms.js +57 -2
- package/dist/site-assembly.d.ts +5 -0
- package/dist/site-assembly.d.ts.map +1 -1
- package/dist/site-assembly.js +161 -25
- package/dist/themes/default/sourcey.css +300 -0
- package/dist/utils/code-samples.d.ts +1 -0
- package/dist/utils/code-samples.d.ts.map +1 -1
- package/dist/utils/code-samples.js +30 -22
- package/dist/utils/html.d.ts +10 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +152 -0
- package/dist/utils/http.d.ts +0 -2
- package/dist/utils/http.d.ts.map +1 -1
- package/dist/utils/http.js +19 -34
- package/dist/utils/markdown.d.ts.map +1 -1
- package/dist/utils/markdown.js +115 -39
- 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 +11 -5
package/dist/vite-plugin.js
CHANGED
|
@@ -6,7 +6,7 @@ import { normalizeBaseUrl } from "./site-url.js";
|
|
|
6
6
|
* - Watches spec and markdown files; triggers full reload on change
|
|
7
7
|
*/
|
|
8
8
|
export function sourceyPlugin(options) {
|
|
9
|
-
const { watchPaths, baseUrl, render, searchIndex } = options;
|
|
9
|
+
const { watchPaths, baseUrl, render, searchIndex, extraFile } = options;
|
|
10
10
|
const watchSet = new Set(watchPaths.map((p) => resolve(p)));
|
|
11
11
|
return {
|
|
12
12
|
name: "sourcey",
|
|
@@ -63,6 +63,23 @@ export function sourceyPlugin(options) {
|
|
|
63
63
|
return next();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
if (extraFile) {
|
|
67
|
+
try {
|
|
68
|
+
const outputPath = outputPathFromRequestPath(pathname, currentBaseUrl);
|
|
69
|
+
const data = outputPath ? await extraFile(outputPath) : undefined;
|
|
70
|
+
if (data !== undefined) {
|
|
71
|
+
res.writeHead(200, {
|
|
72
|
+
"Content-Type": contentTypeForPath(outputPath),
|
|
73
|
+
"Cache-Control": "no-cache",
|
|
74
|
+
});
|
|
75
|
+
res.end(data);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return next();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
66
83
|
// Only handle HTML page requests (no extension, or .html)
|
|
67
84
|
const ext = extname(url);
|
|
68
85
|
if (ext && ext !== ".html") {
|
|
@@ -99,3 +116,56 @@ export function sourceyPlugin(options) {
|
|
|
99
116
|
},
|
|
100
117
|
};
|
|
101
118
|
}
|
|
119
|
+
function outputPathFromRequestPath(pathname, baseUrl) {
|
|
120
|
+
let path = pathname;
|
|
121
|
+
if (baseUrl && path.startsWith(baseUrl)) {
|
|
122
|
+
path = path.slice(baseUrl.length);
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
path = decodeURIComponent(path);
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Keep the raw path; a malformed escape cannot match generated output.
|
|
129
|
+
}
|
|
130
|
+
return path.replace(/^\/+/, "");
|
|
131
|
+
}
|
|
132
|
+
function contentTypeForPath(path) {
|
|
133
|
+
switch (extname(path).toLowerCase()) {
|
|
134
|
+
case ".css":
|
|
135
|
+
return "text/css; charset=utf-8";
|
|
136
|
+
case ".js":
|
|
137
|
+
case ".mjs":
|
|
138
|
+
return "text/javascript; charset=utf-8";
|
|
139
|
+
case ".json":
|
|
140
|
+
return "application/json; charset=utf-8";
|
|
141
|
+
case ".svg":
|
|
142
|
+
return "image/svg+xml";
|
|
143
|
+
case ".png":
|
|
144
|
+
return "image/png";
|
|
145
|
+
case ".jpg":
|
|
146
|
+
case ".jpeg":
|
|
147
|
+
return "image/jpeg";
|
|
148
|
+
case ".gif":
|
|
149
|
+
return "image/gif";
|
|
150
|
+
case ".webp":
|
|
151
|
+
return "image/webp";
|
|
152
|
+
case ".avif":
|
|
153
|
+
return "image/avif";
|
|
154
|
+
case ".ico":
|
|
155
|
+
return "image/x-icon";
|
|
156
|
+
case ".txt":
|
|
157
|
+
return "text/plain; charset=utf-8";
|
|
158
|
+
case ".pdf":
|
|
159
|
+
return "application/pdf";
|
|
160
|
+
case ".woff":
|
|
161
|
+
return "font/woff";
|
|
162
|
+
case ".woff2":
|
|
163
|
+
return "font/woff2";
|
|
164
|
+
case ".mp4":
|
|
165
|
+
return "video/mp4";
|
|
166
|
+
case ".webm":
|
|
167
|
+
return "video/webm";
|
|
168
|
+
default:
|
|
169
|
+
return "application/octet-stream";
|
|
170
|
+
}
|
|
171
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sourcey",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "Precision documentation from OpenAPI, MCP, Doxygen, godoc, and Markdown. Static HTML you own.",
|
|
3
|
+
"version": "3.6.1",
|
|
4
|
+
"description": "Precision documentation from OpenAPI, MCP, Doxygen, godoc, rustdoc, and Markdown. Static HTML you own.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=20"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"LICENSE"
|
|
21
21
|
],
|
|
22
22
|
"scripts": {
|
|
23
|
-
"build": "tsc && cp -r src/themes dist/ && cp src/client/*.js dist/client/ && cp -r src/og/fonts dist/og/ && rm -rf dist/core/sourcey-godoc dist/core/godoc-introspect && mkdir -p dist/core/sourcey-godoc && cp -R go/sourcey-godoc/go.mod go/sourcey-godoc/doc.go go/sourcey-godoc/cmd dist/core/sourcey-godoc/",
|
|
23
|
+
"build": "tsc && cp -r src/themes dist/ && cp src/client/*.js dist/client/ && cp -r src/og/fonts dist/og/ && rm -rf dist/core/sourcey-godoc dist/core/godoc-introspect && mkdir -p dist/core/sourcey-godoc && cp -R go/sourcey-godoc/go.mod go/sourcey-godoc/doc.go go/sourcey-godoc/cmd dist/core/sourcey-godoc/ && rm -rf dist/core/sourcey-rustdoc && mkdir -p dist/core/sourcey-rustdoc && cp -R rust/sourcey-rustdoc/Cargo.toml rust/sourcey-rustdoc/Cargo.lock rust/sourcey-rustdoc/README.md rust/sourcey-rustdoc/src rust/sourcey-rustdoc/tests dist/core/sourcey-rustdoc/",
|
|
24
24
|
"watch": "npm run build && tsc --watch --preserveWatchOutput",
|
|
25
25
|
"test": "vitest run",
|
|
26
26
|
"test:watch": "vitest",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"godoc:go:test": "cd go/sourcey-godoc && go test ./...",
|
|
31
31
|
"godoc:go:vet": "cd go/sourcey-godoc && go vet ./...",
|
|
32
32
|
"godoc:packages:test": "packaging/sourcey-godoc/render-package-managers.test.sh",
|
|
33
|
+
"cpp:release-gate": "node scripts/check-cpp-reference-quality.mjs",
|
|
33
34
|
"typecheck": "tsc --noEmit",
|
|
34
35
|
"prepublishOnly": "npm run build"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
38
|
"@apidevtools/json-schema-ref-parser": "^13.0.5",
|
|
38
39
|
"@preact/preset-vite": "^2.10.4",
|
|
39
|
-
"@readme/openapi-parser": "^4.0.0",
|
|
40
40
|
"@resvg/resvg-js": "^2.6.2",
|
|
41
41
|
"@tailwindcss/typography": "^0.5.19",
|
|
42
42
|
"@tailwindcss/vite": "^4.2.2",
|
|
@@ -46,9 +46,10 @@
|
|
|
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.8",
|
|
50
50
|
"preact": "^10.28.4",
|
|
51
51
|
"preact-render-to-string": "^6.6.6",
|
|
52
|
+
"sanitize-html": "^2.17.4",
|
|
52
53
|
"satori": "^0.26.0",
|
|
53
54
|
"shiki": "^4.0.2",
|
|
54
55
|
"swagger2openapi": "^7.0.8",
|
|
@@ -56,8 +57,10 @@
|
|
|
56
57
|
"vite": "^8.0.9"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
60
|
+
"@eslint/js": "^9.39.4",
|
|
59
61
|
"@types/js-yaml": "^4.0.9",
|
|
60
62
|
"@types/node": "^22.19.15",
|
|
63
|
+
"@types/sanitize-html": "^2.16.1",
|
|
61
64
|
"eslint": "^9.0.0",
|
|
62
65
|
"eslint-config-prettier": "^10.0.0",
|
|
63
66
|
"prettier": "^3.4.0",
|
|
@@ -77,9 +80,12 @@
|
|
|
77
80
|
"developer-documentation",
|
|
78
81
|
"doxygen",
|
|
79
82
|
"godoc",
|
|
83
|
+
"rustdoc",
|
|
80
84
|
"golang",
|
|
85
|
+
"rust",
|
|
81
86
|
"go-docs",
|
|
82
87
|
"go-documentation",
|
|
88
|
+
"rust-docs",
|
|
83
89
|
"mcp",
|
|
84
90
|
"llms-txt",
|
|
85
91
|
"static-docs"
|