@dogsbay/format-astro 0.2.0-beta.115 → 0.2.0-beta.116
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/api-markdown.d.ts +8 -0
- package/dist/api-markdown.d.ts.map +1 -0
- package/dist/api-markdown.js +41 -0
- package/dist/api-markdown.js.map +1 -0
- package/dist/blog.d.ts.map +1 -1
- package/dist/blog.js +5 -1
- package/dist/blog.js.map +1 -1
- package/dist/browser.d.ts +14 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +14 -0
- package/dist/browser.js.map +1 -0
- package/dist/canonical.d.ts +34 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +107 -0
- package/dist/canonical.js.map +1 -0
- package/dist/head-metadata.d.ts +26 -0
- package/dist/head-metadata.d.ts.map +1 -0
- package/dist/head-metadata.js +56 -0
- package/dist/head-metadata.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/llms-txt.d.ts +3 -3
- package/dist/llms-txt.d.ts.map +1 -1
- package/dist/llms-txt.js +48 -242
- package/dist/llms-txt.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +3 -1
- package/dist/plugins.js.map +1 -1
- package/dist/project.d.ts +36 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +276 -841
- package/dist/project.js.map +1 -1
- package/dist/redirects.d.ts +22 -0
- package/dist/redirects.d.ts.map +1 -1
- package/dist/redirects.js +70 -123
- package/dist/redirects.js.map +1 -1
- package/dist/serialize.d.ts +4 -13
- package/dist/serialize.d.ts.map +1 -1
- package/dist/serialize.js +304 -102
- package/dist/serialize.js.map +1 -1
- package/dist/sitemap.d.ts +44 -17
- package/dist/sitemap.d.ts.map +1 -1
- package/dist/sitemap.js +31 -104
- package/dist/sitemap.js.map +1 -1
- package/dist/taxonomy.d.ts.map +1 -1
- package/dist/taxonomy.js +7 -1
- package/dist/taxonomy.js.map +1 -1
- package/dist/theme-css.d.ts +26 -0
- package/dist/theme-css.d.ts.map +1 -0
- package/dist/theme-css.js +642 -0
- package/dist/theme-css.js.map +1 -0
- package/dist/tone-classes.d.ts +14 -0
- package/dist/tone-classes.d.ts.map +1 -0
- package/dist/tone-classes.js +30 -0
- package/dist/tone-classes.js.map +1 -0
- package/dist/write-if-changed.d.ts +21 -0
- package/dist/write-if-changed.d.ts.map +1 -0
- package/dist/write-if-changed.js +58 -0
- package/dist/write-if-changed.js.map +1 -0
- package/package.json +13 -5
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Block Markdown → HTML (an operation's description). */
|
|
2
|
+
export declare function apiBlockHtml(text: string): string;
|
|
3
|
+
/** One line of Markdown → inline HTML (a parameter or property). */
|
|
4
|
+
export declare function apiInlineHtml(text: string): string;
|
|
5
|
+
/** A schema property list with every `description` rendered inline,
|
|
6
|
+
* through nested `properties` / `items`. A copy; the node is untouched. */
|
|
7
|
+
export declare function apiPropertiesHtml(list: unknown): unknown;
|
|
8
|
+
//# sourceMappingURL=api-markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-markdown.d.ts","sourceRoot":"","sources":["../src/api-markdown.ts"],"names":[],"mappings":"AAgBA,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAID;4EAC4E;AAC5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAUxD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API description text → HTML, for the API components that render it with
|
|
3
|
+
* `set:html` (EndpointCard, PropertyItem, ParameterTable).
|
|
4
|
+
*
|
|
5
|
+
* OpenAPI defines `description` as CommonMark, and every producer of an
|
|
6
|
+
* `endpoint` node (format-openapi, the MDX adapters) supplies text or
|
|
7
|
+
* Markdown, never HTML. It was passed through as HTML: a spec's markdown
|
|
8
|
+
* showed as `## Authentication` and `**Creating a token**`, and a spec from
|
|
9
|
+
* someone else's repository could put a `<script>` into the built site.
|
|
10
|
+
* Rendered here with raw HTML OFF (`<` is escaped) and markdown-it's link
|
|
11
|
+
* validation (no `javascript:` / `vbscript:` / `file:` / `data:` links).
|
|
12
|
+
*/
|
|
13
|
+
import MarkdownIt from "markdown-it";
|
|
14
|
+
const md = new MarkdownIt({ html: false, linkify: false, typographer: false });
|
|
15
|
+
/** Block Markdown → HTML (an operation's description). */
|
|
16
|
+
export function apiBlockHtml(text) {
|
|
17
|
+
return md.render(text).trim();
|
|
18
|
+
}
|
|
19
|
+
/** One line of Markdown → inline HTML (a parameter or property). */
|
|
20
|
+
export function apiInlineHtml(text) {
|
|
21
|
+
return md.renderInline(text.replace(/\s*\n\s*/g, " ")).trim();
|
|
22
|
+
}
|
|
23
|
+
/** A schema property list with every `description` rendered inline,
|
|
24
|
+
* through nested `properties` / `items`. A copy; the node is untouched. */
|
|
25
|
+
export function apiPropertiesHtml(list) {
|
|
26
|
+
if (!Array.isArray(list))
|
|
27
|
+
return list;
|
|
28
|
+
return list.map((p) => {
|
|
29
|
+
if (!p || typeof p !== "object")
|
|
30
|
+
return p;
|
|
31
|
+
const o = { ...p };
|
|
32
|
+
if (typeof o.description === "string")
|
|
33
|
+
o.description = apiInlineHtml(o.description);
|
|
34
|
+
if (o.properties)
|
|
35
|
+
o.properties = apiPropertiesHtml(o.properties);
|
|
36
|
+
if (o.items)
|
|
37
|
+
o.items = apiPropertiesHtml(o.items);
|
|
38
|
+
return o;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=api-markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-markdown.js","sourceRoot":"","sources":["../src/api-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAE/E,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAID;4EAC4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,EAAE,GAAI,CAAU,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;YAAE,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACpF,IAAI,CAAC,CAAC,UAAU;YAAE,CAAC,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,CAAC,KAAK;YAAE,CAAC,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/blog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../src/blog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../src/blog.ts"],"names":[],"mappings":"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"}
|
package/dist/blog.js
CHANGED
|
@@ -25,7 +25,9 @@
|
|
|
25
25
|
* never changes after the build, so doing it in the browser would
|
|
26
26
|
* re-walk the DOM on every page load for a constant.
|
|
27
27
|
*/
|
|
28
|
-
import { existsSync, mkdirSync, readFileSync, rmSync
|
|
28
|
+
import { existsSync, mkdirSync, readFileSync, rmSync } from "node:fs";
|
|
29
|
+
// Unchanged files are not rewritten, so `site dev` reloads only what changed
|
|
30
|
+
import { writeFileSync } from "./write-if-changed.js";
|
|
29
31
|
import { dirname, join } from "node:path";
|
|
30
32
|
import { basePathSegments, joinBaseUrl, withBasePath } from "./base-path.js";
|
|
31
33
|
import { derivePageDescription, textOfNode } from "./taxonomy.js";
|
|
@@ -287,6 +289,7 @@ const title = pageNo === 1 ? siteConfig.siteName : \`\${siteConfig.siteName} —
|
|
|
287
289
|
---
|
|
288
290
|
<DocsLayout
|
|
289
291
|
siteName={siteConfig.siteName}
|
|
292
|
+
siteTagline={siteConfig.tagline}
|
|
290
293
|
title={title}
|
|
291
294
|
nav={navData as any[]}
|
|
292
295
|
headings={[]}
|
|
@@ -301,6 +304,7 @@ const title = pageNo === 1 ? siteConfig.siteName : \`\${siteConfig.siteName} —
|
|
|
301
304
|
plausibleScriptUrl={siteConfig.plausible?.scriptUrl}
|
|
302
305
|
tagPrefixes={siteConfig.tagPrefixes}
|
|
303
306
|
tagLabels={siteConfig.tagLabels}
|
|
307
|
+
tagAutoColor={siteConfig.tagAutoColor}
|
|
304
308
|
taxonomyIndexPaths={siteConfig.taxonomyIndexPaths}
|
|
305
309
|
chrome="blog"
|
|
306
310
|
favicon={favicon}
|
package/dist/blog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.js","sourceRoot":"","sources":["../src/blog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"blog.js","sourceRoot":"","sources":["../src/blog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Worker- and browser-safe part of @dogsbay/format-astro: the builders
|
|
3
|
+
* and helpers that import no Node built-ins. The main entry also writes files
|
|
4
|
+
* (project generation, plugins, taxonomy pages) and needs Node.
|
|
5
|
+
*
|
|
6
|
+
* Used by packages that run in a Worker or a browser as well as in Node,
|
|
7
|
+
* such as @dogsbay/site-check and dogsbay-ssg.
|
|
8
|
+
*/
|
|
9
|
+
export * from "./lead.js";
|
|
10
|
+
export * from "./llms-txt.js";
|
|
11
|
+
export * from "./sitemap.js";
|
|
12
|
+
export * from "./redirects.js";
|
|
13
|
+
export * from "./base-path.js";
|
|
14
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Worker- and browser-safe part of @dogsbay/format-astro: the builders
|
|
3
|
+
* and helpers that import no Node built-ins. The main entry also writes files
|
|
4
|
+
* (project generation, plugins, taxonomy pages) and needs Node.
|
|
5
|
+
*
|
|
6
|
+
* Used by packages that run in a Worker or a browser as well as in Node,
|
|
7
|
+
* such as @dogsbay/site-check and dogsbay-ssg.
|
|
8
|
+
*/
|
|
9
|
+
export * from "./lead.js";
|
|
10
|
+
export * from "./llms-txt.js";
|
|
11
|
+
export * from "./sitemap.js";
|
|
12
|
+
export * from "./redirects.js";
|
|
13
|
+
export * from "./base-path.js";
|
|
14
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical URLs on a versioned site: a page of an older version names the
|
|
3
|
+
* same page in the default version, and leaves the sitemap. The decision is
|
|
4
|
+
* `decideCanonical` in @dogsbay/site-files, shared with dogsbay-ssg (its
|
|
5
|
+
* src/core/canonical.ts); this file gives it the default version's pages
|
|
6
|
+
* and redirects from the imported pages. See dogsbay-ssg
|
|
7
|
+
* plans/canonical-versions.md, step 2.
|
|
8
|
+
*/
|
|
9
|
+
import type { ExportPage } from "@dogsbay/types";
|
|
10
|
+
import { type VersionSeo } from "@dogsbay/site-files";
|
|
11
|
+
export interface CanonicalPlanOptions {
|
|
12
|
+
/** Pages the build does not emit (fragments, `excludeFromRoutes`): never a canonical target. */
|
|
13
|
+
isEmitted?: (page: ExportPage) => boolean;
|
|
14
|
+
siteUrl?: string;
|
|
15
|
+
/** urlBase + basePath, as the sitemap takes it. */
|
|
16
|
+
basePath?: string;
|
|
17
|
+
versions?: Array<{
|
|
18
|
+
id: string;
|
|
19
|
+
} & VersionSeo>;
|
|
20
|
+
defaultVersion?: string;
|
|
21
|
+
redirects?: Record<string, string | {
|
|
22
|
+
to: string;
|
|
23
|
+
status?: number;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export interface PageCanonical {
|
|
27
|
+
/** The canonical URL when it is not the page itself (DocsLayout computes that one). */
|
|
28
|
+
url?: string;
|
|
29
|
+
noindex: boolean;
|
|
30
|
+
sitemap: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** Per page slug: its canonical, noindex and sitemap decision. */
|
|
33
|
+
export declare function canonicalPlan(pages: ExportPage[], o: CanonicalPlanOptions): Map<string, PageCanonical>;
|
|
34
|
+
//# sourceMappingURL=canonical.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIvE,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CA4FtG"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { decideCanonical } from "@dogsbay/site-files";
|
|
2
|
+
import { normalizePrefix, originOf, pageHref } from "./sitemap.js";
|
|
3
|
+
import { inPageUnit, pageUnitPrefix } from "./redirects.js";
|
|
4
|
+
const URL_RE = /^[a-z][a-z0-9+.-]*:/i;
|
|
5
|
+
/** Per page slug: its canonical, noindex and sitemap decision. */
|
|
6
|
+
export function canonicalPlan(pages, o) {
|
|
7
|
+
const plan = new Map();
|
|
8
|
+
const prefix = normalizePrefix(o.basePath);
|
|
9
|
+
const origin = o.siteUrl && /^https?:\/\//.test(o.siteUrl) ? originOf(o.siteUrl).replace(/\/+$/, "") : undefined;
|
|
10
|
+
const basePath = prefix.replace(/^\//, "");
|
|
11
|
+
// Site paths as page slugs are written: no slashes at the ends, no base path, no suffix.
|
|
12
|
+
const norm = (s) => {
|
|
13
|
+
let p = s.trim().replace(/[?#].*$/, "").replace(/^\/+|\/+$/g, "");
|
|
14
|
+
if (basePath && (p === basePath || p.startsWith(basePath + "/")))
|
|
15
|
+
p = p.slice(basePath.length).replace(/^\//, "");
|
|
16
|
+
return p.replace(/(^|\/)index$/, "");
|
|
17
|
+
};
|
|
18
|
+
const live = (p) => !p.redirect && p.frontmatter?.draft !== true && p.frontmatter?.status !== "draft" && (o.isEmitted?.(p) ?? true);
|
|
19
|
+
const slugOf = (p) => norm(p.slug);
|
|
20
|
+
const pageSlugs = new Set(pages.filter(live).map(slugOf));
|
|
21
|
+
// Redirects by site path, chains collapsed; front matter paths are inside the page's unit (#096).
|
|
22
|
+
const raw = new Map();
|
|
23
|
+
for (const p of pages) {
|
|
24
|
+
// Front matter paths are relative to the page's language and version (#096), as collectRedirects reads them.
|
|
25
|
+
const unit = pageUnitPrefix(p);
|
|
26
|
+
if (typeof p.redirect === "string")
|
|
27
|
+
raw.set(slugOf(p), URL_RE.test(p.redirect) ? p.redirect : norm(inPageUnit(p.redirect, unit, prefix)));
|
|
28
|
+
const aliases = p.frontmatter?.aliases;
|
|
29
|
+
if (Array.isArray(aliases))
|
|
30
|
+
for (const a of aliases)
|
|
31
|
+
if (typeof a === "string" && !URL_RE.test(a))
|
|
32
|
+
raw.set(norm(inPageUnit(a, unit, prefix)), slugOf(p));
|
|
33
|
+
}
|
|
34
|
+
for (const [from, v] of Object.entries(o.redirects ?? {})) {
|
|
35
|
+
const to = typeof v === "string" ? v : v.to;
|
|
36
|
+
raw.set(norm(from), URL_RE.test(to) ? to : norm(to));
|
|
37
|
+
}
|
|
38
|
+
const resolve = (from) => {
|
|
39
|
+
let to = raw.get(from);
|
|
40
|
+
const seen = new Set([from]);
|
|
41
|
+
while (to !== undefined && !URL_RE.test(to) && !pageSlugs.has(to) && raw.has(to) && !seen.has(to)) {
|
|
42
|
+
seen.add(to);
|
|
43
|
+
to = raw.get(to);
|
|
44
|
+
}
|
|
45
|
+
if (to === undefined || seen.has(to))
|
|
46
|
+
return undefined;
|
|
47
|
+
return URL_RE.test(to) || pageSlugs.has(to) ? to : undefined;
|
|
48
|
+
};
|
|
49
|
+
// The default version's pages per language and namespace, by path inside the version.
|
|
50
|
+
const group = (p) => `${p.multiSource?.namespace ?? ""}\0${p.multiSource?.locale ?? ""}`;
|
|
51
|
+
const inVersion = (p) => {
|
|
52
|
+
const orig = (p.multiSource?.originalSlug ?? p.slug).replace(/^\/+|\/+$/g, "");
|
|
53
|
+
return orig === "" ? "index" : orig.replace(/\/index$/, "");
|
|
54
|
+
};
|
|
55
|
+
/** The page's site-path prefix: its slug without the path inside its version. */
|
|
56
|
+
const prefixOf = (p) => {
|
|
57
|
+
const s = slugOf(p);
|
|
58
|
+
const inV = inVersion(p);
|
|
59
|
+
if (inV === "index")
|
|
60
|
+
return s;
|
|
61
|
+
return s.endsWith("/" + inV) ? s.slice(0, -inV.length - 1) : s === inV ? "" : s;
|
|
62
|
+
};
|
|
63
|
+
const defaults = new Map();
|
|
64
|
+
if (o.defaultVersion) {
|
|
65
|
+
for (const p of pages) {
|
|
66
|
+
if (p.multiSource?.version !== o.defaultVersion || !live(p))
|
|
67
|
+
continue;
|
|
68
|
+
const g = defaults.get(group(p)) ?? { prefix: prefixOf(p), pages: new Map() };
|
|
69
|
+
g.pages.set(inVersion(p), slugOf(p));
|
|
70
|
+
defaults.set(group(p), g);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const hasOlder = pages.some((p) => p.multiSource?.version && p.multiSource.version !== o.defaultVersion);
|
|
74
|
+
const url = (slug) => (origin ? `${origin}${pageHref(slug, prefix)}` : undefined);
|
|
75
|
+
for (const p of pages) {
|
|
76
|
+
if (!live(p))
|
|
77
|
+
continue;
|
|
78
|
+
const version = o.versions?.find((v) => v.id === p.multiSource?.version);
|
|
79
|
+
const table = defaults.get(group(p));
|
|
80
|
+
const fm = typeof p.frontmatter?.canonicalUrl === "string" ? p.frontmatter.canonicalUrl : undefined;
|
|
81
|
+
const d = decideCanonical({
|
|
82
|
+
selfUrl: url(slugOf(p)),
|
|
83
|
+
isDefault: !hasOlder || !p.multiSource?.version || p.multiSource.version === o.defaultVersion || !table,
|
|
84
|
+
path: inVersion(p),
|
|
85
|
+
version,
|
|
86
|
+
frontmatter: fm,
|
|
87
|
+
defaultHas: (path) => !!table?.pages.has(path),
|
|
88
|
+
defaultRedirect: (path) => {
|
|
89
|
+
if (!table)
|
|
90
|
+
return undefined;
|
|
91
|
+
const r = resolve([table.prefix, path === "index" ? "" : path].filter(Boolean).join("/"));
|
|
92
|
+
if (r === undefined || URL_RE.test(r))
|
|
93
|
+
return r;
|
|
94
|
+
const inside = table.prefix ? (r === table.prefix ? "index" : r.startsWith(table.prefix + "/") ? r.slice(table.prefix.length + 1) : undefined) : r || "index";
|
|
95
|
+
return inside !== undefined && table.pages.has(inside) ? inside : `/${r}`;
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
const t = d.target;
|
|
99
|
+
plan.set(p.slug, {
|
|
100
|
+
url: t.kind === "self" ? undefined : t.kind === "url" ? t.url : url(table.pages.get(t.path)),
|
|
101
|
+
noindex: d.noindex,
|
|
102
|
+
sitemap: d.sitemap,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return plan;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=canonical.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Head metadata per page (dogsbay-ssg plans/head-metadata.md, Blume item 2):
|
|
3
|
+
* whether it is a home page (JSON-LD `WebSite`, og:type website), its
|
|
4
|
+
* `hreflang` alternates across languages, and its nav trail for JSON-LD
|
|
5
|
+
* `BreadcrumbList`. The builders are @dogsbay/site-files', shared with
|
|
6
|
+
* dogsbay-ssg; this file finds the inputs in the imported pages and the nav.
|
|
7
|
+
*/
|
|
8
|
+
import type { ExportPage, NavItem } from "@dogsbay/types";
|
|
9
|
+
import { type HreflangLink } from "@dogsbay/site-files";
|
|
10
|
+
export interface HeadMetadata {
|
|
11
|
+
home: boolean;
|
|
12
|
+
alternates: HreflangLink[];
|
|
13
|
+
breadcrumbJsonLd?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export interface HeadMetadataOptions {
|
|
16
|
+
siteUrl?: string;
|
|
17
|
+
/** urlBase + basePath, as the sitemap takes it. */
|
|
18
|
+
basePath?: string;
|
|
19
|
+
defaultLocale?: string;
|
|
20
|
+
/** Pages the build writes (not fragments or excluded routes); others are never an alternate. Drafts and redirects are left out as well. */
|
|
21
|
+
isEmitted?: (p: ExportPage) => boolean;
|
|
22
|
+
/** Pages that list alternates: their own canonical and indexable (hreflang between non-canonical URLs is ignored by search engines). */
|
|
23
|
+
indexable?: (p: ExportPage) => boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function headMetadata(pages: ExportPage[], nav: NavItem[], o: HeadMetadataOptions): Map<string, HeadMetadata>;
|
|
26
|
+
//# sourceMappingURL=head-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head-metadata.d.ts","sourceRoot":"","sources":["../src/head-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2IAA2I;IAC3I,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC;IACvC,wIAAwI;IACxI,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC;CACxC;AAQD,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CA+CnH"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { buildBreadcrumbJsonLd, buildHreflangLinks } from "@dogsbay/site-files";
|
|
2
|
+
import { normalizePrefix, originOf, pageHref } from "./sitemap.js";
|
|
3
|
+
/** Path inside the page's source (`guide/install`), `index` for a home page. */
|
|
4
|
+
function inside(p) {
|
|
5
|
+
const orig = (p.multiSource?.originalSlug ?? p.slug).replace(/^\/+|\/+$/g, "");
|
|
6
|
+
return orig === "" || orig === "index" ? "index" : orig.replace(/\/index$/, "");
|
|
7
|
+
}
|
|
8
|
+
export function headMetadata(pages, nav, o) {
|
|
9
|
+
const plan = new Map();
|
|
10
|
+
const live = (p) => !p.redirect && p.frontmatter?.draft !== true && p.frontmatter?.status !== "draft" && (o.isEmitted?.(p) ?? true);
|
|
11
|
+
const prefix = normalizePrefix(o.basePath);
|
|
12
|
+
const origin = o.siteUrl && /^https?:\/\//.test(o.siteUrl) ? originOf(o.siteUrl).replace(/\/+$/, "") : undefined;
|
|
13
|
+
const url = (slug) => (origin ? `${origin}${pageHref(slug, prefix)}` : undefined);
|
|
14
|
+
// Copies of one page across languages: same namespace, version and path inside the source.
|
|
15
|
+
const copies = new Map();
|
|
16
|
+
const locales = new Set(pages.map((p) => p.multiSource?.locale).filter(Boolean));
|
|
17
|
+
if (origin && locales.size >= 2) {
|
|
18
|
+
for (const p of pages) {
|
|
19
|
+
const m = p.multiSource;
|
|
20
|
+
if (!m?.locale || !live(p))
|
|
21
|
+
continue;
|
|
22
|
+
const key = `${m.namespace ?? ""}\0${m.version ?? ""}\0${inside(p)}`;
|
|
23
|
+
const list = copies.get(key) ?? [];
|
|
24
|
+
list.push({ lang: m.locale, url: url(p.slug) });
|
|
25
|
+
copies.set(key, list);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// The nav trail to each page: labels and hrefs from the top level down.
|
|
29
|
+
const trails = new Map();
|
|
30
|
+
const clean = (href) => href.replace(/[?#].*$/, "").replace(/^\/+|\/+$/g, "").replace(/(^|\/)index$/, "");
|
|
31
|
+
const mount = prefix.replace(/^\/+/, "");
|
|
32
|
+
const key = (href) => {
|
|
33
|
+
const h = clean(href);
|
|
34
|
+
return mount && (h === mount || h.startsWith(`${mount}/`)) ? h.slice(mount.length).replace(/^\/+/, "") : h;
|
|
35
|
+
};
|
|
36
|
+
const walk = (items, chain) => {
|
|
37
|
+
for (const it of items) {
|
|
38
|
+
const here = [...chain, { name: it.label, href: it.href }];
|
|
39
|
+
if (it.href && !/^[a-z][a-z0-9+.-]*:/i.test(it.href) && !it.href.includes("#") && !trails.has(key(it.href)))
|
|
40
|
+
trails.set(key(it.href), here);
|
|
41
|
+
if (it.children?.length)
|
|
42
|
+
walk(it.children, here);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
walk(nav, []);
|
|
46
|
+
for (const p of pages) {
|
|
47
|
+
const home = inside(p) === "index";
|
|
48
|
+
const m = p.multiSource;
|
|
49
|
+
const alternates = m?.locale && live(p) && (o.indexable?.(p) ?? true) ? buildHreflangLinks(copies.get(`${m.namespace ?? ""}\0${m.version ?? ""}\0${inside(p)}`) ?? [], o.defaultLocale) : [];
|
|
50
|
+
const trail = origin && !home ? trails.get(clean(p.slug)) : undefined;
|
|
51
|
+
const breadcrumbJsonLd = trail ? buildBreadcrumbJsonLd(trail.map((t) => ({ name: t.name, url: t.href ? url(key(t.href)) : undefined }))) : undefined;
|
|
52
|
+
plan.set(p.slug, { home, alternates, ...(breadcrumbJsonLd ? { breadcrumbJsonLd } : {}) });
|
|
53
|
+
}
|
|
54
|
+
return plan;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=head-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head-metadata.js","sourceRoot":"","sources":["../src/head-metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
export { treeToAstro, escapeExpr, escapeAttr, escapeTemplate } from "./serialize.js";
|
|
2
|
+
export { writeFileSync, copyFileSync } from "./write-if-changed.js";
|
|
2
3
|
export { detectLeadingNodes, deriveDescription } from "./lead.js";
|
|
3
4
|
export type { LeadingNodeInfo } from "./lead.js";
|
|
4
5
|
export type { AstroGenResult, AstroGenOptions, AstroRenderMode } from "./serialize.js";
|
|
5
6
|
export { DEFAULT_BASE_PATH, normalizeBasePath, basePathSegments, joinBaseUrl, buildCurrentPath, parseSiteUrl, combinePrefix, resolvePrefixes, } from "./base-path.js";
|
|
6
7
|
export { buildLlmsTxt, buildSectionLlmsTxt, buildLlmsFullTxt, extractFirstParagraph, } from "./llms-txt.js";
|
|
7
8
|
export type { BuildLlmsTxtOptions, BuildLlmsFullTxtOptions, } from "./llms-txt.js";
|
|
8
|
-
export { buildSitemap, buildSitemapIndex } from "./sitemap.js";
|
|
9
|
+
export { assertLeafSitemap, buildSitemap, buildSitemapFiles, buildSitemapIndex } from "./sitemap.js";
|
|
9
10
|
export { buildBlogData, blogAdjacency, emitBlogFiles, indexPageCount, readingMinutes, countWords, BLOG_DEFAULTS, } from "./blog.js";
|
|
10
11
|
export type { BlogEmitConfig, BlogData, BlogPostRef, BlogAdjacency, } from "./blog.js";
|
|
11
12
|
export type { BuildSitemapOptions } from "./sitemap.js";
|
|
12
|
-
export { exportAstroProject, emitSiteScaffold, emitSiteConfig, emitAstroPages, emitConfigDerivedFiles, syncSiteDependencies, emitAgentReadinessFiles, emitSwitcherMap, emitMissingTranslationStubs, emitPassthroughAstroPages, emitDeployArtifacts, workersSubpathOutDir, makeSlugExcluder, } from "./project.js";
|
|
13
|
+
export { exportAstroProject, emitSiteScaffold, emitSiteConfig, emitAstroPages, emitConfigDerivedFiles, syncSiteDependencies, copyComponents, emitAgentReadinessFiles, emitSwitcherMap, emitMissingTranslationStubs, emitPassthroughAstroPages, emitDeployArtifacts, workersSubpathOutDir, makeSlugExcluder, dropUnsafeNavHrefs, } from "./project.js";
|
|
13
14
|
export type { AstroProjectOptions, SwitcherMap, PassthroughCopy, } from "./project.js";
|
|
14
15
|
export { emitPluginRuntime } from "./plugins.js";
|
|
15
16
|
export type { EmitPluginRuntimeOptions, PluginClientModulesGroup, PluginStylesGroup, PluginClientConfig, } from "./plugins.js";
|
|
@@ -29,4 +30,5 @@ export type { DiffMarks } from "./diff-decoration.js";
|
|
|
29
30
|
*/
|
|
30
31
|
export { BOOK_SEGMENT, assembleBook, bookHeading, bookSlugFrom, estimateTreeBytes, openAsPageNode, rewriteIntraBookLinks, shiftHeadings, slugFromHref, } from "./granularity.js";
|
|
31
32
|
export type { AssembleBookOptions, BookView } from "./granularity.js";
|
|
33
|
+
export { pageUnitPrefix, inPageUnit, normalizeTarget } from "./redirects.js";
|
|
32
34
|
//# 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":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKvF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAKrG,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAaxD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,mBAAmB,EAKnB,oBAAoB,EACpB,gBAAgB,EAEhB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,eAAe,GAChB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;GASG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Astro serializer (TreeNode[] → Astro component markup)
|
|
2
2
|
export { treeToAstro, escapeExpr, escapeAttr, escapeTemplate } from "./serialize.js";
|
|
3
|
+
export { writeFileSync, copyFileSync } from "./write-if-changed.js";
|
|
3
4
|
// Auto-lede detection — figures out whether a page tree already
|
|
4
5
|
// has a leading H1 / paragraph so format-astro can decide whether
|
|
5
6
|
// to inject frontmatter title + description at the top of <main>.
|
|
@@ -12,7 +13,7 @@ export { DEFAULT_BASE_PATH, normalizeBasePath, basePathSegments, joinBaseUrl, bu
|
|
|
12
13
|
// llms.txt + llms-full.txt builders (LLM discovery files)
|
|
13
14
|
export { buildLlmsTxt, buildSectionLlmsTxt, buildLlmsFullTxt, extractFirstParagraph, } from "./llms-txt.js";
|
|
14
15
|
// Sitemap builders (per-mount, sitemaps.org 0.9)
|
|
15
|
-
export { buildSitemap, buildSitemapIndex } from "./sitemap.js";
|
|
16
|
+
export { assertLeafSitemap, buildSitemap, buildSitemapFiles, buildSitemapIndex } from "./sitemap.js";
|
|
16
17
|
// Blog emission — reverse-chron index + post adjacency. The sibling of
|
|
17
18
|
// taxonomy.ts: same data-file + generated-route + writer-override shape,
|
|
18
19
|
// sorted by date instead of grouped by term. See plans/blog-capability.md.
|
|
@@ -28,12 +29,14 @@ export { buildBlogData, blogAdjacency, emitBlogFiles, indexPageCount, readingMin
|
|
|
28
29
|
// alone; `dogsbay site build` calls `emitAstroPages` +
|
|
29
30
|
// `emitConfigDerivedFiles` + `emitAgentReadinessFiles`. Pure
|
|
30
31
|
// `dogsbay convert --to astro` (Step 7) calls only `emitAstroPages`.
|
|
31
|
-
export { exportAstroProject, emitSiteScaffold, emitSiteConfig, emitAstroPages, emitConfigDerivedFiles, syncSiteDependencies, emitAgentReadinessFiles, emitSwitcherMap, emitMissingTranslationStubs, emitPassthroughAstroPages, emitDeployArtifacts,
|
|
32
|
+
export { exportAstroProject, emitSiteScaffold, emitSiteConfig, emitAstroPages, emitConfigDerivedFiles, syncSiteDependencies, copyComponents, emitAgentReadinessFiles, emitSwitcherMap, emitMissingTranslationStubs, emitPassthroughAstroPages, emitDeployArtifacts,
|
|
32
33
|
// Where a Workers subpath-mounted build actually lands. Consumers that
|
|
33
34
|
// read the BUILT site (e.g. `dogsbay site check --dist`) must resolve
|
|
34
35
|
// the same directory the emitter told Astro to write to, or they audit
|
|
35
36
|
// an empty dist/ root.
|
|
36
|
-
workersSubpathOutDir, makeSlugExcluder,
|
|
37
|
+
workersSubpathOutDir, makeSlugExcluder,
|
|
38
|
+
// Drops nav hrefs with a scheme other than http(s)/mailto/tel.
|
|
39
|
+
dropUnsafeNavHrefs, } from "./project.js";
|
|
37
40
|
// Plugin runtime codegen — emits the entry, virtual config modules,
|
|
38
41
|
// stylesheets, and Vite alias file each plugin needs to participate
|
|
39
42
|
// in the Astro / Vite build. See plans/plugin-api.md.
|
|
@@ -54,4 +57,5 @@ export { DIFF_CSS, decorateDiff, diffMarksOf, hasDiffMarks, injectAttrs, inlineS
|
|
|
54
57
|
* See plans/granularity-views.md and docs/single-page-view.md.
|
|
55
58
|
*/
|
|
56
59
|
export { BOOK_SEGMENT, assembleBook, bookHeading, bookSlugFrom, estimateTreeBytes, openAsPageNode, rewriteIntraBookLinks, shiftHeadings, slugFromHref, } from "./granularity.js";
|
|
60
|
+
export { pageUnitPrefix, inPageUnit, normalizeTarget } from "./redirects.js";
|
|
57
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEpE,gEAAgE;AAChE,kEAAkE;AAClE,kEAAkE;AAClE,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAIlE,oEAAoE;AACpE,qEAAqE;AACrE,uCAAuC;AACvC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,0DAA0D;AAC1D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAMvB,iDAAiD;AACjD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAErG,uEAAuE;AACvE,yEAAyE;AACzE,2EAA2E;AAC3E,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,WAAW,CAAC;AASnB,oDAAoD;AACpD,EAAE;AACF,qEAAqE;AACrE,kEAAkE;AAClE,mBAAmB;AACnB,EAAE;AACF,gEAAgE;AAChE,sEAAsE;AACtE,uDAAuD;AACvD,6DAA6D;AAC7D,qEAAqE;AACrE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,mBAAmB;AACnB,uEAAuE;AACvE,sEAAsE;AACtE,uEAAuE;AACvE,uBAAuB;AACvB,oBAAoB,EACpB,gBAAgB;AAChB,+DAA+D;AAC/D,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAOtB,oEAAoE;AACpE,oEAAoE;AACpE,sDAAsD;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQjD,kEAAkE;AAClE,uEAAuE;AACvE,0DAA0D;AAC1D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACb,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;GASG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/llms-txt.d.ts
CHANGED
|
@@ -103,7 +103,7 @@ export interface BuildLlmsFullTxtOptions extends BuildLlmsTxtOptions {
|
|
|
103
103
|
* - Pages reachable in `pages` but absent from `nav` appended under
|
|
104
104
|
* a final `## {otherPagesLabel}` section. Set `otherPagesLabel`
|
|
105
105
|
* to `false` to suppress (e.g. when nav is the publish list).
|
|
106
|
-
* - External hrefs are skipped.
|
|
106
|
+
* - External hrefs, and hrefs outside `hrefPrefix`, are skipped.
|
|
107
107
|
*/
|
|
108
108
|
export declare function buildLlmsTxt(siteConfig: Pick<SiteConfig, "siteName" | "description" | "siteUrl">, nav: NavItem[], pages: ExportPage[], options?: BuildLlmsTxtOptions): string;
|
|
109
109
|
/**
|
|
@@ -113,8 +113,8 @@ export declare function buildLlmsTxt(siteConfig: Pick<SiteConfig, "siteName" | "
|
|
|
113
113
|
*/
|
|
114
114
|
export declare function buildSectionLlmsTxt(siteConfig: Pick<SiteConfig, "siteName" | "siteUrl">, group: NavItem, pages: ExportPage[], options?: BuildLlmsTxtOptions): string;
|
|
115
115
|
/**
|
|
116
|
-
* Bundle every page
|
|
117
|
-
* nav
|
|
116
|
+
* Bundle every page into a single document: nav order, then pages outside
|
|
117
|
+
* the nav by slug. Each page is delimited by a `# Title` header and `URL:`
|
|
118
118
|
* line, then either the full body (default) or just a description.
|
|
119
119
|
*/
|
|
120
120
|
export declare function buildLlmsFullTxt(siteConfig: Pick<SiteConfig, "siteName" | "description" | "siteUrl">, nav: NavItem[], pages: ExportPage[], options?: BuildLlmsFullTxtOptions): string;
|
package/dist/llms-txt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EACV,UAAU,EAEV,OAAO,EACP,UAAU,EACV,QAAQ,EACT,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EACV,UAAU,EAEV,OAAO,EACP,UAAU,EACV,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAmBxB,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACjC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;CAC9C;AASD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,EACpE,GAAG,EAAE,OAAO,EAAE,EACd,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,GAAE,mBAAwB,GAChC,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,EACpD,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,GAAE,mBAAwB,GAChC,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,EACpE,GAAG,EAAE,OAAO,EAAE,EACd,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,GAAE,uBAA4B,GACpC,MAAM,CAqBR;AAkGD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAO9D"}
|