@thjodann/wk 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.
Files changed (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +197 -0
  3. package/dist/cli/commands/article.d.ts +2 -0
  4. package/dist/cli/commands/article.js +47 -0
  5. package/dist/cli/commands/article.js.map +1 -0
  6. package/dist/cli/commands/closeout.d.ts +2 -0
  7. package/dist/cli/commands/closeout.js +37 -0
  8. package/dist/cli/commands/closeout.js.map +1 -0
  9. package/dist/cli/commands/compile.d.ts +2 -0
  10. package/dist/cli/commands/compile.js +50 -0
  11. package/dist/cli/commands/compile.js.map +1 -0
  12. package/dist/cli/commands/concept.d.ts +2 -0
  13. package/dist/cli/commands/concept.js +36 -0
  14. package/dist/cli/commands/concept.js.map +1 -0
  15. package/dist/cli/commands/decision.d.ts +2 -0
  16. package/dist/cli/commands/decision.js +38 -0
  17. package/dist/cli/commands/decision.js.map +1 -0
  18. package/dist/cli/commands/event.d.ts +2 -0
  19. package/dist/cli/commands/event.js +32 -0
  20. package/dist/cli/commands/event.js.map +1 -0
  21. package/dist/cli/commands/init.d.ts +2 -0
  22. package/dist/cli/commands/init.js +52 -0
  23. package/dist/cli/commands/init.js.map +1 -0
  24. package/dist/cli/commands/installAgent.d.ts +2 -0
  25. package/dist/cli/commands/installAgent.js +130 -0
  26. package/dist/cli/commands/installAgent.js.map +1 -0
  27. package/dist/cli/commands/link.d.ts +2 -0
  28. package/dist/cli/commands/link.js +36 -0
  29. package/dist/cli/commands/link.js.map +1 -0
  30. package/dist/cli/commands/note.d.ts +2 -0
  31. package/dist/cli/commands/note.js +34 -0
  32. package/dist/cli/commands/note.js.map +1 -0
  33. package/dist/cli/commands/pages.d.ts +2 -0
  34. package/dist/cli/commands/pages.js +46 -0
  35. package/dist/cli/commands/pages.js.map +1 -0
  36. package/dist/cli/commands/record.d.ts +2 -0
  37. package/dist/cli/commands/record.js +101 -0
  38. package/dist/cli/commands/record.js.map +1 -0
  39. package/dist/cli/commands/render.d.ts +2 -0
  40. package/dist/cli/commands/render.js +33 -0
  41. package/dist/cli/commands/render.js.map +1 -0
  42. package/dist/cli/commands/search.d.ts +2 -0
  43. package/dist/cli/commands/search.js +125 -0
  44. package/dist/cli/commands/search.js.map +1 -0
  45. package/dist/cli/commands/setup.d.ts +2 -0
  46. package/dist/cli/commands/setup.js +53 -0
  47. package/dist/cli/commands/setup.js.map +1 -0
  48. package/dist/cli/commands/site.d.ts +2 -0
  49. package/dist/cli/commands/site.js +47 -0
  50. package/dist/cli/commands/site.js.map +1 -0
  51. package/dist/cli/commands/spin.d.ts +2 -0
  52. package/dist/cli/commands/spin.js +43 -0
  53. package/dist/cli/commands/spin.js.map +1 -0
  54. package/dist/cli/commands/status.d.ts +2 -0
  55. package/dist/cli/commands/status.js +63 -0
  56. package/dist/cli/commands/status.js.map +1 -0
  57. package/dist/cli/commands/symbol.d.ts +2 -0
  58. package/dist/cli/commands/symbol.js +37 -0
  59. package/dist/cli/commands/symbol.js.map +1 -0
  60. package/dist/cli/commands/theme.d.ts +2 -0
  61. package/dist/cli/commands/theme.js +52 -0
  62. package/dist/cli/commands/theme.js.map +1 -0
  63. package/dist/cli/commands/validate.d.ts +2 -0
  64. package/dist/cli/commands/validate.js +44 -0
  65. package/dist/cli/commands/validate.js.map +1 -0
  66. package/dist/cli/helpers.d.ts +30 -0
  67. package/dist/cli/helpers.js +131 -0
  68. package/dist/cli/helpers.js.map +1 -0
  69. package/dist/core/articles.d.ts +5 -0
  70. package/dist/core/articles.js +25 -0
  71. package/dist/core/articles.js.map +1 -0
  72. package/dist/core/automation.d.ts +96 -0
  73. package/dist/core/automation.js +384 -0
  74. package/dist/core/automation.js.map +1 -0
  75. package/dist/core/beads.d.ts +43 -0
  76. package/dist/core/beads.js +358 -0
  77. package/dist/core/beads.js.map +1 -0
  78. package/dist/core/compiler.d.ts +45 -0
  79. package/dist/core/compiler.js +399 -0
  80. package/dist/core/compiler.js.map +1 -0
  81. package/dist/core/config.d.ts +59 -0
  82. package/dist/core/config.js +187 -0
  83. package/dist/core/config.js.map +1 -0
  84. package/dist/core/git.d.ts +21 -0
  85. package/dist/core/git.js +109 -0
  86. package/dist/core/git.js.map +1 -0
  87. package/dist/core/ids.d.ts +2 -0
  88. package/dist/core/ids.js +8 -0
  89. package/dist/core/ids.js.map +1 -0
  90. package/dist/core/pages.d.ts +34 -0
  91. package/dist/core/pages.js +233 -0
  92. package/dist/core/pages.js.map +1 -0
  93. package/dist/core/paths.d.ts +15 -0
  94. package/dist/core/paths.js +67 -0
  95. package/dist/core/paths.js.map +1 -0
  96. package/dist/core/profiles.d.ts +30 -0
  97. package/dist/core/profiles.js +243 -0
  98. package/dist/core/profiles.js.map +1 -0
  99. package/dist/core/renderer.d.ts +8 -0
  100. package/dist/core/renderer.js +106 -0
  101. package/dist/core/renderer.js.map +1 -0
  102. package/dist/core/schemas.d.ts +1039 -0
  103. package/dist/core/schemas.js +108 -0
  104. package/dist/core/schemas.js.map +1 -0
  105. package/dist/core/site.d.ts +20 -0
  106. package/dist/core/site.js +2684 -0
  107. package/dist/core/site.js.map +1 -0
  108. package/dist/core/spin.d.ts +42 -0
  109. package/dist/core/spin.js +265 -0
  110. package/dist/core/spin.js.map +1 -0
  111. package/dist/core/store.d.ts +29 -0
  112. package/dist/core/store.js +146 -0
  113. package/dist/core/store.js.map +1 -0
  114. package/dist/core/theme.d.ts +35 -0
  115. package/dist/core/theme.js +1086 -0
  116. package/dist/core/theme.js.map +1 -0
  117. package/dist/core/validator.d.ts +8 -0
  118. package/dist/core/validator.js +154 -0
  119. package/dist/core/validator.js.map +1 -0
  120. package/dist/index.d.ts +3 -0
  121. package/dist/index.js +61 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/templates/articlesPage.d.ts +3 -0
  124. package/dist/templates/articlesPage.js +46 -0
  125. package/dist/templates/articlesPage.js.map +1 -0
  126. package/dist/templates/conceptsPage.d.ts +2 -0
  127. package/dist/templates/conceptsPage.js +24 -0
  128. package/dist/templates/conceptsPage.js.map +1 -0
  129. package/dist/templates/decisionsPage.d.ts +2 -0
  130. package/dist/templates/decisionsPage.js +27 -0
  131. package/dist/templates/decisionsPage.js.map +1 -0
  132. package/dist/templates/devlogPage.d.ts +2 -0
  133. package/dist/templates/devlogPage.js +22 -0
  134. package/dist/templates/devlogPage.js.map +1 -0
  135. package/dist/templates/indexPage.d.ts +6 -0
  136. package/dist/templates/indexPage.js +33 -0
  137. package/dist/templates/indexPage.js.map +1 -0
  138. package/dist/templates/linksPage.d.ts +2 -0
  139. package/dist/templates/linksPage.js +26 -0
  140. package/dist/templates/linksPage.js.map +1 -0
  141. package/dist/templates/notesPage.d.ts +2 -0
  142. package/dist/templates/notesPage.js +26 -0
  143. package/dist/templates/notesPage.js.map +1 -0
  144. package/dist/templates/symbolsPage.d.ts +2 -0
  145. package/dist/templates/symbolsPage.js +25 -0
  146. package/dist/templates/symbolsPage.js.map +1 -0
  147. package/docs/concepts.md +249 -0
  148. package/docs/reference.md +356 -0
  149. package/docs/setup.md +331 -0
  150. package/docs/workflows.md +154 -0
  151. package/package.json +61 -0
  152. package/skills/wk/SKILL.md +251 -0
  153. package/skills/wk/agents/openai.yaml +4 -0
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.profileRecipes = exports.userMaterialTags = exports.audienceTags = exports.siteAudiences = exports.wikiProfiles = void 0;
4
+ exports.parseWikiProfile = parseWikiProfile;
5
+ exports.parseSiteAudience = parseSiteAudience;
6
+ exports.wikiProfiles = ["user", "developer", "mixed"];
7
+ exports.siteAudiences = ["all", "user", "developer"];
8
+ exports.audienceTags = {
9
+ all: "audience:all",
10
+ user: "audience:user",
11
+ developer: "audience:developer"
12
+ };
13
+ exports.userMaterialTags = [
14
+ "faq",
15
+ "getting-started",
16
+ "instructions",
17
+ "troubleshooting"
18
+ ];
19
+ exports.profileRecipes = {
20
+ mixed: {
21
+ name: "mixed",
22
+ description: "Balanced first-pass wiki for users and maintainers.",
23
+ target_counts: {
24
+ article: 5,
25
+ concept: 8,
26
+ decision: 4,
27
+ event: 2,
28
+ note: 3,
29
+ symbol: 4
30
+ },
31
+ page_emphasis: [
32
+ "Home starts with public articles for user orientation and shared project essentials.",
33
+ "Guides prioritize article-led setup, FAQ, troubleshooting, and developer architecture.",
34
+ "Agent record indexes remain available as evidence and maintainer context."
35
+ ],
36
+ recommended_tags: [
37
+ exports.audienceTags.all,
38
+ exports.audienceTags.user,
39
+ exports.audienceTags.developer,
40
+ ...exports.userMaterialTags
41
+ ],
42
+ seeds: [
43
+ articleSeed("Project overview", "Write the public entry article: what this is, who it is for, and why it matters.", "all", ["product", "overview", "homepage"]),
44
+ articleSeed("Getting started", "Write the first successful user path with concrete setup or first-run steps.", "user", ["getting-started", "instructions", "homepage"]),
45
+ articleSeed("Features and workflows", "Explain the main user-facing modes, workflows, or feature areas.", "user", ["features", "instructions"]),
46
+ articleSeed("FAQ and troubleshooting", "Answer common user questions and first fixes in a browseable public page.", "user", ["faq", "troubleshooting"]),
47
+ articleSeed("Developer guide", "Explain architecture, generated-file rules, and the maintainer/agent workflow.", "developer", ["architecture", "dx", "maintenance"]),
48
+ conceptSeed("Product promise", "Explain what the project is, who it is for, and the core value in plain language.", "all", ["product", "overview", "homepage"]),
49
+ conceptSeed("Install and first start", "Explain how a new user gets from download/install to the first useful session.", "user", ["getting-started", "instructions", "homepage"]),
50
+ conceptSeed("Modes and features", "Describe the main user-facing modes, workflows, or feature areas.", "user", ["features", "instructions"]),
51
+ conceptSeed("Privacy and local data", "Explain what data stays local, what leaves the machine, and what users should know.", "user", ["privacy", "faq"]),
52
+ conceptSeed("FAQ", "Answer common user questions in short, scannable form.", "user", ["faq"]),
53
+ conceptSeed("Troubleshooting", "List common problems, symptoms, and first fixes.", "user", ["troubleshooting", "instructions"]),
54
+ conceptSeed("Architecture overview", "Summarize the main technical parts and how maintainers should orient themselves.", "developer", ["architecture", "dx"]),
55
+ conceptSeed("Data model", "Explain durable data, storage boundaries, generated files, and source-of-truth rules.", "developer", ["architecture", "data-model"]),
56
+ decisionSeed("Choose local-first project knowledge", "Capture why the wiki is generated from repo-local records instead of a hosted service.", "all", ["architecture", "product"]),
57
+ decisionSeed("Separate user and developer surfaces", "Capture how user-facing wiki pages differ from agent record indexes and maintainer docs.", "all", ["ux", "dx"]),
58
+ decisionSeed("Keep generated files deterministic", "Capture why generated Markdown and static site output should be reproducible.", "developer", ["docs", "generated-files"]),
59
+ decisionSeed("Use a static human wiki site", "Capture why the human wiki is plain static HTML rather than a dynamic app.", "all", ["site", "publishing"]),
60
+ eventSeed("Initial wiki seed", "Record the first meaningful Wikiwiki seeding pass and what it covered.", "all", ["milestone"]),
61
+ eventSeed("Latest dogfood milestone", "Record the most recent product/development milestone worth showing in project history.", "developer", ["devlog", "milestone"]),
62
+ noteSeed("Generated file workflow", "Remind contributors to edit structured records and rerun render/site commands instead of editing generated output.", "developer", ["docs", "generated-files"]),
63
+ noteSeed("Documentation drift caveats", "Capture known areas where the wiki may lag reality or need human review.", "all", ["docs", "caveats"]),
64
+ noteSeed("Open user questions", "Track unresolved user-facing questions that should become FAQ or troubleshooting material.", "user", ["faq", "product"]),
65
+ symbolSeed("Application entrypoint", "Point maintainers at the main runtime or CLI entrypoint.", "developer", "TODO: path/to/entrypoint"),
66
+ symbolSeed("Data store", "Point maintainers at the source-of-truth storage module.", "developer", "TODO: path/to/store"),
67
+ symbolSeed("Site renderer", "Point maintainers at the wiki/site rendering module.", "developer", "TODO: path/to/site-renderer"),
68
+ symbolSeed("Test entrypoint", "Point maintainers at the primary tests for wiki-critical behavior.", "developer", "TODO: path/to/tests")
69
+ ]
70
+ },
71
+ user: {
72
+ name: "user",
73
+ description: "First-pass wiki focused on product orientation and support.",
74
+ target_counts: {
75
+ article: 5,
76
+ concept: 6,
77
+ decision: 2,
78
+ event: 1,
79
+ note: 3,
80
+ symbol: 0
81
+ },
82
+ page_emphasis: [
83
+ "Home leads with public articles that explain the product, who it is for, and how to begin.",
84
+ "Guides prioritize article-led getting started, modes/features, privacy, FAQ, and troubleshooting.",
85
+ "Developer-only records stay out of the primary reader journey."
86
+ ],
87
+ recommended_tags: [
88
+ exports.audienceTags.all,
89
+ exports.audienceTags.user,
90
+ ...exports.userMaterialTags
91
+ ],
92
+ seeds: [
93
+ articleSeed("Overview", "Write the public entry article for the product promise and audience.", "all", ["product", "overview", "homepage"]),
94
+ articleSeed("Getting started", "Write the first successful user path.", "user", ["getting-started", "instructions", "homepage"]),
95
+ articleSeed("Features", "Explain what users can do and when to use each feature area.", "user", ["features", "instructions"]),
96
+ articleSeed("Privacy and data", "Explain user-visible privacy and storage behavior.", "user", ["privacy", "faq"]),
97
+ articleSeed("FAQ and troubleshooting", "Answer common questions and fixes.", "user", ["faq", "troubleshooting"]),
98
+ conceptSeed("Product promise", "Explain what the project is, who it is for, and why it matters.", "all", ["product", "overview", "homepage"]),
99
+ conceptSeed("Getting started", "Explain the first successful user path.", "user", ["getting-started", "instructions", "homepage"]),
100
+ conceptSeed("Core modes and features", "Describe what users can do and when to use each mode.", "user", ["features", "instructions"]),
101
+ conceptSeed("Privacy and data", "Explain user-visible privacy and storage behavior.", "user", ["privacy", "faq"]),
102
+ conceptSeed("FAQ", "Answer common user questions.", "user", ["faq"]),
103
+ conceptSeed("Troubleshooting", "Document common symptoms and fixes.", "user", ["troubleshooting"]),
104
+ decisionSeed("Define the user promise", "Capture the product boundary and user promise that docs should preserve.", "all", ["product", "ux"]),
105
+ decisionSeed("Choose a support path", "Capture how users should get unstuck and where support material belongs.", "user", ["support", "troubleshooting"]),
106
+ eventSeed("Initial user wiki seed", "Record the first user-facing wiki pass.", "all", ["milestone"]),
107
+ noteSeed("Known caveats", "Capture caveats users should know before they get surprised.", "user", ["caveats", "faq"]),
108
+ noteSeed("Open FAQ items", "Track unanswered user questions.", "user", ["faq"]),
109
+ noteSeed("Docs review reminders", "Track user-facing pages that need verification.", "user", ["docs"])
110
+ ]
111
+ },
112
+ developer: {
113
+ name: "developer",
114
+ description: "First-pass wiki focused on architecture, maintenance, and agent workflows.",
115
+ target_counts: {
116
+ article: 3,
117
+ concept: 7,
118
+ decision: 5,
119
+ event: 3,
120
+ note: 2,
121
+ symbol: 6
122
+ },
123
+ page_emphasis: [
124
+ "Home leads with developer articles for architecture and source-of-truth rules.",
125
+ "Guides prioritize article-led data model, workflow, decisions, and symbol anchors.",
126
+ "User-facing records are included only when they clarify product intent."
127
+ ],
128
+ recommended_tags: [
129
+ exports.audienceTags.all,
130
+ exports.audienceTags.developer,
131
+ "architecture",
132
+ "data-model",
133
+ "generated-files",
134
+ "maintenance"
135
+ ],
136
+ seeds: [
137
+ articleSeed("Architecture overview", "Write the maintainer entry article for modules and boundaries.", "developer", ["architecture", "homepage"]),
138
+ articleSeed("Data model", "Write the article for persisted records, generated artifacts, and source-of-truth rules.", "developer", ["architecture", "data-model"]),
139
+ articleSeed("Development workflow", "Write the article for build/test/render/closeout and agent expectations.", "developer", ["dx", "maintenance", "agents"]),
140
+ conceptSeed("Architecture overview", "Summarize the main modules and boundaries.", "developer", ["architecture", "homepage"]),
141
+ conceptSeed("Data model", "Explain persisted records, generated artifacts, and source-of-truth rules.", "developer", ["architecture", "data-model"]),
142
+ conceptSeed("Development workflow", "Document the daily build/test/render workflow.", "developer", ["dx", "maintenance"]),
143
+ conceptSeed("Generated-file workflow", "Explain what should and should not be edited by hand.", "developer", ["generated-files", "docs"]),
144
+ conceptSeed("Extension points", "Identify likely integration points for future tools or agents.", "developer", ["architecture", "agents"]),
145
+ conceptSeed("Testing strategy", "Explain the important tests and release checks.", "developer", ["tests", "release"]),
146
+ conceptSeed("Product promise", "Keep a short shared summary of the product intent developers should preserve.", "all", ["product", "overview"]),
147
+ decisionSeed("Choose the storage model", "Capture why records are stored where they are.", "developer", ["architecture", "data-model"]),
148
+ decisionSeed("Choose generated output boundaries", "Capture why Markdown and site output are generated artifacts.", "developer", ["generated-files", "docs"]),
149
+ decisionSeed("Choose agent workflow boundaries", "Capture what agents may infer and what requires user authority.", "developer", ["agents", "authority"]),
150
+ decisionSeed("Choose publishing workflow", "Capture how docs are built and published.", "developer", ["publishing", "ci"]),
151
+ decisionSeed("Choose user/developer audience split", "Capture how the wiki separates reader journeys.", "all", ["ux", "dx"]),
152
+ eventSeed("Initial developer wiki seed", "Record the first developer-focused wiki pass.", "developer", ["milestone", "devlog"]),
153
+ eventSeed("Current architecture milestone", "Record the most recent architecture milestone.", "developer", ["architecture", "milestone"]),
154
+ eventSeed("Current release milestone", "Record the most recent release or packaging milestone.", "developer", ["release", "milestone"]),
155
+ noteSeed("Maintenance caveats", "Capture known rough edges or stale areas.", "developer", ["maintenance", "caveats"]),
156
+ noteSeed("Agent closeout reminders", "Capture how agents should update records before finishing work.", "developer", ["agents", "docs"]),
157
+ symbolSeed("Application entrypoint", "Point to the main app or CLI entrypoint.", "developer", "TODO: path/to/entrypoint"),
158
+ symbolSeed("Record store", "Point to the durable storage implementation.", "developer", "TODO: path/to/store"),
159
+ symbolSeed("Validation layer", "Point to schema or validation code.", "developer", "TODO: path/to/validation"),
160
+ symbolSeed("Renderer", "Point to Markdown or site rendering code.", "developer", "TODO: path/to/renderer"),
161
+ symbolSeed("Search/indexing", "Point to search or indexing code.", "developer", "TODO: path/to/search"),
162
+ symbolSeed("Release checks", "Point to test or packaging entrypoints.", "developer", "TODO: path/to/release-checks")
163
+ ]
164
+ }
165
+ };
166
+ function parseWikiProfile(value, fallback = "mixed") {
167
+ if (!value) {
168
+ return fallback;
169
+ }
170
+ if (exports.wikiProfiles.includes(value)) {
171
+ return value;
172
+ }
173
+ throw new Error(`Unknown wiki profile: ${value}. Expected one of: ${exports.wikiProfiles.join(", ")}.`);
174
+ }
175
+ function parseSiteAudience(value, fallback = "all") {
176
+ if (!value) {
177
+ return fallback;
178
+ }
179
+ if (exports.siteAudiences.includes(value)) {
180
+ return value;
181
+ }
182
+ throw new Error(`Unknown site audience: ${value}. Expected one of: ${exports.siteAudiences.join(", ")}.`);
183
+ }
184
+ function articleSeed(title, purpose, audience, tags) {
185
+ return {
186
+ type: "article",
187
+ title,
188
+ purpose,
189
+ audience,
190
+ tags: withAudience(tags, audience)
191
+ };
192
+ }
193
+ function conceptSeed(title, purpose, audience, tags) {
194
+ return {
195
+ type: "concept",
196
+ title,
197
+ purpose,
198
+ audience,
199
+ tags: withAudience(tags, audience)
200
+ };
201
+ }
202
+ function decisionSeed(title, purpose, audience, tags) {
203
+ return {
204
+ type: "decision",
205
+ title,
206
+ purpose,
207
+ audience,
208
+ tags: withAudience(tags, audience)
209
+ };
210
+ }
211
+ function eventSeed(title, purpose, audience, tags) {
212
+ return {
213
+ type: "event",
214
+ title,
215
+ purpose,
216
+ audience,
217
+ tags: withAudience(tags, audience)
218
+ };
219
+ }
220
+ function noteSeed(title, purpose, audience, tags) {
221
+ return {
222
+ type: "note",
223
+ title,
224
+ purpose,
225
+ audience,
226
+ tags: withAudience(tags, audience)
227
+ };
228
+ }
229
+ function symbolSeed(title, purpose, audience, file) {
230
+ return {
231
+ type: "symbol",
232
+ title,
233
+ purpose,
234
+ audience,
235
+ file,
236
+ tags: withAudience(["symbol", "dx"], audience)
237
+ };
238
+ }
239
+ function withAudience(tags, audience) {
240
+ const audienceTag = exports.audienceTags[audience];
241
+ return [audienceTag, ...tags.filter((tag) => tag !== audienceTag)];
242
+ }
243
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/core/profiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const generatedNotice = "<!-- Generated by Wikiwiki from .wikiwiki/records. Edit structured records instead, then run `wk render`. -->";
2
+ export declare const wikiPageFileNames: readonly ["index.md", "articles.md", "concepts.md", "decisions.md", "devlog.md", "notes.md", "symbols.md", "links.md"];
3
+ export type RenderedPage = {
4
+ fileName: string;
5
+ content: string;
6
+ };
7
+ export declare function buildWikiPages(root: string): RenderedPage[];
8
+ export declare function renderWiki(root: string): string[];
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.wikiPageFileNames = exports.generatedNotice = void 0;
7
+ exports.buildWikiPages = buildWikiPages;
8
+ exports.renderWiki = renderWiki;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const config_1 = require("./config");
12
+ const articles_1 = require("./articles");
13
+ const articlesPage_1 = require("../templates/articlesPage");
14
+ const decisionsPage_1 = require("../templates/decisionsPage");
15
+ const conceptsPage_1 = require("../templates/conceptsPage");
16
+ const devlogPage_1 = require("../templates/devlogPage");
17
+ const indexPage_1 = require("../templates/indexPage");
18
+ const linksPage_1 = require("../templates/linksPage");
19
+ const notesPage_1 = require("../templates/notesPage");
20
+ const symbolsPage_1 = require("../templates/symbolsPage");
21
+ const store_1 = require("./store");
22
+ const paths_1 = require("./paths");
23
+ const schemas_1 = require("./schemas");
24
+ exports.generatedNotice = "<!-- Generated by Wikiwiki from .wikiwiki/records. Edit structured records instead, then run `wk render`. -->";
25
+ exports.wikiPageFileNames = [
26
+ "index.md",
27
+ "articles.md",
28
+ "concepts.md",
29
+ "decisions.md",
30
+ "devlog.md",
31
+ "notes.md",
32
+ "symbols.md",
33
+ "links.md"
34
+ ];
35
+ function buildWikiPages(root) {
36
+ const records = (0, store_1.readAllRecords)(root);
37
+ const theme = (0, config_1.readWikiwikiSiteTheme)(root);
38
+ const repoName = theme.project_name?.trim() || path_1.default.basename(root);
39
+ const description = theme.project_description?.trim() || "A project wiki generated from durable repo knowledge.";
40
+ const sourceRecords = new Map();
41
+ for (const type of schemas_1.recordTypes) {
42
+ for (const record of records[type]) {
43
+ sourceRecords.set(record.id, record);
44
+ }
45
+ }
46
+ const pages = [
47
+ {
48
+ fileName: "index.md",
49
+ content: withNotice((0, indexPage_1.indexPage)(records, { repoName, description }))
50
+ },
51
+ {
52
+ fileName: "articles.md",
53
+ content: withNotice((0, articlesPage_1.articlesPage)(records.article))
54
+ },
55
+ {
56
+ fileName: "concepts.md",
57
+ content: withNotice((0, conceptsPage_1.conceptsPage)(records.concept))
58
+ },
59
+ {
60
+ fileName: "decisions.md",
61
+ content: withNotice((0, decisionsPage_1.decisionsPage)(records.decision))
62
+ },
63
+ {
64
+ fileName: "devlog.md",
65
+ content: withNotice((0, devlogPage_1.devlogPage)(records.event))
66
+ },
67
+ {
68
+ fileName: "notes.md",
69
+ content: withNotice((0, notesPage_1.notesPage)(records.note))
70
+ },
71
+ {
72
+ fileName: "symbols.md",
73
+ content: withNotice((0, symbolsPage_1.symbolsPage)(records.symbol))
74
+ },
75
+ {
76
+ fileName: "links.md",
77
+ content: withNotice((0, linksPage_1.linksPage)(records.link))
78
+ }
79
+ ];
80
+ for (const article of records.article) {
81
+ pages.push({
82
+ fileName: `articles/${(0, articles_1.articleMarkdownFileName)(article)}`,
83
+ content: withNotice((0, articlesPage_1.articlePage)(article, article.source_record_ids.map((id) => sourceRecords.get(id)).filter(isRecord)))
84
+ });
85
+ }
86
+ return pages;
87
+ }
88
+ function renderWiki(root) {
89
+ const pages = buildWikiPages(root);
90
+ const outputPath = (0, paths_1.wikiPath)(root);
91
+ fs_1.default.mkdirSync(outputPath, { recursive: true });
92
+ fs_1.default.rmSync(path_1.default.join(outputPath, "articles"), { recursive: true, force: true });
93
+ return pages.map((page) => {
94
+ const file = path_1.default.join(outputPath, page.fileName);
95
+ fs_1.default.mkdirSync(path_1.default.dirname(file), { recursive: true });
96
+ fs_1.default.writeFileSync(file, page.content, "utf8");
97
+ return file;
98
+ });
99
+ }
100
+ function withNotice(content) {
101
+ return `${exports.generatedNotice}\n\n${content.trimEnd()}\n`;
102
+ }
103
+ function isRecord(record) {
104
+ return record !== undefined;
105
+ }
106
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"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"}