noblog 0.2.3 → 0.3.0-beta.2
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 +280 -121
- package/dist/client-CzKR81Or.js +551 -0
- package/dist/client-CzKR81Or.js.map +1 -0
- package/dist/config-check.impl-C5FM7uWi.js +14 -0
- package/dist/config-check.impl-C5FM7uWi.js.map +1 -0
- package/dist/config-csbquMhF.js +21 -0
- package/dist/config-csbquMhF.js.map +1 -0
- package/dist/config-file-C07nmm45.js +27 -0
- package/dist/config-file-C07nmm45.js.map +1 -0
- package/dist/defaults-RGOB9tfi.js +10 -0
- package/dist/defaults-RGOB9tfi.js.map +1 -0
- package/dist/errors-BCRhKbgG.js +73 -0
- package/dist/errors-BCRhKbgG.js.map +1 -0
- package/dist/frontmatter-fields-BkXq38CO.js +71 -0
- package/dist/frontmatter-fields-BkXq38CO.js.map +1 -0
- package/dist/generate.d.ts +1 -0
- package/dist/generate.impl-ChFrtwtC.js +34 -0
- package/dist/generate.impl-ChFrtwtC.js.map +1 -0
- package/dist/generate.js +198 -940
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +213 -18
- package/dist/index.js +5 -0
- package/package.json +32 -17
- package/schema/config.json +178 -0
- package/skills/noblog-config/SKILL.md +40 -0
- package/skills/noblog-config/assets/nobloger.yaml +30 -0
- package/skills/noblog-config/assets/thought-lite.yaml +47 -0
- package/skills/noblog-config/references/config-schema.md +110 -0
- package/skills/noblog-config/references/notion-property-types.md +42 -0
- package/skills/noblog-config/references/theme-examples.md +41 -0
- package/dist/cmds/generate.d.ts +0 -3
- package/dist/cmds/generate.d.ts.map +0 -1
- package/dist/generate.cjs +0 -970
- package/dist/generate.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/noblog/format.d.ts +0 -24
- package/dist/lib/noblog/format.d.ts.map +0 -1
- package/dist/lib/noblog/noblog.d.ts +0 -31
- package/dist/lib/noblog/noblog.d.ts.map +0 -1
- package/dist/lib/noblog/utils.d.ts +0 -36
- package/dist/lib/noblog/utils.d.ts.map +0 -1
- package/dist/lib/notion/client.d.ts +0 -8
- package/dist/lib/notion/client.d.ts.map +0 -1
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sources":["../src/lib/noblog/format.ts","../src/lib/notion/client.ts","../src/lib/noblog/utils.ts","../src/lib/noblog/noblog.ts","../src/cmds/generate.ts"],"sourcesContent":[null,null,null,null,null],"names":["fmt.toggle","fmt.addTabSpace","notion_client","link","fmt.image","fmt.divider","fmt.equation","fmt.link","fmt.heading2","fmt.table","fmt.inlineEquation","fmt.GetPrefixSuffix","fmt.codeBlock","fmt.heading1","fmt.heading3","fmt.quote","fmt.todo","fmt.callout","fmt.bullet"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","names":["packageJson.version"],"sources":["../package.json","../src/commands/config-check.ts","../src/commands/config.ts","../src/commands/generate.ts","../src/app.ts","../src/workflows/generate.ts","../src/main.ts","../src/cli.ts"],"sourcesContent":["","import { buildCommand } from \"@stricli/core\";\n\nexport const configCheckCommand = buildCommand({\n loader: async () => import(\"./config-check.impl.js\"),\n parameters: {\n flags: {\n config: {\n kind: \"parsed\",\n brief: \"YAML configuration file\",\n placeholder: \"PATH\",\n parse: (input) => input,\n },\n },\n positional: {\n kind: \"tuple\",\n parameters: [],\n },\n },\n docs: {\n brief: \"Validate a YAML configuration without network access\",\n },\n});\n","import { buildRouteMap } from \"@stricli/core\";\nimport { configCheckCommand } from \"./config-check.js\";\n\nexport const configCommand = buildRouteMap({\n routes: {\n check: configCheckCommand,\n },\n docs: {\n brief: \"Inspect Noblog configuration\",\n },\n});\n","import { buildCommand } from \"@stricli/core\";\n\nexport const generateCommand = buildCommand({\n loader: async () => import(\"./generate.impl.js\"),\n parameters: {\n flags: {\n verbose: {\n kind: \"boolean\",\n brief: \"Print diagnostic information\",\n default: false,\n withNegated: false,\n },\n config: {\n kind: \"parsed\",\n brief: \"YAML configuration file\",\n placeholder: \"PATH\",\n parse: (input) => input,\n optional: true,\n },\n layout: {\n kind: \"parsed\",\n brief: \"Layout path relative to SAVE_PATH\",\n placeholder: \"PATH\",\n parse: (input) => input,\n optional: true,\n },\n store: {\n kind: \"parsed\",\n brief: \"Directory for canonical Markdown files\",\n placeholder: \"PATH\",\n parse: (input) => input,\n optional: true,\n },\n },\n aliases: {\n v: \"verbose\",\n },\n positional: {\n kind: \"tuple\",\n parameters: [\n {\n brief: \"Public view directory for database posts\",\n placeholder: \"SAVE_PATH\",\n parse: (input) => input,\n optional: true,\n },\n {\n brief: \"Deprecated compatibility argument; ignored\",\n placeholder: \"SUB_PATH\",\n parse: (input) => input,\n optional: true,\n },\n ],\n },\n },\n docs: {\n brief: \"Generate blog content from Notion\",\n fullDescription:\n \"Fetch published pages from Notion and write Astro-compatible Markdown files. \" +\n \"Only database posts receive public symlinks; child pages live in the canonical store. \" +\n \"The legacy SUB_PATH argument is accepted but ignored.\",\n },\n});\n","import {\n buildApplication,\n buildRouteMap,\n ExitCode,\n help,\n run,\n version,\n} from \"@stricli/core\";\nimport packageJson from \"../package.json\" with { type: \"json\" };\nimport { configCommand } from \"./commands/config.js\";\nimport { generateCommand } from \"./commands/generate.js\";\nimport { ConfigurationError } from \"./config.js\";\nimport type { CliContext } from \"./context.js\";\n\nconst root = buildRouteMap({\n routes: {\n config: configCommand,\n generate: generateCommand,\n },\n docs: {\n brief: \"Generate static blog content from Notion\",\n fullDescription:\n \"Running noblog without a subcommand is equivalent to 'noblog generate'.\\n\" +\n \"The legacy 'help' and 'version' commands are also supported.\\n\\n\" +\n \"Generation requires environment variables:\\n\" +\n \" NOTION_API_SECRET Your Notion API secret\\n\" +\n \" NOBLOG_DATABASE_ID Your Notion database ID\",\n },\n});\n\nconst helpFormatting = {\n caseStyle: \"original\",\n useAliasInUsageLine: false,\n onlyRequiredInUsageLine: false,\n} as const;\n\nexport const app = buildApplication(\n root,\n {\n name: \"noblog\",\n scanner: {\n allowArgumentEscapeSequence: true,\n },\n determineExitCode: (error) =>\n error instanceof ConfigurationError ? 2 : ExitCode.CommandRunError,\n },\n {\n help: help({\n brief: \"Show help information\",\n defaultForRouteMap: true,\n formatting: helpFormatting,\n }),\n version: version({\n brief: \"Show version information\",\n info: { currentVersion: `noblog v${packageJson.version}` },\n alias: false,\n }),\n },\n);\n\nconst PATH_FLAGS = new Set([\"--config\", \"--layout\", \"--store\"]);\n\nexport async function runCli(\n inputs: readonly string[],\n context: CliContext,\n): Promise<void> {\n const escapeIndex = inputs.indexOf(\"--\");\n const commandInputs =\n escapeIndex === -1 ? inputs : inputs.slice(0, escapeIndex);\n const escapedInputs = escapeIndex === -1 ? [] : inputs.slice(escapeIndex);\n\n let normalizedInputs: readonly string[];\n if (hasLegacyControl(commandInputs, \"help\")) {\n normalizedInputs = [\"--help\"];\n } else if (\n hasLegacyControl(commandInputs, \"version\") ||\n hasLegacyControl(commandInputs, \"--version\")\n ) {\n normalizedInputs = [\"--version\"];\n } else {\n // Legacy control words were global. Keep the first explicit command and\n // skip later ones; escaped words and flag values remain positional data.\n const remainingInputs: string[] = [];\n for (let index = 0; index < commandInputs.length; index++) {\n const input = commandInputs[index];\n if (input === undefined) continue;\n if (input === \"generate\" && index !== 0) continue;\n\n remainingInputs.push(input);\n const flagValue = getFlagValue(commandInputs, index);\n if (PATH_FLAGS.has(input) && flagValue !== undefined) {\n remainingInputs.push(flagValue);\n index++;\n }\n }\n normalizedInputs = [...remainingInputs, ...escapedInputs];\n\n if (\n normalizedInputs[0] !== \"generate\" &&\n normalizedInputs[0] !== \"config\" &&\n normalizedInputs[0] !== \"-h\" &&\n normalizedInputs[0] !== \"--help\" &&\n normalizedInputs[0] !== \"--version\"\n ) {\n normalizedInputs = [\"generate\", ...normalizedInputs];\n }\n }\n\n await run(app, normalizedInputs, context);\n\n const exitCode = context.process.exitCode;\n if (typeof exitCode === \"number\" && exitCode < 0) {\n context.process.exitCode =\n exitCode === ExitCode.InvalidArgument ||\n exitCode === ExitCode.UnknownCommand\n ? 2\n : 1;\n }\n}\n\nfunction hasLegacyControl(\n inputs: readonly string[],\n control: \"help\" | \"version\" | \"--version\",\n): boolean {\n for (let index = 0; index < inputs.length; index++) {\n const input = inputs[index];\n if (input === undefined) continue;\n if (\n PATH_FLAGS.has(input) &&\n getFlagValue(inputs, index) !== undefined\n ) {\n index++;\n continue;\n }\n if (input === control) return true;\n }\n return false;\n}\n\nfunction getFlagValue(\n inputs: readonly string[],\n flagIndex: number,\n): string | undefined {\n const value = inputs[flagIndex + 1];\n return value !== undefined && !value.startsWith(\"-\") ? value : undefined;\n}\n","import type { NoblogConfig } from \"../config.js\";\nimport type { NotionPropertyMap } from \"../lib/noblog/config.js\";\nimport {\n renderPages,\n resolveStoreLayoutPath,\n writePages,\n} from \"../lib/noblog/index.js\";\nimport type { FrontmatterAdapter } from \"../lib/noblog/types.js\";\nimport { createNotionSource } from \"../lib/notion/client.js\";\n\nexport interface GenerateOptions {\n savePath: string;\n storePath: string;\n layoutPath: string;\n recursive: boolean;\n childPageMarker: string;\n propertyMap?: NotionPropertyMap;\n frontmatter?: FrontmatterAdapter;\n verbose: boolean;\n}\n\nexport interface GenerateOutput {\n stdout: { write(chunk: string): void };\n stderr: { write(chunk: string): void };\n}\n\nexport async function generateBlog(\n config: NoblogConfig,\n options: GenerateOptions,\n output: GenerateOutput,\n): Promise<void> {\n const notion = createNotionSource(config);\n const storeLayoutPath = resolveStoreLayoutPath(options);\n\n if (options.verbose) {\n output.stderr.write(\"Fetching posts from Notion...\\n\");\n }\n\n const posts = await notion.listPages();\n\n if (options.verbose) {\n output.stderr.write(\n `Found ${posts.length} pages\\n` +\n `Save path: ${options.savePath}\\n` +\n `Store path: ${options.storePath}\\n` +\n `Layout path: ${options.layoutPath}\\n`,\n );\n }\n\n const pages = await renderPages(posts, notion, {\n layoutPath: storeLayoutPath,\n recursive: options.recursive,\n childPageMarker: options.childPageMarker,\n ...(options.propertyMap !== undefined\n ? { propertyMap: options.propertyMap }\n : {}),\n ...(options.frontmatter !== undefined\n ? { frontmatter: options.frontmatter }\n : {}),\n });\n await writePages(pages, {\n savePath: options.savePath,\n storePath: options.storePath,\n });\n\n output.stdout.write(\"✅ Successfully generated blog content\\n\");\n}\n\nexport type GenerateBlog = typeof generateBlog;\n","import { config as loadDotenv } from \"dotenv\";\nimport type { DotenvPopulateInput } from \"dotenv\";\nimport { runCli } from \"./app.js\";\nimport type { CliContext } from \"./context.js\";\nimport { generateBlog } from \"./workflows/generate.js\";\n\nconst nodeProcess: CliContext[\"process\"] = {\n env: process.env,\n stdout: process.stdout,\n stderr: process.stderr,\n get exitCode() {\n const exitCode = process.exitCode;\n return typeof exitCode === \"number\" ? exitCode : null;\n },\n set exitCode(value: number | null) {\n process.exitCode = value ?? undefined;\n },\n};\n\nexport async function main(\n inputs: readonly string[] = process.argv.slice(2),\n context: CliContext = { process: nodeProcess, generateBlog },\n): Promise<void> {\n const environment = context.process.env ?? {};\n const processEnv: DotenvPopulateInput = Object.fromEntries(\n Object.entries(environment).filter(\n (entry): entry is [string, string] => entry[1] !== undefined,\n ),\n );\n loadDotenv({ processEnv, quiet: true });\n Object.assign(environment, processEnv);\n await runCli(inputs, context);\n}\n","#!/usr/bin/env node\n\nimport { main } from \"./main.js\";\n\nawait main();\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,214 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BlockObjectResponse, PageObjectResponse, RichTextItemResponse } from "@notionhq/client";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/noblog/config.d.ts
|
|
5
|
+
type ConfigValue = string | number | boolean | null | ConfigValue[] | {
|
|
6
|
+
[key: string]: ConfigValue;
|
|
7
|
+
};
|
|
8
|
+
declare const frontmatterFieldSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
9
|
+
from: z.ZodString;
|
|
10
|
+
as: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
string: "string";
|
|
12
|
+
date: "date";
|
|
13
|
+
}>>;
|
|
14
|
+
default: z.ZodOptional<z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>>;
|
|
15
|
+
omitEmpty: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
18
|
+
value: z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>;
|
|
19
|
+
as: z.ZodOptional<z.ZodEnum<{
|
|
20
|
+
string: "string";
|
|
21
|
+
date: "date";
|
|
22
|
+
}>>;
|
|
23
|
+
default: z.ZodOptional<z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>>;
|
|
24
|
+
omitEmpty: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
26
|
+
}, z.core.$strict>]>;
|
|
27
|
+
declare const frontmatterFieldsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
|
|
28
|
+
from: z.ZodString;
|
|
29
|
+
as: z.ZodOptional<z.ZodEnum<{
|
|
30
|
+
string: "string";
|
|
31
|
+
date: "date";
|
|
32
|
+
}>>;
|
|
33
|
+
default: z.ZodOptional<z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>>;
|
|
34
|
+
omitEmpty: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
36
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
37
|
+
value: z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>;
|
|
38
|
+
as: z.ZodOptional<z.ZodEnum<{
|
|
39
|
+
string: "string";
|
|
40
|
+
date: "date";
|
|
41
|
+
}>>;
|
|
42
|
+
default: z.ZodOptional<z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>>;
|
|
43
|
+
omitEmpty: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
45
|
+
}, z.core.$strict>]>>;
|
|
46
|
+
declare const notionPropertiesSchema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
47
|
+
declare const BUILT_IN_FRONTMATTER_SOURCES: readonly ["title", "description", "tags", "publishedAt", "archived", "layoutPath", "pageId", "isDatabasePage"];
|
|
48
|
+
declare const noblogConfigSchema: z.ZodObject<{
|
|
49
|
+
version: z.ZodLiteral<1>;
|
|
50
|
+
notion: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
52
|
+
}, z.core.$strict>>;
|
|
53
|
+
output: z.ZodOptional<z.ZodObject<{
|
|
54
|
+
savePath: z.ZodOptional<z.ZodString>;
|
|
55
|
+
storePath: z.ZodOptional<z.ZodString>;
|
|
56
|
+
layoutPath: z.ZodOptional<z.ZodString>;
|
|
57
|
+
recursive: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
childPageMarker: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strict>>;
|
|
60
|
+
frontmatter: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
|
|
62
|
+
from: z.ZodString;
|
|
63
|
+
as: z.ZodOptional<z.ZodEnum<{
|
|
64
|
+
string: "string";
|
|
65
|
+
date: "date";
|
|
66
|
+
}>>;
|
|
67
|
+
default: z.ZodOptional<z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>>;
|
|
68
|
+
omitEmpty: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
70
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
71
|
+
value: z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>;
|
|
72
|
+
as: z.ZodOptional<z.ZodEnum<{
|
|
73
|
+
string: "string";
|
|
74
|
+
date: "date";
|
|
75
|
+
}>>;
|
|
76
|
+
default: z.ZodOptional<z.ZodType<ConfigValue, unknown, z.core.$ZodTypeInternals<ConfigValue, unknown>>>;
|
|
77
|
+
omitEmpty: z.ZodOptional<z.ZodBoolean>;
|
|
78
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
79
|
+
}, z.core.$strict>]>>>;
|
|
80
|
+
}, z.core.$strict>>;
|
|
81
|
+
}, z.core.$strict>;
|
|
82
|
+
type FrontmatterField = z.infer<typeof frontmatterFieldSchema>;
|
|
83
|
+
type FrontmatterFields = z.infer<typeof frontmatterFieldsSchema>;
|
|
84
|
+
type NotionPropertyMap = z.infer<typeof notionPropertiesSchema>;
|
|
85
|
+
type NoblogFileConfig = z.infer<typeof noblogConfigSchema>;
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region src/lib/noblog/defaults.d.ts
|
|
88
|
+
declare const DEFAULT_SAVE_PATH = "./src/pages/posts/";
|
|
89
|
+
declare const DEFAULT_STORE_PATH = ".noblog/pages/";
|
|
90
|
+
declare const DEFAULT_LAYOUT_PATH = "../../layouts/MarkdownPostLayout.astro";
|
|
91
|
+
/** U+2E0E EDITORIAL CORONIS, a rare marker for theme child-page links. */
|
|
92
|
+
declare const DEFAULT_CHILD_PAGE_MARKER = "\u2E0E";
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/lib/noblog/metadata.d.ts
|
|
95
|
+
type MetadataValue = string | number | boolean | readonly string[] | undefined;
|
|
96
|
+
interface PageMetadata {
|
|
97
|
+
readonly title: string;
|
|
98
|
+
readonly description?: string | undefined;
|
|
99
|
+
readonly tags: readonly string[];
|
|
100
|
+
readonly publishedAt?: string | undefined;
|
|
101
|
+
readonly archived?: boolean | undefined;
|
|
102
|
+
readonly values: Readonly<Record<string, MetadataValue>>;
|
|
103
|
+
}
|
|
104
|
+
declare function extractPageMetadata(page: PageObjectResponse, properties?: NotionPropertyMap): PageMetadata;
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/lib/noblog/types.d.ts
|
|
107
|
+
type CalloutIcon = Extract<BlockObjectResponse, {
|
|
108
|
+
type: "callout";
|
|
109
|
+
}>["callout"]["icon"];
|
|
110
|
+
interface NotionReader {
|
|
111
|
+
getPage(pageId: string): Promise<PageObjectResponse>;
|
|
112
|
+
getBlockChildren(blockId: string): Promise<readonly BlockObjectResponse[]>;
|
|
113
|
+
}
|
|
114
|
+
interface FrontmatterContext {
|
|
115
|
+
readonly page: PageObjectResponse;
|
|
116
|
+
readonly metadata: PageMetadata;
|
|
117
|
+
readonly layoutPath: string;
|
|
118
|
+
readonly isDatabasePage: boolean;
|
|
119
|
+
}
|
|
120
|
+
type FrontmatterValue = string | number | boolean | null | Date | readonly FrontmatterValue[] | {
|
|
121
|
+
readonly [key: string]: FrontmatterValue;
|
|
122
|
+
};
|
|
123
|
+
type FrontmatterRecord = Readonly<Record<string, FrontmatterValue | undefined>>;
|
|
124
|
+
type FrontmatterAdapter = (context: FrontmatterContext) => FrontmatterRecord;
|
|
125
|
+
interface BlockTransformerContext {
|
|
126
|
+
readonly pageId: string;
|
|
127
|
+
}
|
|
128
|
+
type BlockTransformer<K extends BlockObjectResponse["type"] = BlockObjectResponse["type"]> = (block: Extract<BlockObjectResponse, {
|
|
129
|
+
type: K;
|
|
130
|
+
}>, context: BlockTransformerContext) => string | undefined | Promise<string | undefined>;
|
|
131
|
+
type BlockTransformers = { readonly [K in BlockObjectResponse["type"]]?: BlockTransformer<K> | undefined };
|
|
132
|
+
interface RenderOptions {
|
|
133
|
+
readonly layoutPath?: string;
|
|
134
|
+
readonly recursive?: boolean;
|
|
135
|
+
readonly childPageMarker?: string;
|
|
136
|
+
readonly propertyMap?: NotionPropertyMap;
|
|
137
|
+
readonly frontmatter?: FrontmatterAdapter;
|
|
138
|
+
readonly transformers?: BlockTransformers;
|
|
139
|
+
}
|
|
140
|
+
interface RenderedPage {
|
|
141
|
+
readonly id: string;
|
|
142
|
+
readonly content: string;
|
|
143
|
+
readonly childPageIds: readonly string[];
|
|
144
|
+
readonly isDatabasePage: boolean;
|
|
145
|
+
}
|
|
146
|
+
interface WritePagesOptions {
|
|
147
|
+
readonly savePath?: string;
|
|
148
|
+
readonly storePath?: string;
|
|
149
|
+
}
|
|
150
|
+
interface StoreLayoutOptions {
|
|
151
|
+
readonly savePath?: string;
|
|
152
|
+
readonly storePath?: string;
|
|
153
|
+
readonly layoutPath?: string;
|
|
154
|
+
}
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/lib/noblog/frontmatter.d.ts
|
|
157
|
+
interface FrontmatterOptions {
|
|
158
|
+
readonly layoutPath?: string;
|
|
159
|
+
readonly propertyMap?: NotionPropertyMap;
|
|
160
|
+
readonly frontmatter?: FrontmatterAdapter;
|
|
161
|
+
readonly isDatabasePage?: boolean;
|
|
162
|
+
}
|
|
163
|
+
declare function renderFrontmatter(page: PageObjectResponse, options?: FrontmatterOptions): string;
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/lib/noblog/frontmatter-fields.d.ts
|
|
166
|
+
declare const DEFAULT_FRONTMATTER_FIELDS: FrontmatterFields;
|
|
167
|
+
declare function createFrontmatterAdapter(fields: FrontmatterFields): FrontmatterAdapter;
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/lib/noblog/markdown.d.ts
|
|
170
|
+
declare const inlineCode: (text: string) => string;
|
|
171
|
+
declare const inlineEquation: (text: string) => string;
|
|
172
|
+
declare const bold: (text: string) => string;
|
|
173
|
+
declare const italic: (text: string) => string;
|
|
174
|
+
declare const strikethrough: (text: string) => string;
|
|
175
|
+
declare const underline: (text: string) => string;
|
|
176
|
+
declare const link: (text: string, href: string) => string;
|
|
177
|
+
declare function codeBlock(text: string, language?: string): string;
|
|
178
|
+
declare const equation: (text: string) => string;
|
|
179
|
+
declare const heading1: (text: string) => string;
|
|
180
|
+
declare const heading2: (text: string) => string;
|
|
181
|
+
declare const heading3: (text: string) => string;
|
|
182
|
+
declare const quote: (text: string) => string;
|
|
183
|
+
declare function callout(text: string, icon?: CalloutIcon): string;
|
|
184
|
+
declare function bullet(text: string, count?: number): string;
|
|
185
|
+
declare const todo: (text: string, checked: boolean) => string;
|
|
186
|
+
declare function image(alt: string, href: string, convertToBase64?: boolean): Promise<string>;
|
|
187
|
+
declare const divider: () => string;
|
|
188
|
+
declare function toggle(summary?: string, children?: string): string;
|
|
189
|
+
declare function table(cells: string[][], hasColumnHeader?: boolean): string;
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region src/lib/noblog/pages.d.ts
|
|
192
|
+
declare function renderPage(pageId: string, reader: NotionReader, options?: RenderOptions): Promise<RenderedPage>;
|
|
193
|
+
declare function renderPages(posts: readonly PageObjectResponse[], reader: NotionReader, options?: RenderOptions): Promise<RenderedPage[]>;
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region src/lib/noblog/rich-text.d.ts
|
|
196
|
+
declare function renderPlainText(richText: readonly RichTextItemResponse[]): string;
|
|
197
|
+
declare function renderRichText(richText: readonly RichTextItemResponse[]): string;
|
|
198
|
+
//#endregion
|
|
199
|
+
//#region src/lib/noblog/writer.d.ts
|
|
200
|
+
declare function writePages(pages: readonly RenderedPage[], options?: WritePagesOptions): Promise<string[]>;
|
|
201
|
+
declare function resolveStoreLayoutPath(options?: StoreLayoutOptions): string;
|
|
202
|
+
//#endregion
|
|
203
|
+
//#region src/lib/notion/client.d.ts
|
|
204
|
+
interface NotionSourceConfig {
|
|
205
|
+
readonly notionApiSecret: string;
|
|
206
|
+
readonly databaseId: string;
|
|
207
|
+
}
|
|
208
|
+
interface NotionSource extends NotionReader {
|
|
209
|
+
listPages(): Promise<PageObjectResponse[]>;
|
|
210
|
+
}
|
|
211
|
+
declare function createNotionSource(config: NotionSourceConfig): NotionSource;
|
|
212
|
+
//#endregion
|
|
213
|
+
export { BUILT_IN_FRONTMATTER_SOURCES, BlockTransformer, BlockTransformerContext, BlockTransformers, CalloutIcon, ConfigValue, DEFAULT_CHILD_PAGE_MARKER, DEFAULT_FRONTMATTER_FIELDS, DEFAULT_LAYOUT_PATH, DEFAULT_SAVE_PATH, DEFAULT_STORE_PATH, FrontmatterAdapter, FrontmatterContext, FrontmatterField, FrontmatterFields, FrontmatterOptions, FrontmatterRecord, FrontmatterValue, MetadataValue, NoblogFileConfig, NotionPropertyMap, NotionReader, NotionSource, NotionSourceConfig, PageMetadata, RenderOptions, RenderedPage, StoreLayoutOptions, WritePagesOptions, bold, bullet, callout, codeBlock, createFrontmatterAdapter, createNotionSource, divider, equation, extractPageMetadata, frontmatterFieldSchema, frontmatterFieldsSchema, heading1, heading2, heading3, image, inlineCode, inlineEquation, italic, link, noblogConfigSchema, notionPropertiesSchema, quote, renderFrontmatter, renderPage, renderPages, renderPlainText, renderRichText, resolveStoreLayoutPath, strikethrough, table, todo, toggle, underline, writePages };
|
|
19
214
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { a as noblogConfigSchema, i as frontmatterFieldsSchema, n as BUILT_IN_FRONTMATTER_SOURCES, o as notionPropertiesSchema, r as frontmatterFieldSchema } from "./errors-BCRhKbgG.js";
|
|
2
|
+
import { i as DEFAULT_STORE_PATH, n as DEFAULT_LAYOUT_PATH, r as DEFAULT_SAVE_PATH, t as DEFAULT_CHILD_PAGE_MARKER } from "./defaults-RGOB9tfi.js";
|
|
3
|
+
import { C as strikethrough, D as underline, E as toggle, O as renderFrontmatter, S as quote, T as todo, _ as image, a as renderPages, b as italic, c as bold, d as codeBlock, f as divider, g as heading3, h as heading2, i as renderPage, k as extractPageMetadata, l as bullet, m as heading1, n as resolveStoreLayoutPath, o as renderPlainText, p as equation, r as writePages, s as renderRichText, t as createNotionSource, u as callout, v as inlineCode, w as table, x as link, y as inlineEquation } from "./client-CzKR81Or.js";
|
|
4
|
+
import { n as createFrontmatterAdapter, t as DEFAULT_FRONTMATTER_FIELDS } from "./frontmatter-fields-BkXq38CO.js";
|
|
5
|
+
export { BUILT_IN_FRONTMATTER_SOURCES, DEFAULT_CHILD_PAGE_MARKER, DEFAULT_FRONTMATTER_FIELDS, DEFAULT_LAYOUT_PATH, DEFAULT_SAVE_PATH, DEFAULT_STORE_PATH, bold, bullet, callout, codeBlock, createFrontmatterAdapter, createNotionSource, divider, equation, extractPageMetadata, frontmatterFieldSchema, frontmatterFieldsSchema, heading1, heading2, heading3, image, inlineCode, inlineEquation, italic, link, noblogConfigSchema, notionPropertiesSchema, quote, renderFrontmatter, renderPage, renderPages, renderPlainText, renderRichText, resolveStoreLayoutPath, strikethrough, table, todo, toggle, underline, writePages };
|
package/package.json
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "noblog",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.0-beta.2",
|
|
4
4
|
"description": "Generate static blog content from a Notion.so table.",
|
|
5
5
|
"author": "humbornjo",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./config.schema.json": "./schema/config.json",
|
|
16
|
+
"./package.json": "./package.json"
|
|
17
|
+
},
|
|
9
18
|
"type": "module",
|
|
10
19
|
"bin": {
|
|
11
20
|
"noblog": "dist/generate.js"
|
|
12
21
|
},
|
|
13
22
|
"files": [
|
|
14
23
|
"dist/",
|
|
15
|
-
"
|
|
24
|
+
"schema/",
|
|
25
|
+
"skills/"
|
|
16
26
|
],
|
|
17
27
|
"keywords": [
|
|
18
28
|
"nodejs",
|
|
@@ -22,33 +32,38 @@
|
|
|
22
32
|
"homepage": "https://github.com/humbornjo/noblog",
|
|
23
33
|
"repository": {
|
|
24
34
|
"type": "git",
|
|
25
|
-
"url": "https://github.com/humbornjo/noblog.git"
|
|
35
|
+
"url": "git+https://github.com/humbornjo/noblog.git"
|
|
26
36
|
},
|
|
27
37
|
"engines": {
|
|
28
38
|
"node": ">=24"
|
|
29
39
|
},
|
|
30
40
|
"scripts": {
|
|
31
|
-
"dev": "
|
|
32
|
-
"
|
|
33
|
-
"build
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
41
|
+
"dev": "tsx src/cli.ts",
|
|
42
|
+
"schema:generate": "tsx scripts/generate-config-schema.ts",
|
|
43
|
+
"build": "pnpm run schema:generate && tsdown",
|
|
44
|
+
"typecheck": "tsc --noEmit",
|
|
45
|
+
"test": "vitest run",
|
|
46
|
+
"test:watch": "vitest",
|
|
47
|
+
"test:built": "pnpm run build && node scripts/smoke.mjs",
|
|
48
|
+
"check": "pnpm run typecheck && pnpm run test && pnpm run test:built && publint",
|
|
49
|
+
"prepack": "pnpm run build",
|
|
50
|
+
"release": "pnpm run check && npm publish",
|
|
51
|
+
"release:beta": "pnpm run check && pnpm publish --tag beta --no-git-checks"
|
|
37
52
|
},
|
|
38
53
|
"dependencies": {
|
|
39
54
|
"@notionhq/client": "^5.1.0",
|
|
40
|
-
"@
|
|
41
|
-
"async-retry": "^1.3.3",
|
|
55
|
+
"@stricli/core": "^1.3.0",
|
|
42
56
|
"dotenv": "^16.6.1",
|
|
43
57
|
"markdown-table": "^3.0.4",
|
|
44
|
-
"
|
|
45
|
-
"
|
|
58
|
+
"yaml": "^2.9.1",
|
|
59
|
+
"zod": "^4.6.7"
|
|
46
60
|
},
|
|
47
61
|
"devDependencies": {
|
|
48
|
-
"@rollup/plugin-commonjs": "^26.0.3",
|
|
49
|
-
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
50
|
-
"@rollup/plugin-typescript": "^11.1.6",
|
|
51
62
|
"@types/node": "^24.6.2",
|
|
52
|
-
"
|
|
63
|
+
"publint": "^0.3.25",
|
|
64
|
+
"tsdown": "0.22.2",
|
|
65
|
+
"tsx": "^4.23.15",
|
|
66
|
+
"typescript": "^6.0.3",
|
|
67
|
+
"vitest": "^5.0.5"
|
|
53
68
|
}
|
|
54
69
|
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"version": {
|
|
6
|
+
"type": "number",
|
|
7
|
+
"const": 1
|
|
8
|
+
},
|
|
9
|
+
"notion": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"properties": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"propertyNames": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1
|
|
17
|
+
},
|
|
18
|
+
"additionalProperties": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"additionalProperties": false
|
|
25
|
+
},
|
|
26
|
+
"output": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
29
|
+
"savePath": {
|
|
30
|
+
"description": "Public directory for database-post symlinks.",
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1
|
|
33
|
+
},
|
|
34
|
+
"storePath": {
|
|
35
|
+
"description": "Flat directory containing every canonical Markdown file.",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
},
|
|
39
|
+
"layoutPath": {
|
|
40
|
+
"description": "Layout import path interpreted relative to savePath.",
|
|
41
|
+
"type": "string",
|
|
42
|
+
"minLength": 1
|
|
43
|
+
},
|
|
44
|
+
"recursive": {
|
|
45
|
+
"description": "Render child pages recursively (default: true).",
|
|
46
|
+
"type": "boolean"
|
|
47
|
+
},
|
|
48
|
+
"childPageMarker": {
|
|
49
|
+
"description": "Marker prefixed to child-page links (default: ⸎, U+2E0E).",
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"additionalProperties": false
|
|
55
|
+
},
|
|
56
|
+
"frontmatter": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"properties": {
|
|
59
|
+
"fields": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"propertyNames": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"minLength": 1
|
|
64
|
+
},
|
|
65
|
+
"additionalProperties": {
|
|
66
|
+
"anyOf": [
|
|
67
|
+
{
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"as": {
|
|
71
|
+
"description": "Convert to a string (quoting date-like strings) or a YAML date.",
|
|
72
|
+
"type": "string",
|
|
73
|
+
"enum": [
|
|
74
|
+
"string",
|
|
75
|
+
"date"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"default": {
|
|
79
|
+
"description": "Value used when the source is empty.",
|
|
80
|
+
"$ref": "#/$defs/__schema0"
|
|
81
|
+
},
|
|
82
|
+
"omitEmpty": {
|
|
83
|
+
"description": "Omit undefined, null, empty strings, and empty arrays.",
|
|
84
|
+
"type": "boolean"
|
|
85
|
+
},
|
|
86
|
+
"required": {
|
|
87
|
+
"description": "Fail generation if the value is still empty after defaults.",
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
},
|
|
90
|
+
"from": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"minLength": 1,
|
|
93
|
+
"description": "Built-in source or a key declared under notion.properties."
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"required": [
|
|
97
|
+
"from"
|
|
98
|
+
],
|
|
99
|
+
"additionalProperties": false
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"type": "object",
|
|
103
|
+
"properties": {
|
|
104
|
+
"as": {
|
|
105
|
+
"description": "Convert to a string (quoting date-like strings) or a YAML date.",
|
|
106
|
+
"type": "string",
|
|
107
|
+
"enum": [
|
|
108
|
+
"string",
|
|
109
|
+
"date"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"default": {
|
|
113
|
+
"description": "Value used when the source is empty.",
|
|
114
|
+
"$ref": "#/$defs/__schema0"
|
|
115
|
+
},
|
|
116
|
+
"omitEmpty": {
|
|
117
|
+
"description": "Omit undefined, null, empty strings, and empty arrays.",
|
|
118
|
+
"type": "boolean"
|
|
119
|
+
},
|
|
120
|
+
"required": {
|
|
121
|
+
"description": "Fail generation if the value is still empty after defaults.",
|
|
122
|
+
"type": "boolean"
|
|
123
|
+
},
|
|
124
|
+
"value": {
|
|
125
|
+
"$ref": "#/$defs/__schema0"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"required": [
|
|
129
|
+
"value"
|
|
130
|
+
],
|
|
131
|
+
"additionalProperties": false
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"additionalProperties": false
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"required": [
|
|
141
|
+
"version"
|
|
142
|
+
],
|
|
143
|
+
"additionalProperties": false,
|
|
144
|
+
"description": "Noblog YAML configuration. Notion credentials remain in environment variables or .env files.",
|
|
145
|
+
"$defs": {
|
|
146
|
+
"__schema0": {
|
|
147
|
+
"anyOf": [
|
|
148
|
+
{
|
|
149
|
+
"type": "string"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"type": "number"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "boolean"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"type": "null"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"type": "array",
|
|
162
|
+
"items": {
|
|
163
|
+
"$ref": "#/$defs/__schema0"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"type": "object",
|
|
168
|
+
"propertyNames": {
|
|
169
|
+
"type": "string"
|
|
170
|
+
},
|
|
171
|
+
"additionalProperties": {
|
|
172
|
+
"$ref": "#/$defs/__schema0"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: noblog-config
|
|
3
|
+
description: Generate, migrate, or validate Noblog YAML configuration by inspecting a site's actual content schema, frontmatter types, Notion property names, and routes. Use when adapting Noblog to an Astro or other Markdown theme, creating frontmatter mappings, choosing savePath/storePath, or debugging noblog config check errors.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Noblog configuration
|
|
7
|
+
|
|
8
|
+
Create a `version: 1` Noblog YAML file that matches the installed theme, not a generic blog template.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. **Locate the site and existing configuration.** Identify the framework, package manager, content directories, route files, and any existing Noblog YAML. Read an existing config before changing it. Do not read or print `.env` values.
|
|
13
|
+
2. **Inspect the real content contract.** Read collection schemas, Zod/Valibot/TypeScript frontmatter definitions, Markdown layouts, and the code that lists or routes content. For Astro, check both `src/content.config.ts` and `src/content/config.ts`, plus `Astro.glob` or dynamic collection routes. A layout alone is not proof of validation rules.
|
|
14
|
+
3. **Record the contract before writing YAML.** Note required and optional fields, native types, defaults, date handling, collection glob patterns, and which directories produce routes. Distinguish file-based Markdown routes from content collections.
|
|
15
|
+
4. **Confirm Notion property names.** Use names supplied by the user or visible in existing configuration/code. Do not invent custom properties or request credentials. Map logical sources to exact Notion names under `notion.properties`.
|
|
16
|
+
5. **Choose output paths with routing in mind.** `savePath` receives database-post symlinks; `storePath` receives every real Markdown file, including children. Child links target `./<page-id>.md` inside the store and are prefixed by `output.childPageMarker` (default `⸎`, U+2E0E EDITORIAL CORONIS); set it if the theme expects a specific marker. Ensure the theme actually loads/routes the store if child pages must be public. Noblog does not create `nob_children` routes or remove old nested views.
|
|
17
|
+
6. **Write only the fields the theme consumes.** Custom `frontmatter.fields` replaces the legacy field set. Use exactly one of `from` or `value` per field. Keep booleans, numbers, arrays, and objects native unless the theme requires strings.
|
|
18
|
+
7. **Validate without generating.** Run:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
noblog config check --config ./noblog.yaml
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Fix schema and unknown-source errors. Do not run generation merely to validate: generation calls Notion and writes files.
|
|
25
|
+
|
|
26
|
+
Read [the configuration reference](references/config-schema.md) before writing mappings. Use [Notion property types](references/notion-property-types.md) for custom sources and [theme examples](references/theme-examples.md) when one matches the inspected site.
|
|
27
|
+
|
|
28
|
+
## Safety and compatibility
|
|
29
|
+
|
|
30
|
+
- Keep `NOTION_API_SECRET` and `NOBLOG_DATABASE_ID` in environment variables or `.env`; never put credentials in YAML, logs, patches, or examples.
|
|
31
|
+
- Do not overwrite an existing config without inspecting it and preserving intentional settings.
|
|
32
|
+
- Do not modify theme routes or delete legacy files unless the user asks. Report any routing changes the theme still needs.
|
|
33
|
+
- Explicit CLI paths override YAML; built-in defaults apply only when neither is present.
|
|
34
|
+
- The legacy `SUB_PATH` argument is ignored. Do not add `subPath` to YAML.
|
|
35
|
+
- Assets in `assets/` are starting points, not universal presets. Re-check them against the installed theme version before copying.
|
|
36
|
+
- If no explicit schema exists, infer conservatively from all consumers and label assumptions in the final summary.
|
|
37
|
+
|
|
38
|
+
## Completion report
|
|
39
|
+
|
|
40
|
+
Summarize the config path, schema evidence used, Notion mappings, output/routing implications, and `config check` result. Call out unresolved property names or theme changes instead of hiding them in defaults.
|