mdsvr 2.4.0 → 2.5.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/dist/directory.d.ts +11 -0
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +31 -115
- package/dist/directory.js.map +1 -1
- package/dist/generators/feed.d.ts.map +1 -1
- package/dist/generators/feed.js +9 -2
- package/dist/generators/feed.js.map +1 -1
- package/dist/generators/robots.d.ts +11 -0
- package/dist/generators/robots.d.ts.map +1 -0
- package/dist/generators/robots.js +32 -0
- package/dist/generators/robots.js.map +1 -0
- package/dist/generators/search-index.d.ts.map +1 -1
- package/dist/generators/search-index.js +6 -5
- package/dist/generators/search-index.js.map +1 -1
- package/dist/generators/sitemap.d.ts +17 -1
- package/dist/generators/sitemap.d.ts.map +1 -1
- package/dist/generators/sitemap.js +119 -59
- package/dist/generators/sitemap.js.map +1 -1
- package/dist/generators/static-export.d.ts.map +1 -1
- package/dist/generators/static-export.js +66 -11
- package/dist/generators/static-export.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/link-transform.d.ts +37 -5
- package/dist/link-transform.d.ts.map +1 -1
- package/dist/link-transform.js +120 -13
- package/dist/link-transform.js.map +1 -1
- package/dist/render-page.d.ts +1 -2
- package/dist/render-page.d.ts.map +1 -1
- package/dist/render-page.js +56 -40
- package/dist/render-page.js.map +1 -1
- package/dist/renderer/markdown.d.ts +0 -16
- package/dist/renderer/markdown.d.ts.map +1 -1
- package/dist/renderer/markdown.js +6 -63
- package/dist/renderer/markdown.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +19 -1
- package/dist/router.js.map +1 -1
- package/dist/seo/extract.d.ts +26 -0
- package/dist/seo/extract.d.ts.map +1 -0
- package/dist/seo/extract.js +159 -0
- package/dist/seo/extract.js.map +1 -0
- package/dist/seo/index.d.ts +5 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +5 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/jsonld.d.ts +15 -0
- package/dist/seo/jsonld.d.ts.map +1 -0
- package/dist/seo/jsonld.js +93 -0
- package/dist/seo/jsonld.js.map +1 -0
- package/dist/seo/metadata.d.ts +60 -0
- package/dist/seo/metadata.d.ts.map +1 -0
- package/dist/seo/metadata.js +144 -0
- package/dist/seo/metadata.js.map +1 -0
- package/dist/seo/url.d.ts +27 -0
- package/dist/seo/url.d.ts.map +1 -0
- package/dist/seo/url.js +76 -0
- package/dist/seo/url.js.map +1 -0
- package/dist/settings/defaults.d.ts.map +1 -1
- package/dist/settings/defaults.js +0 -2
- package/dist/settings/defaults.js.map +1 -1
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js +15 -0
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/schema.d.ts +317 -5
- package/dist/settings/schema.d.ts.map +1 -1
- package/dist/settings/schema.js +45 -1
- package/dist/settings/schema.js.map +1 -1
- package/dist/template/analytics.d.ts +18 -0
- package/dist/template/analytics.d.ts.map +1 -0
- package/dist/template/analytics.js +83 -0
- package/dist/template/analytics.js.map +1 -0
- package/dist/template/index.d.ts +5 -0
- package/dist/template/index.d.ts.map +1 -1
- package/dist/template/index.js +59 -59
- package/dist/template/index.js.map +1 -1
- package/dist/template/search.d.ts.map +1 -1
- package/dist/template/search.js +9 -2
- package/dist/template/search.js.map +1 -1
- package/dist/template/seo.d.ts +7 -10
- package/dist/template/seo.d.ts.map +1 -1
- package/dist/template/seo.js +57 -33
- package/dist/template/seo.js.map +1 -1
- package/dist/template/sidebar.d.ts.map +1 -1
- package/dist/template/sidebar.js +11 -8
- package/dist/template/sidebar.js.map +1 -1
- package/dist/validator/index.d.ts +1 -1
- package/dist/validator/index.d.ts.map +1 -1
- package/dist/validator/index.js +21 -0
- package/dist/validator/index.js.map +1 -1
- package/package.json +1 -1
package/dist/render-page.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { promises as fs } from "node:fs";
|
|
1
|
+
import { promises as fs, realpathSync as fsRealpathSync, } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { renderMarkdown, } from "./renderer/markdown.js";
|
|
4
4
|
import { renderMdx } from "./renderer/mdx.js";
|
|
5
|
+
import { extractFirstHeading } from "./seo/extract.js";
|
|
5
6
|
import { renderPage } from "./template/index.js";
|
|
6
7
|
import { buildSidebar } from "./template/sidebar.js";
|
|
7
8
|
import { renderDirectory } from "./directory.js";
|
|
8
|
-
import { convertMarkdownLinks } from "./link-transform.js";
|
|
9
|
+
import { convertMarkdownLinks, createLinkResolver } from "./link-transform.js";
|
|
9
10
|
export async function renderPageService(input) {
|
|
10
11
|
const { sourcePath, urlPath, rootDir, settings, mode } = input;
|
|
11
12
|
const isStatic = mode === "static";
|
|
@@ -26,12 +27,11 @@ export async function renderPageService(input) {
|
|
|
26
27
|
sidebar = await buildSidebar(rootDir, urlPath, settings, isStatic);
|
|
27
28
|
}
|
|
28
29
|
let body = result.html;
|
|
29
|
-
if (isStatic) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
body = convertMarkdownLinks(body);
|
|
30
|
+
if (isStatic || settings.generate.cleanUrls) {
|
|
31
|
+
// Rebase relative links/assets against the source file's directory and
|
|
32
|
+
// emit canonical site-relative routes (clean URLs). Dynamic serve
|
|
33
|
+
// without cleanUrls keeps .md links untouched — they resolve directly.
|
|
34
|
+
body = transformLinks(body, sourcePath, rootDir);
|
|
35
35
|
}
|
|
36
36
|
const html = renderPage({
|
|
37
37
|
title,
|
|
@@ -39,6 +39,8 @@ export async function renderPageService(input) {
|
|
|
39
39
|
filePath: urlPath,
|
|
40
40
|
settings,
|
|
41
41
|
frontmatter: result.frontmatter,
|
|
42
|
+
content,
|
|
43
|
+
kind: "document",
|
|
42
44
|
toc: result.toc,
|
|
43
45
|
sidebar,
|
|
44
46
|
urlPath,
|
|
@@ -73,16 +75,19 @@ export async function renderDirectoryPage(input) {
|
|
|
73
75
|
? path.basename(urlPath.replace(/\/+$/, "")) || urlPath
|
|
74
76
|
: "";
|
|
75
77
|
const title = titleOverride ?? (dirName ? humanizeFilename(dirName) : "Index");
|
|
78
|
+
const description = `Directory listing for ${title}`;
|
|
76
79
|
const html = renderPage({
|
|
77
80
|
title,
|
|
78
|
-
body: renderDirectory({ urlPath, entries: entriesWithSize }),
|
|
81
|
+
body: renderDirectory({ urlPath, entries: entriesWithSize, title }),
|
|
79
82
|
filePath: urlPath,
|
|
80
83
|
settings,
|
|
84
|
+
frontmatter: { description },
|
|
85
|
+
kind: "directory",
|
|
81
86
|
urlPath,
|
|
82
87
|
sidebar,
|
|
83
88
|
isStaticExport: isStatic,
|
|
84
89
|
});
|
|
85
|
-
return { html, title, frontmatter: {}, toc: [] };
|
|
90
|
+
return { html, title, frontmatter: {}, toc: [], description };
|
|
86
91
|
}
|
|
87
92
|
export function isHidden(filename, settings) {
|
|
88
93
|
for (const pattern of settings.files.extensions.hidden) {
|
|
@@ -91,7 +96,7 @@ export function isHidden(filename, settings) {
|
|
|
91
96
|
if (pattern.startsWith("*") && filename.endsWith(pattern.slice(1)))
|
|
92
97
|
return true;
|
|
93
98
|
}
|
|
94
|
-
if (filename.startsWith("_"))
|
|
99
|
+
if (filename.startsWith("_") || filename.startsWith("."))
|
|
95
100
|
return true;
|
|
96
101
|
return false;
|
|
97
102
|
}
|
|
@@ -101,12 +106,47 @@ export function isBlocked(ext, settings) {
|
|
|
101
106
|
export function isAllowedExtension(ext, settings) {
|
|
102
107
|
return settings.files.extensions.serve.includes(ext);
|
|
103
108
|
}
|
|
104
|
-
export
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
109
|
+
export { extractFirstHeading } from "./seo/extract.js";
|
|
110
|
+
/**
|
|
111
|
+
* Rebase every relative href/src in rendered body HTML against the source
|
|
112
|
+
* file's directory, emitting canonical site-relative routes. Unresolvable
|
|
113
|
+
* links are kept as-is and logged (they surface in --validate-md too).
|
|
114
|
+
*/
|
|
115
|
+
function transformLinks(html, sourcePath, rootDir) {
|
|
116
|
+
// Resolve symlinks on both sides so path.relative works even when the
|
|
117
|
+
// caller passed a symlinked rootDir (e.g. /var → /private/var on macOS)
|
|
118
|
+
// while the router resolved the source file to its real path.
|
|
119
|
+
const realRoot = realpathSyncSafe(rootDir);
|
|
120
|
+
const realSource = realpathSyncSafe(sourcePath);
|
|
121
|
+
const relDir = path
|
|
122
|
+
.relative(realRoot, path.dirname(realSource))
|
|
123
|
+
.replace(/\\/g, "/");
|
|
124
|
+
if (relDir.startsWith("..") || path.isAbsolute(relDir)) {
|
|
125
|
+
console.warn(`[mdsvr] ${path.basename(sourcePath)}: source file is outside the docs root — links left unchanged`);
|
|
126
|
+
return html;
|
|
127
|
+
}
|
|
128
|
+
const result = convertMarkdownLinks(html, {
|
|
129
|
+
sourceDirUrlPath: relDir ? `/${relDir}` : "/",
|
|
130
|
+
rootDir,
|
|
131
|
+
resolveFile: createLinkResolver(),
|
|
132
|
+
});
|
|
133
|
+
if (result.warnings.length > 0) {
|
|
134
|
+
const relSource = path.relative(rootDir, sourcePath);
|
|
135
|
+
for (const w of result.warnings) {
|
|
136
|
+
console.warn(`[mdsvr] ${relSource}: link "${w.url}" ${w.reason === "outside-root"
|
|
137
|
+
? "resolves outside the docs root"
|
|
138
|
+
: `target not found (${w.resolvedUrlPath})`}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return result.html;
|
|
142
|
+
}
|
|
143
|
+
function realpathSyncSafe(p) {
|
|
144
|
+
try {
|
|
145
|
+
return fsRealpathSync(p);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return p;
|
|
108
149
|
}
|
|
109
|
-
return null;
|
|
110
150
|
}
|
|
111
151
|
export function humanizeFilename(filename) {
|
|
112
152
|
return filename
|
|
@@ -115,28 +155,4 @@ export function humanizeFilename(filename) {
|
|
|
115
155
|
.trim()
|
|
116
156
|
.replace(/^\w/, (c) => c.toUpperCase());
|
|
117
157
|
}
|
|
118
|
-
export function fixAssetPaths(html, urlPath) {
|
|
119
|
-
// Calculate the root path for assets (everything up to the current directory)
|
|
120
|
-
const pathSegments = urlPath.split("/").filter(Boolean);
|
|
121
|
-
// Build the absolute assets path based on the current directory structure
|
|
122
|
-
let absoluteAssetsPath = "";
|
|
123
|
-
if (pathSegments.length === 0) {
|
|
124
|
-
// Root level: /assets/
|
|
125
|
-
absoluteAssetsPath = "/assets/";
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
// Subdirectory: assets are at the root level of the project
|
|
129
|
-
// Use all segments except the last one to build the path to assets
|
|
130
|
-
// For /k8s/LFS158-docs/12/, assets should be at /k8s/LFS158-docs/assets/
|
|
131
|
-
const rootSegments = pathSegments.slice(0, -1);
|
|
132
|
-
if (rootSegments.length > 0) {
|
|
133
|
-
absoluteAssetsPath = "/" + rootSegments.join("/") + "/assets/";
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
absoluteAssetsPath = "/assets/";
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
// Replace all relative assets/ paths with absolute paths
|
|
140
|
-
return html.replace(/(src|href|data-src|poster|content)="assets\//g, `$1="${absoluteAssetsPath}`);
|
|
141
|
-
}
|
|
142
158
|
//# sourceMappingURL=render-page.js.map
|
package/dist/render-page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-page.js","sourceRoot":"","sources":["../src/render-page.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"render-page.js","sourceRoot":"","sources":["../src/render-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,21 +11,5 @@ export interface MarkdownResult {
|
|
|
11
11
|
toc: TocItem[];
|
|
12
12
|
}
|
|
13
13
|
export declare function renderMarkdown(content: string, settings: Settings): MarkdownResult;
|
|
14
|
-
/**
|
|
15
|
-
* Extract the first H1 heading from markdown content (for SEO title fallback)
|
|
16
|
-
*/
|
|
17
|
-
export declare function extractFirstHeading(content: string): string | null;
|
|
18
|
-
/**
|
|
19
|
-
* Extract the first paragraph text from markdown content (for SEO description fallback)
|
|
20
|
-
* Skips frontmatter, headings, code blocks, and HTML comments
|
|
21
|
-
*/
|
|
22
|
-
export declare function extractFirstParagraph(content: string): string | null;
|
|
23
|
-
/**
|
|
24
|
-
* Extract SEO data from markdown content
|
|
25
|
-
*/
|
|
26
|
-
export declare function extractSeoData(content: string): {
|
|
27
|
-
title: string | null;
|
|
28
|
-
description: string | null;
|
|
29
|
-
};
|
|
30
14
|
export declare function renderMarkdownSimple(content: string): string;
|
|
31
15
|
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -1 +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;AAoDrD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;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;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/renderer/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAoDrD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;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;AA2GD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAgBhB;AAiBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiE5D"}
|
|
@@ -44,7 +44,7 @@ function convertGithubCallouts(html) {
|
|
|
44
44
|
function renderCodeBlockWithToolbar(codeHtml, lang, rawCode, escapeHtml) {
|
|
45
45
|
const langClass = lang ? ` class="hljs language-${lang}"` : ' class="hljs"';
|
|
46
46
|
const escapedRaw = escapeHtml(rawCode);
|
|
47
|
-
return `<
|
|
47
|
+
return `<div class="code-block-wrapper"><div class="code-block-container" data-code="${escapedRaw}">
|
|
48
48
|
<div class="code-block-toolbar">
|
|
49
49
|
<button class="code-block-btn code-block-btn-copy" title="Copy code" aria-label="Copy code">
|
|
50
50
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
@@ -74,8 +74,7 @@ function renderCodeBlockWithToolbar(codeHtml, lang, rawCode, escapeHtml) {
|
|
|
74
74
|
</button>
|
|
75
75
|
</div>
|
|
76
76
|
<pre><code${langClass}>${codeHtml}</code></pre>
|
|
77
|
-
|
|
78
|
-
</div></pre>\n`;
|
|
77
|
+
</div></div>\n`;
|
|
79
78
|
}
|
|
80
79
|
// Create markdown-it instance with settings
|
|
81
80
|
function createMarkdownIt(settings) {
|
|
@@ -87,7 +86,7 @@ function createMarkdownIt(settings) {
|
|
|
87
86
|
// ADD: intercept mermaid blocks
|
|
88
87
|
if (lang === "mermaid") {
|
|
89
88
|
const escaped = str.trim().replace(/</g, "<").replace(/>/g, ">");
|
|
90
|
-
return `<
|
|
89
|
+
return `<div class="mermaid-wrapper"><div class="mermaid-container">
|
|
91
90
|
<div class="mermaid-toolbar">
|
|
92
91
|
<button class="mermaid-btn mermaid-btn-chart" title="Chart view"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z"/><path d="M21.21 15.89A10 10 0 1 1 8 2.83"/></svg></button>
|
|
93
92
|
<button class="mermaid-btn mermaid-btn-code" title="Show code"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m18 16 4-4-4-4"/><path d="m6 8-4 4 4 4"/><path d="m14.5 4-5 16"/></svg></button>
|
|
@@ -101,7 +100,7 @@ function createMarkdownIt(settings) {
|
|
|
101
100
|
<div class="mermaid">${str.trim()}</div>
|
|
102
101
|
</div>
|
|
103
102
|
<pre class="mermaid-source"><code>${escaped}</code></pre>
|
|
104
|
-
</div></
|
|
103
|
+
</div></div>\n`;
|
|
105
104
|
}
|
|
106
105
|
// existing hljs logic — KEEP AS IS
|
|
107
106
|
if (lang && hljs.getLanguage(lang)) {
|
|
@@ -151,62 +150,6 @@ function extractToc(html) {
|
|
|
151
150
|
}
|
|
152
151
|
return toc;
|
|
153
152
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Extract the first H1 heading from markdown content (for SEO title fallback)
|
|
156
|
-
*/
|
|
157
|
-
export function extractFirstHeading(content) {
|
|
158
|
-
// Match markdown H1 heading (# Heading text)
|
|
159
|
-
const h1Match = content.match(/^#\s+(.+)$/m);
|
|
160
|
-
if (h1Match) {
|
|
161
|
-
return h1Match[1].trim();
|
|
162
|
-
}
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Extract the first paragraph text from markdown content (for SEO description fallback)
|
|
167
|
-
* Skips frontmatter, headings, code blocks, and HTML comments
|
|
168
|
-
*/
|
|
169
|
-
export function extractFirstParagraph(content) {
|
|
170
|
-
// Remove frontmatter
|
|
171
|
-
const withoutFrontmatter = content.replace(/^---[\s\S]*?---/, "");
|
|
172
|
-
// Remove code blocks
|
|
173
|
-
const withoutCodeBlocks = withoutFrontmatter.replace(/```[\s\S]*?```/g, "");
|
|
174
|
-
// Remove HTML comments
|
|
175
|
-
const withoutComments = withoutCodeBlocks.replace(/<!--[\s\S]*?-->/g, "");
|
|
176
|
-
// Remove headings
|
|
177
|
-
const withoutHeadings = withoutComments.replace(/^#{1,6}\s+.+$/gm, "");
|
|
178
|
-
// Remove horizontal rules
|
|
179
|
-
const withoutRules = withoutHeadings.replace(/^[\s]*[-_*]{3,}[\s]*$/gm, "");
|
|
180
|
-
// Find first non-empty paragraph (text followed by blank line or end of string)
|
|
181
|
-
// Match text that isn't a list item, blockquote, or other special markdown
|
|
182
|
-
const paragraphRegex = /^([^\s#\-\*\>\|\!\`].+)$/m;
|
|
183
|
-
const match = withoutRules.match(paragraphRegex);
|
|
184
|
-
if (match) {
|
|
185
|
-
// Clean up the text: remove markdown formatting and trim
|
|
186
|
-
let text = match[1]
|
|
187
|
-
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1") // Remove links, keep text
|
|
188
|
-
.replace(/\*\*([^*]+)\*\*/g, "$1") // Remove bold
|
|
189
|
-
.replace(/\*([^*]+)\*/g, "$1") // Remove italic
|
|
190
|
-
.replace(/`([^`]+)`/g, "$1") // Remove inline code
|
|
191
|
-
.replace(/\s+/g, " ") // Normalize whitespace
|
|
192
|
-
.trim();
|
|
193
|
-
// Limit to reasonable length for description
|
|
194
|
-
if (text.length > 300) {
|
|
195
|
-
text = text.slice(0, 297).trim() + "...";
|
|
196
|
-
}
|
|
197
|
-
return text || null;
|
|
198
|
-
}
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Extract SEO data from markdown content
|
|
203
|
-
*/
|
|
204
|
-
export function extractSeoData(content) {
|
|
205
|
-
return {
|
|
206
|
-
title: extractFirstHeading(content),
|
|
207
|
-
description: extractFirstParagraph(content),
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
153
|
// For V1 compatibility - simple render without frontmatter extraction
|
|
211
154
|
export function renderMarkdownSimple(content) {
|
|
212
155
|
const md = new MarkdownIt({
|
|
@@ -217,7 +160,7 @@ export function renderMarkdownSimple(content) {
|
|
|
217
160
|
// ADD: intercept mermaid blocks
|
|
218
161
|
if (lang === "mermaid") {
|
|
219
162
|
const escaped = str.trim().replace(/</g, "<").replace(/>/g, ">");
|
|
220
|
-
return `<
|
|
163
|
+
return `<div class="mermaid-wrapper"><div class="mermaid-container">
|
|
221
164
|
<div class="mermaid-toolbar">
|
|
222
165
|
<button class="mermaid-btn mermaid-btn-chart" title="Chart view"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z"/><path d="M21.21 15.89A10 10 0 1 1 8 2.83"/></svg></button>
|
|
223
166
|
<button class="mermaid-btn mermaid-btn-code" title="Show code"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m18 16 4-4-4-4"/><path d="m6 8-4 4 4 4"/><path d="m14.5 4-5 16"/></svg></button>
|
|
@@ -231,7 +174,7 @@ export function renderMarkdownSimple(content) {
|
|
|
231
174
|
<div class="mermaid">${str.trim()}</div>
|
|
232
175
|
</div>
|
|
233
176
|
<pre class="mermaid-source"><code>${escaped}</code></pre>
|
|
234
|
-
</div></
|
|
177
|
+
</div></div>\n`;
|
|
235
178
|
}
|
|
236
179
|
// existing hljs logic — KEEP AS IS
|
|
237
180
|
if (lang && hljs.getLanguage(lang)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/renderer/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,kFAAkF;AAClF,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,OAAO,GAA2B;QACtC,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;QACV,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;KACjB,CAAC;IAEF,MAAM,MAAM,GAA2B;QACrC,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,WAAW;KACpB,CAAC;IAEF,0CAA0C;IAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,0HAA0H,EAC1H,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,SAAS,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,+BAA+B,WAAW,yDAAyD,YAAY,iBAAiB,OAAO,cAAc,CAAC;IAC/J,CAAC,CACF,CAAC;IAEF,iDAAiD;IACjD,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,4FAA4F,EAC5F,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,SAAS,CAAC;QAC7D,OAAO,+BAA+B,WAAW,yDAAyD,YAAY,iBAAiB,OAAO,cAAc,CAAC;IAC/J,CAAC,CACF,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAeD,SAAS,0BAA0B,CACjC,QAAgB,EAChB,IAAmB,EACnB,OAAe,EACf,UAAmC;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;IAC5E,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/renderer/markdown.ts"],"names":[],"mappings":"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"}
|
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;AAc5D,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,CAgLf"}
|
package/dist/router.js
CHANGED
|
@@ -2,6 +2,7 @@ import { promises as fs, createReadStream } from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { renderPage } from "./template/index.js";
|
|
4
4
|
import { generateSitemap } from "./generators/sitemap.js";
|
|
5
|
+
import { generateRobotsTxt } from "./generators/robots.js";
|
|
5
6
|
import { generateFeed } from "./generators/feed.js";
|
|
6
7
|
import { renderPageService, renderDirectoryPage, isHidden, isBlocked, isAllowedExtension, } from "./render-page.js";
|
|
7
8
|
const MIME = {
|
|
@@ -40,12 +41,28 @@ export async function route(req, res, rootDir, settings, searchIndexCache) {
|
|
|
40
41
|
const url = req.url || "/";
|
|
41
42
|
const urlPath = decodeURIComponent(url.split("?")[0]);
|
|
42
43
|
// Special routes
|
|
44
|
+
const requestOrigin = () => {
|
|
45
|
+
const proto = (req.headers["x-forwarded-proto"] || "http")
|
|
46
|
+
.split(",")[0]
|
|
47
|
+
.trim();
|
|
48
|
+
return req.headers.host ? `${proto}://${req.headers.host}` : undefined;
|
|
49
|
+
};
|
|
43
50
|
if (urlPath === "/sitemap.xml" && settings.seo.generateSitemap) {
|
|
44
|
-
const sitemap = await generateSitemap(rootDir, settings);
|
|
51
|
+
const sitemap = await generateSitemap(rootDir, settings, requestOrigin());
|
|
52
|
+
if (sitemap === null) {
|
|
53
|
+
sendError(res, 404, "Not Found", settings);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
45
56
|
res.writeHead(200, { "Content-Type": "application/xml" });
|
|
46
57
|
res.end(sitemap);
|
|
47
58
|
return;
|
|
48
59
|
}
|
|
60
|
+
if (urlPath === "/robots.txt" && settings.seo.generateRobotsTxt) {
|
|
61
|
+
const robots = await generateRobotsTxt(rootDir, settings, requestOrigin());
|
|
62
|
+
res.writeHead(200, { "Content-Type": "text/plain" });
|
|
63
|
+
res.end(robots);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
49
66
|
if (urlPath === "/feed.xml" && settings.seo.generateRssFeed) {
|
|
50
67
|
const feed = await generateFeed(rootDir, settings);
|
|
51
68
|
res.writeHead(200, { "Content-Type": "application/rss+xml" });
|
|
@@ -259,6 +276,7 @@ function sendError(res, code, message, settings) {
|
|
|
259
276
|
</div>`,
|
|
260
277
|
filePath: "",
|
|
261
278
|
settings,
|
|
279
|
+
kind: "generic",
|
|
262
280
|
isStaticExport: false,
|
|
263
281
|
});
|
|
264
282
|
res.writeHead(code, { "Content-Type": "text/html; charset=utf-8" });
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content extraction helpers for SEO metadata.
|
|
3
|
+
* (Moved from renderer/markdown.ts; description extraction is wired so it
|
|
4
|
+
* actually runs, and tightened to ~160 chars.)
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Extract the first H1 heading from markdown content (for SEO title fallback).
|
|
8
|
+
*/
|
|
9
|
+
export declare function extractFirstHeading(content: string): string | null;
|
|
10
|
+
/**
|
|
11
|
+
* Extract the first meaningful paragraph from markdown content
|
|
12
|
+
* (for the meta description fallback). Skips frontmatter, code blocks,
|
|
13
|
+
* headings, HTML, comments, and nav-like lines; drops label-only lines;
|
|
14
|
+
* requires ~40 chars of real prose (shorter paragraphs are kept only as a
|
|
15
|
+
* last resort); collapses whitespace; cuts at ~160 chars on a word
|
|
16
|
+
* boundary (hard cap 200).
|
|
17
|
+
*/
|
|
18
|
+
export declare function extractFirstParagraph(content: string): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Extract SEO data (title + description) from markdown content.
|
|
21
|
+
*/
|
|
22
|
+
export declare function extractSeoData(content: string): {
|
|
23
|
+
title: string | null;
|
|
24
|
+
description: string | null;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/seo/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+EH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAkBD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiCpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAC/C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAKA"}
|