@x12i/docify-export 1.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 ADDED
@@ -0,0 +1,3 @@
1
+ # @x12i/docify-export
2
+
3
+ Build a content bundle from markdown books + catalog/use-cases: HTML reader pages, MD/PDF downloads, use-case packs, and `agent-manifest.json`.
@@ -0,0 +1,25 @@
1
+ import { type AgentManifest, type Catalog, type SiteConfig, type UseCase, type UseCasesFile } from "@x12i/docify-core";
2
+ export type BuildBundleOptions = {
3
+ contentRoot: string;
4
+ outDir: string;
5
+ catalog: Catalog;
6
+ useCases: UseCasesFile;
7
+ site: SiteConfig;
8
+ /** Directory of product site-pages markdown (with YAML front-matter). */
9
+ sitePagesDir?: string;
10
+ themeBookCss?: string;
11
+ themeSiteCss?: string;
12
+ themeExtrasCss?: string;
13
+ /** Attempt PDF when wkhtmltopdf is on PATH. Default true. */
14
+ tryPdf?: boolean;
15
+ };
16
+ export declare function assembleUseCaseMarkdown(uc: UseCase, catalog: Catalog, contentRoot: string): {
17
+ markdown: string;
18
+ missing: string[];
19
+ };
20
+ export declare function buildContentBundle(opts: BuildBundleOptions): Promise<{
21
+ manifest: AgentManifest;
22
+ missing: string[];
23
+ }>;
24
+ export declare function copyBundleInto(srcBundle: string, dest: string): void;
25
+ //# sourceMappingURL=build-bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-bundle.d.ts","sourceRoot":"","sources":["../src/build-bundle.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,OAAO,EAGZ,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAS3B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAiBF,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAyDzC;AASD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA6MzD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAG7D"}
@@ -0,0 +1,254 @@
1
+ import { mkdirSync, writeFileSync, readFileSync, copyFileSync, existsSync, cpSync, } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { spawnSync } from "node:child_process";
4
+ import { bookPath, loadSitePages, } from "@x12i/docify-core";
5
+ import { chapterIndex, renderBookHtml, renderBookLandingHtml, renderSitePageHtml, spliceChapters, } from "@x12i/docify-render";
6
+ function routeToFile(route) {
7
+ const clean = route.replace(/\/+$/, "") || "/";
8
+ if (clean === "/")
9
+ return "index.html";
10
+ return `${clean.replace(/^\//, "")}.html`;
11
+ }
12
+ function ensureDir(p) {
13
+ mkdirSync(p, { recursive: true });
14
+ }
15
+ function write(path, body) {
16
+ ensureDir(dirname(path));
17
+ writeFileSync(path, body);
18
+ }
19
+ export function assembleUseCaseMarkdown(uc, catalog, contentRoot) {
20
+ const missing = [];
21
+ const lines = [];
22
+ lines.push(`# ${uc.title}`);
23
+ lines.push("");
24
+ lines.push(`> **Use case id:** \`${uc.id}\``);
25
+ lines.push(`> **Goal:** ${uc.goal}`);
26
+ lines.push(`> **Audiences:** ${uc.audiences.join(", ")}`);
27
+ if (uc.tags.length)
28
+ lines.push(`> **Tags:** ${uc.tags.join(", ")}`);
29
+ lines.push("");
30
+ lines.push("## Reading path");
31
+ lines.push("");
32
+ for (const step of uc.path) {
33
+ const book = catalog.books.find((b) => b.id === step.bookId);
34
+ const title = book?.title ?? step.bookId;
35
+ lines.push(`1. **${title}** (${step.audience}) → chapters: ${step.chapters.map((c) => `\`${c}\``).join(", ")}`);
36
+ }
37
+ lines.push("");
38
+ for (const step of uc.path) {
39
+ const book = catalog.books.find((b) => b.id === step.bookId);
40
+ const mdPath = bookPath(contentRoot, book?.dir ?? step.bookId, step.audience);
41
+ if (!existsSync(mdPath)) {
42
+ missing.push(`${step.bookId}/${step.audience}/BOOK.md`);
43
+ continue;
44
+ }
45
+ const md = readFileSync(mdPath, "utf8");
46
+ const { found, missing: miss } = spliceChapters(md, step.chapters);
47
+ for (const m of miss)
48
+ missing.push(`${step.bookId}/${step.audience}#${m}`);
49
+ for (const ch of found) {
50
+ lines.push(`## From: ${book?.title ?? step.bookId} — ${ch.title}`);
51
+ lines.push("");
52
+ lines.push(ch.markdown.trim());
53
+ lines.push("");
54
+ }
55
+ }
56
+ if (uc.alsoSee.length) {
57
+ lines.push("## Also see");
58
+ lines.push("");
59
+ for (const id of uc.alsoSee) {
60
+ const book = catalog.books.find((b) => b.id === id);
61
+ lines.push(`- **${book?.title ?? id}** (\`${id}\`) — ${book?.blurb ?? ""}`);
62
+ }
63
+ lines.push("");
64
+ }
65
+ lines.push("---");
66
+ lines.push("");
67
+ lines.push("_Generated use-case pack for agents and humans. See `agent-manifest.json` for discovery._");
68
+ lines.push("");
69
+ return { markdown: lines.join("\n"), missing };
70
+ }
71
+ function tryBuildPdf(htmlPath, pdfPath) {
72
+ const bin = spawnSync("wkhtmltopdf", ["--quiet", htmlPath, pdfPath], {
73
+ encoding: "utf8",
74
+ });
75
+ return bin.status === 0 && existsSync(pdfPath);
76
+ }
77
+ export async function buildContentBundle(opts) {
78
+ const out = opts.outDir;
79
+ const missing = [];
80
+ ensureDir(out);
81
+ ensureDir(join(out, "downloads", "books"));
82
+ ensureDir(join(out, "downloads", "use-cases"));
83
+ ensureDir(join(out, "books"));
84
+ ensureDir(join(out, "assets"));
85
+ if (opts.themeBookCss && existsSync(opts.themeBookCss)) {
86
+ copyFileSync(opts.themeBookCss, join(out, "assets", "book.css"));
87
+ }
88
+ if (opts.themeSiteCss && existsSync(opts.themeSiteCss)) {
89
+ copyFileSync(opts.themeSiteCss, join(out, "assets", "site.css"));
90
+ }
91
+ if (opts.themeExtrasCss && existsSync(opts.themeExtrasCss)) {
92
+ copyFileSync(opts.themeExtrasCss, join(out, "assets", "extras.css"));
93
+ }
94
+ writeFileSync(join(out, "catalog.json"), JSON.stringify(opts.catalog, null, 2));
95
+ writeFileSync(join(out, "use-cases.json"), JSON.stringify(opts.useCases, null, 2));
96
+ writeFileSync(join(out, "site.json"), JSON.stringify(opts.site, null, 2));
97
+ const manifestBooks = [];
98
+ for (const book of opts.catalog.books) {
99
+ const mdMap = {};
100
+ const pdfMap = {};
101
+ const chMap = {};
102
+ for (const audience of book.audiences) {
103
+ const src = bookPath(opts.contentRoot, book.dir, audience);
104
+ if (!existsSync(src)) {
105
+ missing.push(src);
106
+ continue;
107
+ }
108
+ const markdown = readFileSync(src, "utf8");
109
+ const relMd = `downloads/books/${book.id}/${audience}.md`;
110
+ const relCh = `downloads/books/${book.id}/${audience}.chapters.json`;
111
+ const relHtml = `books/${book.id}/${audience}.html`;
112
+ write(join(out, relMd), markdown);
113
+ const chapters = chapterIndex(markdown);
114
+ write(join(out, relCh), JSON.stringify(chapters, null, 2));
115
+ const { html } = await renderBookHtml(markdown, {
116
+ title: `${book.title} — ${audience}`,
117
+ kicker: book.kicker,
118
+ color: book.color,
119
+ cssHref: "../../assets/book.css",
120
+ });
121
+ write(join(out, relHtml), html);
122
+ let pdfRel = null;
123
+ if (opts.tryPdf !== false) {
124
+ const pdfAbs = join(out, "downloads", "books", book.id, `${audience}.pdf`);
125
+ const ok = tryBuildPdf(join(out, relHtml), pdfAbs);
126
+ if (ok)
127
+ pdfRel = `downloads/books/${book.id}/${audience}.pdf`;
128
+ }
129
+ pdfMap[audience] = pdfRel;
130
+ mdMap[audience] = relMd;
131
+ chMap[audience] = relCh;
132
+ }
133
+ manifestBooks.push({
134
+ id: book.id,
135
+ audiences: book.audiences,
136
+ md: mdMap,
137
+ pdf: pdfMap,
138
+ chapters: chMap,
139
+ });
140
+ }
141
+ const manifestUseCases = [];
142
+ for (const uc of opts.useCases.useCases) {
143
+ const { markdown, missing: miss } = assembleUseCaseMarkdown(uc, opts.catalog, opts.contentRoot);
144
+ missing.push(...miss);
145
+ const rel = `downloads/use-cases/${uc.id}.md`;
146
+ write(join(out, rel), markdown);
147
+ manifestUseCases.push({
148
+ id: uc.id,
149
+ title: uc.title,
150
+ md: rel,
151
+ path: uc.path,
152
+ });
153
+ }
154
+ if (missing.length) {
155
+ const err = new Error(`Ebook bundle has missing chapter/book refs:\n${missing.map((m) => ` - ${m}`).join("\n")}`);
156
+ err.missing = missing;
157
+ throw err;
158
+ }
159
+ const manifest = {
160
+ version: 1,
161
+ product: opts.site.product,
162
+ site: opts.site.siteUrl,
163
+ knowledgePackage: opts.site.knowledgePackage,
164
+ roles: opts.catalog.roles.map((r) => r.id),
165
+ books: manifestBooks,
166
+ useCases: manifestUseCases,
167
+ };
168
+ write(join(out, "agent-manifest.json"), JSON.stringify(manifest, null, 2));
169
+ // Site pages + book landings
170
+ const sitePagesDir = opts.sitePagesDir ?? join(opts.contentRoot, "site-pages");
171
+ let loadedPages = [];
172
+ if (existsSync(sitePagesDir)) {
173
+ loadedPages = loadSitePages(sitePagesDir, {
174
+ contentRoot: opts.contentRoot,
175
+ catalog: opts.catalog,
176
+ });
177
+ }
178
+ const pagesManifest = { version: 1, pages: [] };
179
+ const landingsByBook = new Map();
180
+ for (const loaded of loadedPages) {
181
+ if (loaded.page.page === "book-landing" && loaded.page.bookId) {
182
+ landingsByBook.set(loaded.page.bookId, loaded);
183
+ continue;
184
+ }
185
+ const file = routeToFile(loaded.page.route);
186
+ const html = await renderSitePageHtml(loaded, {
187
+ site: opts.site,
188
+ catalog: opts.catalog,
189
+ });
190
+ write(join(out, file), html);
191
+ pagesManifest.pages.push({
192
+ page: loaded.page.page,
193
+ route: loaded.page.route,
194
+ file,
195
+ title: loaded.page.title,
196
+ });
197
+ }
198
+ for (const book of opts.catalog.books) {
199
+ const loaded = landingsByBook.get(book.id) ?? null;
200
+ const route = `/books/${book.id}`;
201
+ const file = routeToFile(route);
202
+ const mBook = manifestBooks.find((b) => b.id === book.id);
203
+ const html = await renderBookLandingHtml(loaded, {
204
+ site: opts.site,
205
+ catalog: opts.catalog,
206
+ book,
207
+ downloads: mBook
208
+ ? { md: mBook.md, pdf: mBook.pdf }
209
+ : undefined,
210
+ });
211
+ write(join(out, file), html);
212
+ pagesManifest.pages.push({
213
+ page: "book-landing",
214
+ route,
215
+ file,
216
+ title: book.title,
217
+ bookId: book.id,
218
+ });
219
+ }
220
+ write(join(out, "pages.json"), JSON.stringify(pagesManifest, null, 2));
221
+ // Copy present screenshots into the bundle when @x12i/docify-screenshots is available
222
+ try {
223
+ const { createRequire } = await import("node:module");
224
+ const require = createRequire(import.meta.url);
225
+ // Prefer sibling package in monorepo, else installed module
226
+ let collect = null;
227
+ try {
228
+ const mod = await import(new URL("../docify-screenshots/dist/index.js", import.meta.url).href);
229
+ collect = mod.collectScreenshotsForBundle;
230
+ }
231
+ catch {
232
+ try {
233
+ const mod = require("@x12i/docify-screenshots");
234
+ collect = mod.collectScreenshotsForBundle;
235
+ }
236
+ catch {
237
+ collect = null;
238
+ }
239
+ }
240
+ if (collect) {
241
+ const shotResult = collect(opts.contentRoot, join(out, "screenshots"));
242
+ write(join(out, "screenshots-status.json"), JSON.stringify(shotResult, null, 2));
243
+ }
244
+ }
245
+ catch {
246
+ // screenshots package optional
247
+ }
248
+ return { manifest, missing };
249
+ }
250
+ export function copyBundleInto(srcBundle, dest) {
251
+ ensureDir(dest);
252
+ cpSync(srcBundle, dest, { recursive: true });
253
+ }
254
+ //# sourceMappingURL=build-bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-bundle.js","sourceRoot":"","sources":["../src/build-bundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { assembleUseCaseMarkdown, buildContentBundle, copyBundleInto, type BuildBundleOptions, } from "./build-bundle.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { assembleUseCaseMarkdown, buildContentBundle, copyBundleInto, } from "./build-bundle.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,GAEf,MAAM,mBAAmB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@x12i/docify-export",
3
+ "version": "1.0.0",
4
+ "description": "Build content bundles (MD/PDF packs, site pages, agent-manifest) for x12i docify.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "prebuild": "rm -rf dist",
20
+ "build": "tsc -p tsconfig.build.json",
21
+ "test": "vitest run --passWithNoTests",
22
+ "typecheck": "tsc --noEmit"
23
+ },
24
+ "engines": {
25
+ "node": ">=18.0.0"
26
+ },
27
+ "dependencies": {
28
+ "@x12i/docify-core": "^1.0.0",
29
+ "@x12i/docify-render": "^1.0.0"
30
+ },
31
+ "peerDependencies": {
32
+ "@x12i/docify-screenshots": "^1.0.0"
33
+ },
34
+ "peerDependenciesMeta": {
35
+ "@x12i/docify-screenshots": {
36
+ "optional": true
37
+ }
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^20.14.0",
41
+ "typescript": "^5.6.0",
42
+ "vitest": "^2.1.0"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public",
46
+ "registry": "https://registry.npmjs.org/"
47
+ },
48
+ "license": "exellix-license"
49
+ }