mdsvr 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +180 -4
- package/bin/mdsvr.js +0 -0
- package/dist/cli.js +67 -3
- package/dist/cli.js.map +1 -1
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +50 -21
- package/dist/directory.js.map +1 -1
- package/dist/generators/feed.d.ts +3 -0
- package/dist/generators/feed.d.ts.map +1 -0
- package/dist/generators/feed.js +110 -0
- package/dist/generators/feed.js.map +1 -0
- package/dist/generators/search-index.d.ts +10 -0
- package/dist/generators/search-index.d.ts.map +1 -0
- package/dist/generators/search-index.js +79 -0
- package/dist/generators/search-index.js.map +1 -0
- package/dist/generators/sitemap.d.ts +3 -0
- package/dist/generators/sitemap.d.ts.map +1 -0
- package/dist/generators/sitemap.js +90 -0
- package/dist/generators/sitemap.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/renderer/components.d.ts +60 -0
- package/dist/renderer/components.d.ts.map +1 -0
- package/dist/renderer/components.js +59 -0
- package/dist/renderer/components.js.map +1 -0
- package/dist/renderer/index.d.ts +7 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/index.js +14 -0
- package/dist/renderer/index.js.map +1 -0
- package/dist/renderer/markdown.d.ts +14 -0
- package/dist/renderer/markdown.d.ts.map +1 -0
- package/dist/renderer/markdown.js +83 -0
- package/dist/renderer/markdown.js.map +1 -0
- package/dist/renderer/mdx.d.ts +13 -0
- package/dist/renderer/mdx.d.ts.map +1 -0
- package/dist/renderer/mdx.js +55 -0
- package/dist/renderer/mdx.js.map +1 -0
- package/dist/router.d.ts +2 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +158 -45
- package/dist/router.js.map +1 -1
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +43 -1
- package/dist/server.js.map +1 -1
- package/dist/settings/defaults.d.ts +5 -0
- package/dist/settings/defaults.d.ts.map +1 -0
- package/dist/settings/defaults.js +35 -0
- package/dist/settings/defaults.js.map +1 -0
- package/dist/settings/index.d.ts +11 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +78 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/schema.d.ts +820 -0
- package/dist/settings/schema.d.ts.map +1 -0
- package/dist/settings/schema.js +117 -0
- package/dist/settings/schema.js.map +1 -0
- package/dist/template/index.d.ts +15 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js +851 -0
- package/dist/template/index.js.map +1 -0
- package/dist/template/search.d.ts +5 -0
- package/dist/template/search.d.ts.map +1 -0
- package/dist/template/search.js +241 -0
- package/dist/template/search.js.map +1 -0
- package/dist/template/seo.d.ts +13 -0
- package/dist/template/seo.d.ts.map +1 -0
- package/dist/template/seo.js +71 -0
- package/dist/template/seo.js.map +1 -0
- package/dist/template/sidebar.d.ts +14 -0
- package/dist/template/sidebar.d.ts.map +1 -0
- package/dist/template/sidebar.js +185 -0
- package/dist/template/sidebar.js.map +1 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -3
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { promises as fs } from "node:fs";
|
|
3
|
+
import matter from "gray-matter";
|
|
4
|
+
function isHidden(filePath, settings) {
|
|
5
|
+
const basename = path.basename(filePath);
|
|
6
|
+
for (const pattern of settings.files.extensions.hidden) {
|
|
7
|
+
if (basename === pattern)
|
|
8
|
+
return true;
|
|
9
|
+
if (pattern.startsWith("*") && basename.endsWith(pattern.slice(1)))
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (basename.startsWith("_"))
|
|
13
|
+
return true;
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
function stripMarkdown(content) {
|
|
17
|
+
return content
|
|
18
|
+
.replace(/---[\s\S]*?---/, "") // Remove frontmatter
|
|
19
|
+
.replace(/```[\s\S]*?```/g, "") // Remove code blocks
|
|
20
|
+
.replace(/`([^`]+)`/g, "$1") // Remove inline code
|
|
21
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1") // Remove links but keep text
|
|
22
|
+
.replace(/[#*_~]/g, "") // Remove formatting chars
|
|
23
|
+
.replace(/\s+/g, " ") // Normalize whitespace
|
|
24
|
+
.trim();
|
|
25
|
+
}
|
|
26
|
+
function extractHeadings(content) {
|
|
27
|
+
const headings = [];
|
|
28
|
+
const regex = /^#{1,6}\s+(.+)$/gm;
|
|
29
|
+
let match;
|
|
30
|
+
while ((match = regex.exec(content)) !== null) {
|
|
31
|
+
headings.push(match[1].trim());
|
|
32
|
+
}
|
|
33
|
+
return headings;
|
|
34
|
+
}
|
|
35
|
+
async function readDirRecursive(dirPath, rootDir, settings) {
|
|
36
|
+
const entries = [];
|
|
37
|
+
const items = await fs.readdir(dirPath, { withFileTypes: true });
|
|
38
|
+
for (const item of items) {
|
|
39
|
+
const fullPath = path.join(dirPath, item.name);
|
|
40
|
+
if (isHidden(fullPath, settings))
|
|
41
|
+
continue;
|
|
42
|
+
if (item.isDirectory()) {
|
|
43
|
+
const subEntries = await readDirRecursive(fullPath, rootDir, settings);
|
|
44
|
+
entries.push(...subEntries);
|
|
45
|
+
}
|
|
46
|
+
else if (item.name.endsWith(".md") ||
|
|
47
|
+
(item.name.endsWith(".mdx") && settings.mdx.enabled)) {
|
|
48
|
+
try {
|
|
49
|
+
const content = await fs.readFile(fullPath, "utf-8");
|
|
50
|
+
const parsed = matter(content);
|
|
51
|
+
const relativePath = "/" + path.relative(rootDir, fullPath).replace(/\\/g, "/");
|
|
52
|
+
const href = relativePath.replace(/\.(md|mdx)$/, "");
|
|
53
|
+
const title = parsed.data.title ||
|
|
54
|
+
parsed.content.match(/^#\s+(.+)$/m)?.[1] ||
|
|
55
|
+
item.name.replace(/\.\w+$/, "");
|
|
56
|
+
const plainContent = stripMarkdown(parsed.content);
|
|
57
|
+
const headings = extractHeadings(parsed.content);
|
|
58
|
+
entries.push({
|
|
59
|
+
title,
|
|
60
|
+
href,
|
|
61
|
+
excerpt: plainContent.slice(0, 200),
|
|
62
|
+
headings,
|
|
63
|
+
content: plainContent,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Skip files that can't be read
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return entries;
|
|
72
|
+
}
|
|
73
|
+
export async function buildSearchIndex(rootDir, settings) {
|
|
74
|
+
if (!settings.search.enabled) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
return readDirRecursive(rootDir, rootDir, settings);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=search-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-index.js","sourceRoot":"","sources":["../../src/generators/search-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../../src/generators/sitemap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAwFrD,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { promises as fs } from "node:fs";
|
|
3
|
+
import matter from "gray-matter";
|
|
4
|
+
function isHidden(filePath, settings) {
|
|
5
|
+
const basename = path.basename(filePath);
|
|
6
|
+
for (const pattern of settings.files.extensions.hidden) {
|
|
7
|
+
if (basename === pattern)
|
|
8
|
+
return true;
|
|
9
|
+
if (pattern.startsWith("*") && basename.endsWith(pattern.slice(1)))
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (basename.startsWith("_"))
|
|
13
|
+
return true;
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
async function readDirRecursive(dirPath, rootDir, baseUrl, settings) {
|
|
17
|
+
const entries = [];
|
|
18
|
+
const items = await fs.readdir(dirPath, { withFileTypes: true });
|
|
19
|
+
for (const item of items) {
|
|
20
|
+
const fullPath = path.join(dirPath, item.name);
|
|
21
|
+
if (isHidden(fullPath, settings))
|
|
22
|
+
continue;
|
|
23
|
+
if (item.isDirectory()) {
|
|
24
|
+
const subEntries = await readDirRecursive(fullPath, rootDir, baseUrl, settings);
|
|
25
|
+
entries.push(...subEntries);
|
|
26
|
+
}
|
|
27
|
+
else if (item.name.endsWith(".md") ||
|
|
28
|
+
(item.name.endsWith(".mdx") && settings.mdx.enabled)) {
|
|
29
|
+
try {
|
|
30
|
+
const relativePath = "/" + path.relative(rootDir, fullPath).replace(/\\/g, "/");
|
|
31
|
+
const urlPath = relativePath.replace(/\.(md|mdx)$/, "");
|
|
32
|
+
const fullUrl = `${baseUrl.replace(/\/$/, "")}${urlPath}`;
|
|
33
|
+
// Try to get lastmod from frontmatter or file stat
|
|
34
|
+
let lastmod;
|
|
35
|
+
try {
|
|
36
|
+
const content = await fs.readFile(fullPath, "utf-8");
|
|
37
|
+
const parsed = matter(content);
|
|
38
|
+
if (parsed.data.date) {
|
|
39
|
+
const date = new Date(parsed.data.date);
|
|
40
|
+
if (!isNaN(date.getTime())) {
|
|
41
|
+
lastmod = date.toISOString().split("T")[0];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Fall through to file stat
|
|
47
|
+
}
|
|
48
|
+
if (!lastmod) {
|
|
49
|
+
const stat = await fs.stat(fullPath);
|
|
50
|
+
lastmod = stat.mtime.toISOString().split("T")[0];
|
|
51
|
+
}
|
|
52
|
+
entries.push({
|
|
53
|
+
url: fullUrl,
|
|
54
|
+
lastmod,
|
|
55
|
+
changefreq: "weekly",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Skip files that can't be read
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return entries;
|
|
64
|
+
}
|
|
65
|
+
export async function generateSitemap(rootDir, settings) {
|
|
66
|
+
const baseUrl = settings.site.baseUrl || "http://localhost:1900";
|
|
67
|
+
const entries = await readDirRecursive(rootDir, rootDir, baseUrl, settings);
|
|
68
|
+
// Sort by URL for consistent output
|
|
69
|
+
entries.sort((a, b) => a.url.localeCompare(b.url));
|
|
70
|
+
const urlElements = entries
|
|
71
|
+
.map((entry) => ` <url>
|
|
72
|
+
<loc>${escapeXml(entry.url)}</loc>
|
|
73
|
+
<lastmod>${entry.lastmod}</lastmod>
|
|
74
|
+
<changefreq>${entry.changefreq}</changefreq>
|
|
75
|
+
</url>`)
|
|
76
|
+
.join("\n");
|
|
77
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
78
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
79
|
+
${urlElements}
|
|
80
|
+
</urlset>`;
|
|
81
|
+
}
|
|
82
|
+
function escapeXml(text) {
|
|
83
|
+
return text
|
|
84
|
+
.replace(/&/g, "&")
|
|
85
|
+
.replace(/</g, "<")
|
|
86
|
+
.replace(/>/g, ">")
|
|
87
|
+
.replace(/"/g, """)
|
|
88
|
+
.replace(/'/g, "'");
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=sitemap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/generators/sitemap.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { createServer } from "./server.js";
|
|
2
2
|
export type { ServeOptions, ServerInstance } from "./types.js";
|
|
3
|
+
export type { Settings, Logo, Site, Appearance, Navigation, Search, Seo, Files, Mdx, Footer, } from "./settings/index.js";
|
|
4
|
+
export { loadSettings, validateSettingsFile, generateDefaultSettings, } from "./settings/index.js";
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,MAAM,EACN,GAAG,EACH,KAAK,EACL,GAAG,EACH,MAAM,GACP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc3C,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface CalloutProps {
|
|
3
|
+
type?: "info" | "warning" | "danger" | "success" | "tip";
|
|
4
|
+
title?: string;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function Callout({ type, title, children }: CalloutProps): React.JSX.Element;
|
|
8
|
+
interface CodeGroupProps {
|
|
9
|
+
title?: string;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare function CodeGroup({ title, children }: CodeGroupProps): React.JSX.Element;
|
|
13
|
+
interface StepsProps {
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export declare function Steps({ children }: StepsProps): React.JSX.Element;
|
|
17
|
+
interface CardProps {
|
|
18
|
+
title: string;
|
|
19
|
+
icon?: string;
|
|
20
|
+
href?: string;
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
export declare function Card({ title, icon, href, children }: CardProps): React.JSX.Element;
|
|
24
|
+
interface CardGroupProps {
|
|
25
|
+
cols?: number;
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
}
|
|
28
|
+
export declare function CardGroup({ cols, children }: CardGroupProps): React.JSX.Element;
|
|
29
|
+
interface TabsProps {
|
|
30
|
+
items: string[];
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
}
|
|
33
|
+
export declare function Tabs({ items, children }: TabsProps): React.JSX.Element;
|
|
34
|
+
interface AccordionProps {
|
|
35
|
+
title: string;
|
|
36
|
+
children: React.ReactNode;
|
|
37
|
+
}
|
|
38
|
+
export declare function Accordion({ title, children }: AccordionProps): React.JSX.Element;
|
|
39
|
+
interface BadgeProps {
|
|
40
|
+
color?: "green" | "orange" | "red" | "blue" | "purple" | "gray";
|
|
41
|
+
children: React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
export declare function Badge({ color, children }: BadgeProps): React.JSX.Element;
|
|
44
|
+
interface MermaidProps {
|
|
45
|
+
children: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function Mermaid({ children }: MermaidProps): React.JSX.Element;
|
|
48
|
+
export declare const builtinComponents: {
|
|
49
|
+
Callout: typeof Callout;
|
|
50
|
+
CodeGroup: typeof CodeGroup;
|
|
51
|
+
Steps: typeof Steps;
|
|
52
|
+
Card: typeof Card;
|
|
53
|
+
CardGroup: typeof CardGroup;
|
|
54
|
+
Tabs: typeof Tabs;
|
|
55
|
+
Accordion: typeof Accordion;
|
|
56
|
+
Badge: typeof Badge;
|
|
57
|
+
Mermaid: typeof Mermaid;
|
|
58
|
+
};
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/renderer/components.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,OAAO,CAAC,EAAE,IAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY,qBAiBvE;AAED,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,cAAc,qBAO5D;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,UAAU,qBAQ7C;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,qBAW9D;AAED,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAQ,EAAE,QAAQ,EAAE,EAAE,cAAc,qBAS/D;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,qBAsBlD;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,cAAc,qBAY5D;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,KAAK,CAAC,EAAE,KAAc,EAAE,QAAQ,EAAE,EAAE,UAAU,qBAE7D;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,qBAejD;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Built-in MDX components - React components that render to HTML
|
|
3
|
+
import React from "react";
|
|
4
|
+
export function Callout({ type = "info", title, children }) {
|
|
5
|
+
const titles = {
|
|
6
|
+
info: "ℹ️ Info",
|
|
7
|
+
warning: "⚠️ Warning",
|
|
8
|
+
danger: "🚫 Danger",
|
|
9
|
+
success: "✅ Success",
|
|
10
|
+
tip: "💡 Tip",
|
|
11
|
+
};
|
|
12
|
+
return (_jsxs("div", { className: `callout callout-${type}`, children: [_jsx("strong", { style: { display: "block", marginBottom: "8px" }, children: title || titles[type] }), _jsx("div", { children: children })] }));
|
|
13
|
+
}
|
|
14
|
+
export function CodeGroup({ title, children }) {
|
|
15
|
+
return (_jsxs("div", { className: "code-group", children: [title && _jsx("div", { className: "code-group-title", children: title }), _jsx("div", { style: { margin: 0 }, children: children })] }));
|
|
16
|
+
}
|
|
17
|
+
export function Steps({ children }) {
|
|
18
|
+
return (_jsx("div", { className: "steps", children: React.Children.map(children, (child) => (_jsx("div", { className: "step-item", children: child }))) }));
|
|
19
|
+
}
|
|
20
|
+
export function Card({ title, icon, href, children }) {
|
|
21
|
+
const Wrapper = href ? "a" : "div";
|
|
22
|
+
return (_jsxs(Wrapper, { href: href, className: "card", children: [_jsxs("div", { className: "card-title", children: [icon && _jsx("span", { children: icon }), _jsx("span", { children: title })] }), _jsx("div", { className: "card-description", children: children })] }));
|
|
23
|
+
}
|
|
24
|
+
export function CardGroup({ cols = 2, children }) {
|
|
25
|
+
return (_jsx("div", { className: "card-group", style: { gridTemplateColumns: `repeat(${cols}, 1fr)` }, children: children }));
|
|
26
|
+
}
|
|
27
|
+
export function Tabs({ items, children }) {
|
|
28
|
+
const [active, setActive] = React.useState(0);
|
|
29
|
+
const tabsId = React.useId();
|
|
30
|
+
return (_jsxs("div", { className: "tabs-container", "data-tabs-id": tabsId, children: [_jsx("div", { className: "tabs", children: items.map((item, index) => (_jsx("button", { onClick: () => setActive(index), className: `tab ${active === index ? "active" : ""}`, children: item }, index))) }), _jsx("div", { className: "tab-content", children: React.Children.toArray(children)[active] })] }));
|
|
31
|
+
}
|
|
32
|
+
export function Accordion({ title, children }) {
|
|
33
|
+
const [open, setOpen] = React.useState(false);
|
|
34
|
+
return (_jsxs("div", { className: "accordion", children: [_jsxs("button", { onClick: () => setOpen(!open), className: "accordion-summary", children: [title, _jsx("span", { className: `accordion-icon ${open ? "open" : ""}`, children: "\u25BC" })] }), open && _jsx("div", { className: "accordion-content", children: children })] }));
|
|
35
|
+
}
|
|
36
|
+
export function Badge({ color = "gray", children }) {
|
|
37
|
+
return _jsx("span", { className: `badge badge-${color}`, children: children });
|
|
38
|
+
}
|
|
39
|
+
export function Mermaid({ children }) {
|
|
40
|
+
// Mermaid diagrams are rendered client-side
|
|
41
|
+
// Server-side we just wrap in a special div for client JS to process
|
|
42
|
+
return (_jsxs("div", { className: "mermaid", style: {
|
|
43
|
+
textAlign: "center",
|
|
44
|
+
padding: "16px",
|
|
45
|
+
}, children: [_jsx("pre", { style: { display: "none" }, children: children }), _jsx("div", { className: "mermaid-output", children: "Loading diagram..." })] }));
|
|
46
|
+
}
|
|
47
|
+
// Export all built-in components
|
|
48
|
+
export const builtinComponents = {
|
|
49
|
+
Callout,
|
|
50
|
+
CodeGroup,
|
|
51
|
+
Steps,
|
|
52
|
+
Card,
|
|
53
|
+
CardGroup,
|
|
54
|
+
Tabs,
|
|
55
|
+
Accordion,
|
|
56
|
+
Badge,
|
|
57
|
+
Mermaid,
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/renderer/components.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Settings } from "../settings/index.js";
|
|
2
|
+
import { type MarkdownResult } from "./markdown.js";
|
|
3
|
+
import { type MdxRenderResult } from "./mdx.js";
|
|
4
|
+
export type { MarkdownResult, MdxRenderResult };
|
|
5
|
+
export declare function renderFile(content: string, filePath: string, settings: Settings): Promise<MarkdownResult | MdxRenderResult>;
|
|
6
|
+
export declare function isMdxFile(filePath: string): boolean;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3D,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,GAAG,eAAe,CAAC,CAS3C;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { renderMarkdown } from "./markdown.js";
|
|
2
|
+
import { renderMdx } from "./mdx.js";
|
|
3
|
+
export async function renderFile(content, filePath, settings) {
|
|
4
|
+
const ext = filePath.split(".").pop()?.toLowerCase();
|
|
5
|
+
if (ext === "mdx" && settings.mdx.enabled) {
|
|
6
|
+
return renderMdx(content, settings);
|
|
7
|
+
}
|
|
8
|
+
// Default to markdown renderer for .md and fallback
|
|
9
|
+
return renderMarkdown(content, settings);
|
|
10
|
+
}
|
|
11
|
+
export function isMdxFile(filePath) {
|
|
12
|
+
return filePath.toLowerCase().endsWith(".mdx");
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAuB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,SAAS,EAAwB,MAAM,UAAU,CAAC;AAI3D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,QAAgB,EAChB,QAAkB;IAElB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;IAErD,IAAI,GAAG,KAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,oDAAoD;IACpD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Settings } from "../settings/index.js";
|
|
2
|
+
export interface TocItem {
|
|
3
|
+
level: number;
|
|
4
|
+
text: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MarkdownResult {
|
|
8
|
+
html: string;
|
|
9
|
+
frontmatter: Record<string, unknown>;
|
|
10
|
+
toc: TocItem[];
|
|
11
|
+
}
|
|
12
|
+
export declare function renderMarkdown(content: string, settings: Settings): MarkdownResult;
|
|
13
|
+
export declare function renderMarkdownSimple(content: string): string;
|
|
14
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/renderer/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAkCD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAahB;AAiBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6B5D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import MarkdownIt from "markdown-it";
|
|
2
|
+
import markdownItAnchor from "markdown-it-anchor";
|
|
3
|
+
import hljs from "highlight.js";
|
|
4
|
+
import matter from "gray-matter";
|
|
5
|
+
// Create markdown-it instance with settings
|
|
6
|
+
function createMarkdownIt(settings) {
|
|
7
|
+
const md = new MarkdownIt({
|
|
8
|
+
html: true,
|
|
9
|
+
linkify: true,
|
|
10
|
+
typographer: true,
|
|
11
|
+
highlight: (str, lang) => {
|
|
12
|
+
if (lang && hljs.getLanguage(lang)) {
|
|
13
|
+
try {
|
|
14
|
+
return hljs.highlight(str, { language: lang }).value;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Fall through to plain text
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return md.utils.escapeHtml(str);
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
md.use(markdownItAnchor, {
|
|
24
|
+
permalink: false,
|
|
25
|
+
slugify: (s) => encodeURIComponent(String(s)
|
|
26
|
+
.trim()
|
|
27
|
+
.toLowerCase()
|
|
28
|
+
.replace(/\s+/g, "-")),
|
|
29
|
+
});
|
|
30
|
+
return md;
|
|
31
|
+
}
|
|
32
|
+
export function renderMarkdown(content, settings) {
|
|
33
|
+
// Parse frontmatter
|
|
34
|
+
const parsed = matter(content);
|
|
35
|
+
const frontmatter = parsed.data;
|
|
36
|
+
// Render markdown
|
|
37
|
+
const md = createMarkdownIt(settings);
|
|
38
|
+
const html = md.render(parsed.content);
|
|
39
|
+
// Extract TOC from rendered HTML
|
|
40
|
+
const toc = extractToc(html);
|
|
41
|
+
return { html, frontmatter, toc };
|
|
42
|
+
}
|
|
43
|
+
function extractToc(html) {
|
|
44
|
+
const toc = [];
|
|
45
|
+
// Match heading tags with id attributes
|
|
46
|
+
const regex = /<h([1-6])[^>]*id="([^"]+)"[^>]*>([^<]*)<\/h\1>/gi;
|
|
47
|
+
let match;
|
|
48
|
+
while ((match = regex.exec(html)) !== null) {
|
|
49
|
+
const level = parseInt(match[1], 10);
|
|
50
|
+
const slug = match[2];
|
|
51
|
+
const text = match[3].replace(/<[^>]*>/g, ""); // strip any inline tags
|
|
52
|
+
toc.push({ level, text, slug });
|
|
53
|
+
}
|
|
54
|
+
return toc;
|
|
55
|
+
}
|
|
56
|
+
// For V1 compatibility - simple render without frontmatter extraction
|
|
57
|
+
export function renderMarkdownSimple(content) {
|
|
58
|
+
const md = new MarkdownIt({
|
|
59
|
+
html: true,
|
|
60
|
+
linkify: true,
|
|
61
|
+
typographer: true,
|
|
62
|
+
highlight: (str, lang) => {
|
|
63
|
+
if (lang && hljs.getLanguage(lang)) {
|
|
64
|
+
try {
|
|
65
|
+
return hljs.highlight(str, { language: lang }).value;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Fall through to plain text
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return md.utils.escapeHtml(str);
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
md.use(markdownItAnchor, {
|
|
75
|
+
permalink: false,
|
|
76
|
+
slugify: (s) => encodeURIComponent(String(s)
|
|
77
|
+
.trim()
|
|
78
|
+
.toLowerCase()
|
|
79
|
+
.replace(/\s+/g, "-")),
|
|
80
|
+
});
|
|
81
|
+
return md.render(content);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/renderer/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Settings } from "../settings/index.js";
|
|
2
|
+
export interface TocItem {
|
|
3
|
+
level: number;
|
|
4
|
+
text: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MdxRenderResult {
|
|
8
|
+
html: string;
|
|
9
|
+
frontmatter: Record<string, unknown>;
|
|
10
|
+
toc: TocItem[];
|
|
11
|
+
}
|
|
12
|
+
export declare function renderMdx(content: string, settings: Settings): Promise<MdxRenderResult>;
|
|
13
|
+
//# sourceMappingURL=mdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../../src/renderer/mdx.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,CAAC,CAuC1B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { compile, run } from "@mdx-js/mdx";
|
|
2
|
+
import * as runtime from "react/jsx-runtime";
|
|
3
|
+
import { renderToStaticMarkup } from "react-dom/server";
|
|
4
|
+
import remarkGfm from "remark-gfm";
|
|
5
|
+
import remarkFrontmatter from "remark-frontmatter";
|
|
6
|
+
import remarkMdxFrontmatter from "remark-mdx-frontmatter";
|
|
7
|
+
import rehypeSlug from "rehype-slug";
|
|
8
|
+
import rehypeAutolinkHeadings from "rehype-autolink-headings";
|
|
9
|
+
import { builtinComponents } from "./components.js";
|
|
10
|
+
export async function renderMdx(content, settings) {
|
|
11
|
+
if (!settings.mdx.enabled) {
|
|
12
|
+
throw new Error("MDX is disabled in settings");
|
|
13
|
+
}
|
|
14
|
+
const compiled = await compile(content, {
|
|
15
|
+
outputFormat: "function-body",
|
|
16
|
+
remarkPlugins: [remarkGfm, remarkFrontmatter, remarkMdxFrontmatter],
|
|
17
|
+
rehypePlugins: [rehypeSlug, rehypeAutolinkHeadings],
|
|
18
|
+
development: false,
|
|
19
|
+
});
|
|
20
|
+
// Execute compiled MDX in Node.js
|
|
21
|
+
const result = await run(String(compiled), {
|
|
22
|
+
...runtime,
|
|
23
|
+
baseUrl: import.meta.url,
|
|
24
|
+
});
|
|
25
|
+
const MDXContent = result.default;
|
|
26
|
+
const frontmatter = result.frontmatter ?? {};
|
|
27
|
+
// Filter enabled components based on settings
|
|
28
|
+
const enabledComponents = {};
|
|
29
|
+
for (const [name, component] of Object.entries(builtinComponents)) {
|
|
30
|
+
const componentKey = name;
|
|
31
|
+
if (settings.mdx.components[name] !== false) {
|
|
32
|
+
enabledComponents[name] = component;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Render to static HTML with built-in components injected
|
|
36
|
+
const html = renderToStaticMarkup(
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
MDXContent({ components: enabledComponents }));
|
|
39
|
+
const toc = extractToc(html);
|
|
40
|
+
return { html, frontmatter, toc };
|
|
41
|
+
}
|
|
42
|
+
function extractToc(html) {
|
|
43
|
+
const toc = [];
|
|
44
|
+
// Match heading tags with id attributes
|
|
45
|
+
const regex = /<h([1-6])[^>]*id="([^"]+)"[^>]*>([^<]*)<\/h\1>/gi;
|
|
46
|
+
let match;
|
|
47
|
+
while ((match = regex.exec(html)) !== null) {
|
|
48
|
+
const level = parseInt(match[1], 10);
|
|
49
|
+
const slug = match[2];
|
|
50
|
+
const text = match[3].replace(/<[^>]*>/g, ""); // strip any inline tags
|
|
51
|
+
toc.push({ level, text, slug });
|
|
52
|
+
}
|
|
53
|
+
return toc;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=mdx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdx.js","sourceRoot":"","sources":["../../src/renderer/mdx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAcpD,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,QAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;QACtC,YAAY,EAAE,eAAe;QAC7B,aAAa,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;QACnE,aAAa,EAAE,CAAC,UAAU,EAAE,sBAAsB,CAAC;QACnD,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACzC,GAAG,OAAO;QACV,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;KACzB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,MAAM,WAAW,GAAI,MAAM,CAAC,WAAuC,IAAI,EAAE,CAAC;IAE1E,8CAA8C;IAC9C,MAAM,iBAAiB,GAAiD,EAAE,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,IAA4C,CAAC;QAClE,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5C,iBAAiB,CAAC,IAAI,CAAC,GAAG,SAAyC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,MAAM,IAAI,GAAG,oBAAoB;IAC/B,8DAA8D;IAC7D,UAAkB,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CACvD,CAAC;IAEF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,wCAAwC;IACxC,MAAM,KAAK,GAAG,kDAAkD,CAAC;IACjE,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB;QACvE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/router.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
|
|
2
|
+
import type { Settings } from "./settings/index.js";
|
|
3
|
+
export declare function route(req: IncomingMessage, res: ServerResponse, rootDir: string, settings: Settings, searchIndexCache: unknown): Promise<void>;
|
|
3
4
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAU5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA8BpD,wBAAsB,KAAK,CACzB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Ff"}
|