@lucasviola/specwiki 1.0.2 → 1.1.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 +3 -1
- package/dist/output/html/assets/specwiki.css +37 -1
- package/dist/output/html/nav-grouping-catalog.d.ts +32 -0
- package/dist/output/html/nav-grouping-catalog.d.ts.map +1 -0
- package/dist/output/html/nav-grouping-catalog.js +294 -0
- package/dist/output/html/nav-grouping-catalog.js.map +1 -0
- package/dist/output/html/nav-grouping.d.ts +12 -5
- package/dist/output/html/nav-grouping.d.ts.map +1 -1
- package/dist/output/html/nav-grouping.js +172 -5
- package/dist/output/html/nav-grouping.js.map +1 -1
- package/dist/output/html/renderer.d.ts +1 -0
- package/dist/output/html/renderer.d.ts.map +1 -1
- package/dist/output/html/renderer.js +28 -13
- package/dist/output/html/renderer.js.map +1 -1
- package/dist/output/html/templates/article.mustache +3 -37
- package/dist/output/html/templates/index.mustache +2 -36
- package/dist/output/html/templates/partials/nav-subgroup-nested.mustache +23 -0
- package/dist/output/html/templates/partials/nav-subgroup.mustache +23 -35
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<br><br>
|
|
6
6
|
|
|
7
7
|
[](https://github.com/lucasviola/specwiki/actions/workflows/ci.yml)
|
|
8
|
-
[](package.json)
|
|
9
9
|
[](package.json)
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
|
|
@@ -222,6 +222,8 @@ npm run typecheck
|
|
|
222
222
|
npm test
|
|
223
223
|
```
|
|
224
224
|
|
|
225
|
+
See [CHANGELOG.md](CHANGELOG.md) for release history. When shipping user-facing changes, add a bullet under `[Unreleased]` there.
|
|
226
|
+
|
|
225
227
|
## License
|
|
226
228
|
|
|
227
229
|
MIT
|
|
@@ -501,6 +501,35 @@ body.specwiki {
|
|
|
501
501
|
margin-top: 0.25rem;
|
|
502
502
|
}
|
|
503
503
|
|
|
504
|
+
.category-nav-subgroup-summary {
|
|
505
|
+
display: flex;
|
|
506
|
+
align-items: center;
|
|
507
|
+
gap: 0.25rem;
|
|
508
|
+
cursor: pointer;
|
|
509
|
+
list-style: none;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
.category-nav-subgroup-group > summary::-webkit-details-marker {
|
|
513
|
+
display: none;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
.category-nav-subgroup-group > summary::marker {
|
|
517
|
+
content: "";
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.category-nav-subgroup-group > summary::before {
|
|
521
|
+
content: "›";
|
|
522
|
+
color: var(--color-base--subtle);
|
|
523
|
+
font-size: 0.875rem;
|
|
524
|
+
line-height: 1;
|
|
525
|
+
transform: rotate(0deg);
|
|
526
|
+
transition: transform 160ms ease-out;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.category-nav-subgroup-group[open] > summary::before {
|
|
530
|
+
transform: rotate(90deg);
|
|
531
|
+
}
|
|
532
|
+
|
|
504
533
|
.category-nav-subgroup-label {
|
|
505
534
|
display: block;
|
|
506
535
|
font-size: 0.6875rem;
|
|
@@ -511,6 +540,12 @@ body.specwiki {
|
|
|
511
540
|
letter-spacing: 0.04em;
|
|
512
541
|
}
|
|
513
542
|
|
|
543
|
+
.category-nav-subgroup-summary .category-nav-subgroup-label {
|
|
544
|
+
flex: 1;
|
|
545
|
+
min-width: 0;
|
|
546
|
+
margin-bottom: 0;
|
|
547
|
+
}
|
|
548
|
+
|
|
514
549
|
.category-nav-subgroup-pages {
|
|
515
550
|
list-style: none;
|
|
516
551
|
margin: 0;
|
|
@@ -946,7 +981,8 @@ body.specwiki {
|
|
|
946
981
|
|
|
947
982
|
@media (prefers-reduced-motion: reduce) {
|
|
948
983
|
.specwiki-nav-drawer,
|
|
949
|
-
.category-nav-group > summary::before
|
|
984
|
+
.category-nav-group > summary::before,
|
|
985
|
+
.category-nav-subgroup-group > summary::before {
|
|
950
986
|
transition: none;
|
|
951
987
|
}
|
|
952
988
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface AgentSkillCatalogEntry {
|
|
2
|
+
skillId: string;
|
|
3
|
+
displayName?: string;
|
|
4
|
+
phase?: string;
|
|
5
|
+
module?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
isAgent: boolean;
|
|
8
|
+
agentName?: string;
|
|
9
|
+
agentTitle?: string;
|
|
10
|
+
agentIcon?: string;
|
|
11
|
+
/** True when at least one non-_meta CSV row contributed to this entry. */
|
|
12
|
+
inCsv: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface NavGroupingContext {
|
|
15
|
+
readonly loaded: boolean;
|
|
16
|
+
readonly skillsById: ReadonlyMap<string, AgentSkillCatalogEntry>;
|
|
17
|
+
}
|
|
18
|
+
export declare function loadNavGroupingContext(projectRoot: string): Promise<NavGroupingContext>;
|
|
19
|
+
/** Exported for unit tests — keeps catalog reads under projectRoot. */
|
|
20
|
+
export declare function catalogPath(root: string, ...parts: string[]): string;
|
|
21
|
+
/** Minimal RFC4180 line parser (quoted fields, escaped quotes). */
|
|
22
|
+
export declare function parseCsvLine(line: string): string[];
|
|
23
|
+
interface ParsedSkillToml {
|
|
24
|
+
isAgent: boolean;
|
|
25
|
+
agentName?: string;
|
|
26
|
+
agentTitle?: string;
|
|
27
|
+
agentIcon?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Section detect + scalar extract — not a full TOML AST. */
|
|
30
|
+
export declare function parseSkillCustomizeToml(text: string): ParsedSkillToml;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=nav-grouping-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-grouping-catalog.d.ts","sourceRoot":"","sources":["../../../src/output/html/nav-grouping-catalog.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAClE;AAqBD,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA2C7B;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAOpE;AA0ED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAqCnD;AAuJD,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAYrE"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { log } from "../../core/Logger.js";
|
|
4
|
+
import { assertRealpathConfinedUnder, PathEscapeError, } from "../../core/paths.js";
|
|
5
|
+
const SDLC_PHASES = new Set([
|
|
6
|
+
"1-analysis",
|
|
7
|
+
"2-planning",
|
|
8
|
+
"3-solutioning",
|
|
9
|
+
"4-implementation",
|
|
10
|
+
]);
|
|
11
|
+
function emptyContext() {
|
|
12
|
+
return { loaded: false, skillsById: new Map() };
|
|
13
|
+
}
|
|
14
|
+
export async function loadNavGroupingContext(projectRoot) {
|
|
15
|
+
try {
|
|
16
|
+
const resolvedRoot = path.resolve(projectRoot);
|
|
17
|
+
const csvPath = catalogPath(resolvedRoot, "_bmad", "_config", "bmad-help.csv");
|
|
18
|
+
const csvText = await readConfinedFile(resolvedRoot, csvPath, "bmad-help.csv");
|
|
19
|
+
if (csvText === null) {
|
|
20
|
+
return emptyContext();
|
|
21
|
+
}
|
|
22
|
+
const skillsById = new Map();
|
|
23
|
+
for (const row of parseBmadHelpCsv(csvText)) {
|
|
24
|
+
mergeCsvRow(skillsById, row);
|
|
25
|
+
}
|
|
26
|
+
await enrichFromSkillTomls(resolvedRoot, skillsById);
|
|
27
|
+
let agentCount = 0;
|
|
28
|
+
for (const entry of skillsById.values()) {
|
|
29
|
+
if (entry.isAgent) {
|
|
30
|
+
agentCount += 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
log.info("output.write", {
|
|
34
|
+
relativePath: "_bmad/_config/bmad-help.csv",
|
|
35
|
+
skillsLoaded: skillsById.size,
|
|
36
|
+
agentsFound: agentCount,
|
|
37
|
+
});
|
|
38
|
+
return { loaded: true, skillsById };
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return emptyContext();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Exported for unit tests — keeps catalog reads under projectRoot. */
|
|
45
|
+
export function catalogPath(root, ...parts) {
|
|
46
|
+
const resolved = path.resolve(root, ...parts);
|
|
47
|
+
const relative = path.relative(root, resolved);
|
|
48
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) {
|
|
49
|
+
throw new Error("catalog path escapes project root");
|
|
50
|
+
}
|
|
51
|
+
return resolved;
|
|
52
|
+
}
|
|
53
|
+
async function readConfinedFile(projectRoot, targetPath, label) {
|
|
54
|
+
try {
|
|
55
|
+
await assertRealpathConfinedUnder(projectRoot, targetPath, label);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (err instanceof PathEscapeError) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
return await fs.readFile(targetPath, "utf-8");
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function descriptionLooksDeprecated(description) {
|
|
71
|
+
return (description ?? "").toLowerCase().includes("deprecated");
|
|
72
|
+
}
|
|
73
|
+
function parseBmadHelpCsv(text) {
|
|
74
|
+
const lines = text.split(/\r?\n/);
|
|
75
|
+
const headerFields = parseCsvLine(lines[0] || "");
|
|
76
|
+
const index = {
|
|
77
|
+
module: headerFields.indexOf("module"),
|
|
78
|
+
skill: headerFields.indexOf("skill"),
|
|
79
|
+
displayName: headerFields.indexOf("display-name"),
|
|
80
|
+
description: headerFields.indexOf("description"),
|
|
81
|
+
phase: headerFields.indexOf("phase"),
|
|
82
|
+
};
|
|
83
|
+
if (index.skill < 0) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
const rows = [];
|
|
87
|
+
for (let i = 1; i < lines.length; i++) {
|
|
88
|
+
const line = lines[i];
|
|
89
|
+
if (!line.trim()) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const fields = parseCsvLine(line);
|
|
93
|
+
const skill = (fields[index.skill] || "").trim();
|
|
94
|
+
if (!skill || skill === "_meta") {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
rows.push({
|
|
98
|
+
module: fieldAt(fields, index.module),
|
|
99
|
+
skill,
|
|
100
|
+
displayName: fieldAt(fields, index.displayName),
|
|
101
|
+
description: fieldAt(fields, index.description),
|
|
102
|
+
phase: fieldAt(fields, index.phase),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return rows;
|
|
106
|
+
}
|
|
107
|
+
function fieldAt(fields, index) {
|
|
108
|
+
if (index < 0 || index >= fields.length) {
|
|
109
|
+
return "";
|
|
110
|
+
}
|
|
111
|
+
return fields[index].trim();
|
|
112
|
+
}
|
|
113
|
+
/** Minimal RFC4180 line parser (quoted fields, escaped quotes). */
|
|
114
|
+
export function parseCsvLine(line) {
|
|
115
|
+
const fields = [];
|
|
116
|
+
let current = "";
|
|
117
|
+
let inQuotes = false;
|
|
118
|
+
for (let i = 0; i < line.length; i++) {
|
|
119
|
+
const ch = line[i];
|
|
120
|
+
if (inQuotes) {
|
|
121
|
+
if (ch === '"') {
|
|
122
|
+
if (line[i + 1] === '"') {
|
|
123
|
+
current += '"';
|
|
124
|
+
i += 1;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
inQuotes = false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
current += ch;
|
|
132
|
+
}
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
if (ch === '"') {
|
|
136
|
+
inQuotes = true;
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (ch === ",") {
|
|
140
|
+
fields.push(current);
|
|
141
|
+
current = "";
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
current += ch;
|
|
145
|
+
}
|
|
146
|
+
fields.push(current);
|
|
147
|
+
return fields;
|
|
148
|
+
}
|
|
149
|
+
function csvRowScore(row) {
|
|
150
|
+
let score = 0;
|
|
151
|
+
if (SDLC_PHASES.has(row.phase)) {
|
|
152
|
+
score += 100;
|
|
153
|
+
}
|
|
154
|
+
else if (row.phase === "anytime") {
|
|
155
|
+
score += 10;
|
|
156
|
+
}
|
|
157
|
+
if (row.module.includes("BMad Method") ||
|
|
158
|
+
(row.module && row.module !== "Core")) {
|
|
159
|
+
score += 5;
|
|
160
|
+
}
|
|
161
|
+
else if (row.module === "Core") {
|
|
162
|
+
score += 1;
|
|
163
|
+
}
|
|
164
|
+
return score;
|
|
165
|
+
}
|
|
166
|
+
function mergeCsvRow(skillsById, row) {
|
|
167
|
+
const existing = skillsById.get(row.skill);
|
|
168
|
+
if (!existing) {
|
|
169
|
+
skillsById.set(row.skill, {
|
|
170
|
+
skillId: row.skill,
|
|
171
|
+
displayName: row.displayName || undefined,
|
|
172
|
+
phase: row.phase || undefined,
|
|
173
|
+
module: row.module || undefined,
|
|
174
|
+
description: row.description || undefined,
|
|
175
|
+
isAgent: false,
|
|
176
|
+
inCsv: true,
|
|
177
|
+
});
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const existingAsRow = {
|
|
181
|
+
module: existing.module || "",
|
|
182
|
+
skill: existing.skillId,
|
|
183
|
+
displayName: existing.displayName || "",
|
|
184
|
+
description: existing.description || "",
|
|
185
|
+
phase: existing.phase || "",
|
|
186
|
+
};
|
|
187
|
+
const priorDeprecatedDescription = descriptionLooksDeprecated(existing.description)
|
|
188
|
+
? existing.description
|
|
189
|
+
: undefined;
|
|
190
|
+
if (csvRowScore(row) > csvRowScore(existingAsRow)) {
|
|
191
|
+
if (row.displayName) {
|
|
192
|
+
existing.displayName = row.displayName;
|
|
193
|
+
}
|
|
194
|
+
if (row.phase) {
|
|
195
|
+
existing.phase = row.phase;
|
|
196
|
+
}
|
|
197
|
+
if (row.module) {
|
|
198
|
+
existing.module = row.module;
|
|
199
|
+
}
|
|
200
|
+
if (row.description) {
|
|
201
|
+
existing.description = row.description;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Any CSV row marking DEPRECATED wins membership, even on score ties / losses.
|
|
205
|
+
if (descriptionLooksDeprecated(row.description)) {
|
|
206
|
+
existing.description = row.description;
|
|
207
|
+
}
|
|
208
|
+
else if (priorDeprecatedDescription) {
|
|
209
|
+
existing.description = priorDeprecatedDescription;
|
|
210
|
+
}
|
|
211
|
+
existing.inCsv = true;
|
|
212
|
+
}
|
|
213
|
+
async function enrichFromSkillTomls(projectRoot, skillsById) {
|
|
214
|
+
const skillsDir = catalogPath(projectRoot, ".agents", "skills");
|
|
215
|
+
try {
|
|
216
|
+
await assertRealpathConfinedUnder(projectRoot, skillsDir, "agent skills directory");
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
if (err instanceof PathEscapeError) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
throw err;
|
|
223
|
+
}
|
|
224
|
+
let entries;
|
|
225
|
+
try {
|
|
226
|
+
entries = await fs.readdir(skillsDir);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
for (const skillId of entries) {
|
|
232
|
+
let tomlPath;
|
|
233
|
+
try {
|
|
234
|
+
tomlPath = catalogPath(projectRoot, ".agents", "skills", skillId, "customize.toml");
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
const tomlText = await readConfinedFile(projectRoot, tomlPath, `customize.toml (${skillId})`);
|
|
240
|
+
if (tomlText === null) {
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
const parsed = parseSkillCustomizeToml(tomlText);
|
|
244
|
+
const existing = skillsById.get(skillId);
|
|
245
|
+
if (existing) {
|
|
246
|
+
if (parsed.isAgent) {
|
|
247
|
+
existing.isAgent = true;
|
|
248
|
+
existing.agentName = parsed.agentName;
|
|
249
|
+
existing.agentTitle = parsed.agentTitle;
|
|
250
|
+
existing.agentIcon = parsed.agentIcon;
|
|
251
|
+
}
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
if (parsed.isAgent) {
|
|
255
|
+
skillsById.set(skillId, {
|
|
256
|
+
skillId,
|
|
257
|
+
isAgent: true,
|
|
258
|
+
agentName: parsed.agentName,
|
|
259
|
+
agentTitle: parsed.agentTitle,
|
|
260
|
+
agentIcon: parsed.agentIcon,
|
|
261
|
+
inCsv: false,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/** Section detect + scalar extract — not a full TOML AST. */
|
|
267
|
+
export function parseSkillCustomizeToml(text) {
|
|
268
|
+
if (!/^\s*\[agent\]\s*$/m.test(text)) {
|
|
269
|
+
return { isAgent: false };
|
|
270
|
+
}
|
|
271
|
+
const agentBody = extractTomlSection(text, "agent");
|
|
272
|
+
return {
|
|
273
|
+
isAgent: true,
|
|
274
|
+
agentName: extractTomlString(agentBody, "name"),
|
|
275
|
+
agentTitle: extractTomlString(agentBody, "title"),
|
|
276
|
+
agentIcon: extractTomlString(agentBody, "icon"),
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
function extractTomlSection(text, section) {
|
|
280
|
+
const header = new RegExp(String.raw `^\s*\[${section}\]\s*(?:\r?\n|$)`, "m").exec(text);
|
|
281
|
+
if (!header) {
|
|
282
|
+
return "";
|
|
283
|
+
}
|
|
284
|
+
const rest = text.slice(header.index + header[0].length);
|
|
285
|
+
const nextHeader = rest.search(/^\s*\[[^\]]+\]\s*$/m);
|
|
286
|
+
return nextHeader === -1 ? rest : rest.slice(0, nextHeader);
|
|
287
|
+
}
|
|
288
|
+
function extractTomlString(sectionBody, key) {
|
|
289
|
+
const pattern = new RegExp(String.raw `^\s*${key}\s*=\s*(?:"([^"]*)"|'([^']*)')\s*$`, "m");
|
|
290
|
+
const match = sectionBody.match(pattern);
|
|
291
|
+
const value = match?.[1] ?? match?.[2];
|
|
292
|
+
return value ? value : undefined;
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=nav-grouping-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-grouping-catalog.js","sourceRoot":"","sources":["../../../src/output/html/nav-grouping-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { WikiPage } from "../../types.js";
|
|
2
|
+
import { loadNavGroupingContext, type AgentSkillCatalogEntry, type NavGroupingContext } from "./nav-grouping-catalog.js";
|
|
3
|
+
export type { AgentSkillCatalogEntry, NavGroupingContext };
|
|
4
|
+
export { loadNavGroupingContext };
|
|
2
5
|
export interface NavPage {
|
|
3
6
|
title: string;
|
|
4
7
|
slug: string;
|
|
@@ -19,10 +22,6 @@ export interface CategoryNavGroupingResult {
|
|
|
19
22
|
subgroups: NavSubgroup[];
|
|
20
23
|
hasSubgroups: boolean;
|
|
21
24
|
}
|
|
22
|
-
export interface NavGroupingContext {
|
|
23
|
-
/** Reserved for S23.2 CSV/TOML enrichment. */
|
|
24
|
-
readonly loaded: boolean;
|
|
25
|
-
}
|
|
26
25
|
export interface BuildCategoryNavSubgroupsOptions {
|
|
27
26
|
categoryKey: string;
|
|
28
27
|
activePageSlug?: string;
|
|
@@ -31,8 +30,16 @@ export interface BuildCategoryNavSubgroupsOptions {
|
|
|
31
30
|
indexBuild?: boolean;
|
|
32
31
|
context?: NavGroupingContext;
|
|
33
32
|
}
|
|
34
|
-
export declare function loadNavGroupingContext(_projectRoot: string): Promise<NavGroupingContext>;
|
|
35
33
|
export declare function buildCategoryNavSubgroups(pages: WikiPage[], options: BuildCategoryNavSubgroupsOptions): CategoryNavGroupingResult;
|
|
34
|
+
export interface SubgroupTrailSegment {
|
|
35
|
+
key: string;
|
|
36
|
+
label: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Walk finalized category subgroups and return the ordered ancestor trail
|
|
40
|
+
* (outer → inner) for the active page. Does not include the page itself.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveActiveSubgroupTrail(subgroups: NavSubgroup[], options: Pick<BuildCategoryNavSubgroupsOptions, "activePageSlug" | "activeSourcePath">): SubgroupTrailSegment[];
|
|
36
43
|
/** Exported for unit tests — maps category keys to path strip prefixes. */
|
|
37
44
|
export declare function categoryPathPrefix(categoryKey: string): string | undefined;
|
|
38
45
|
/** Exported for unit tests — humanizes a folder segment. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav-grouping.d.ts","sourceRoot":"","sources":["../../../src/output/html/nav-grouping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"nav-grouping.d.ts","sourceRoot":"","sources":["../../../src/output/html/nav-grouping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AA+DD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CA2C3B;AAwiBD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,WAAW,EAAE,EACxB,OAAO,EAAE,IAAI,CACX,gCAAgC,EAChC,gBAAgB,GAAG,kBAAkB,CACtC,GACA,oBAAoB,EAAE,CAmBxB;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
import { loadNavGroupingContext, } from "./nav-grouping-catalog.js";
|
|
2
|
+
export { loadNavGroupingContext };
|
|
3
|
+
const HYBRID_GROUPS = [
|
|
4
|
+
{ key: "your-team", label: "Your team" },
|
|
5
|
+
{ key: "analysis", label: "Analysis" },
|
|
6
|
+
{ key: "planning", label: "Planning" },
|
|
7
|
+
{ key: "solutioning", label: "Solutioning" },
|
|
8
|
+
{ key: "implementation", label: "Implementation" },
|
|
9
|
+
{ key: "core-utilities", label: "Core utilities" },
|
|
10
|
+
{ key: "deprecated", label: "Deprecated" },
|
|
11
|
+
{ key: "uncatalogued", label: "Uncatalogued" },
|
|
12
|
+
];
|
|
1
13
|
const CATEGORY_PATH_PREFIXES = {
|
|
2
14
|
"cursor-rules": ".cursor/rules/",
|
|
3
15
|
"cursor-skills": ".cursor/skills/",
|
|
@@ -33,11 +45,12 @@ function storyNumbers(sourcePath) {
|
|
|
33
45
|
};
|
|
34
46
|
}
|
|
35
47
|
let subgroupOrderCounter = 0;
|
|
36
|
-
export async function loadNavGroupingContext(_projectRoot) {
|
|
37
|
-
return { loaded: false };
|
|
38
|
-
}
|
|
39
48
|
export function buildCategoryNavSubgroups(pages, options) {
|
|
40
49
|
subgroupOrderCounter = 0;
|
|
50
|
+
if (options.categoryKey === "agent-skills" &&
|
|
51
|
+
options.context?.loaded === true) {
|
|
52
|
+
return buildHybridAgentSkillsGrouping(pages, options);
|
|
53
|
+
}
|
|
41
54
|
const rootPages = [];
|
|
42
55
|
const rootChildren = new Map();
|
|
43
56
|
for (const page of pages) {
|
|
@@ -62,9 +75,141 @@ export function buildCategoryNavSubgroups(pages, options) {
|
|
|
62
75
|
hasSubgroups,
|
|
63
76
|
};
|
|
64
77
|
}
|
|
65
|
-
function
|
|
78
|
+
function buildHybridAgentSkillsGrouping(pages, options) {
|
|
79
|
+
const skillsById = options.context?.skillsById ?? new Map();
|
|
80
|
+
/** phase → skillId ("" for orphans) → wiki pages */
|
|
81
|
+
const buckets = new Map();
|
|
82
|
+
for (const page of pages) {
|
|
83
|
+
const skillId = agentSkillIdFromPath(page.sourcePath);
|
|
84
|
+
const entry = skillId ? skillsById.get(skillId) : undefined;
|
|
85
|
+
const groupKey = resolveHybridGroupKey(entry);
|
|
86
|
+
const skillKey = skillId ?? "";
|
|
87
|
+
let phaseSkills = buckets.get(groupKey);
|
|
88
|
+
if (!phaseSkills) {
|
|
89
|
+
phaseSkills = new Map();
|
|
90
|
+
buckets.set(groupKey, phaseSkills);
|
|
91
|
+
}
|
|
92
|
+
const list = phaseSkills.get(skillKey) ?? [];
|
|
93
|
+
list.push(page);
|
|
94
|
+
phaseSkills.set(skillKey, list);
|
|
95
|
+
}
|
|
96
|
+
const rootChildren = new Map();
|
|
97
|
+
for (const group of HYBRID_GROUPS) {
|
|
98
|
+
const phaseSkills = buckets.get(group.key);
|
|
99
|
+
if (!phaseSkills || phaseSkills.size === 0) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const phaseNode = {
|
|
103
|
+
key: group.key,
|
|
104
|
+
label: group.label,
|
|
105
|
+
pages: [],
|
|
106
|
+
children: new Map(),
|
|
107
|
+
order: subgroupOrderCounter++,
|
|
108
|
+
};
|
|
109
|
+
const skillEntries = [...phaseSkills.entries()].sort(([idA, pagesA], [idB, pagesB]) => {
|
|
110
|
+
const labelA = resolveHybridSkillLabel(idA, pagesA[0], skillsById.get(idA));
|
|
111
|
+
const labelB = resolveHybridSkillLabel(idB, pagesB[0], skillsById.get(idB));
|
|
112
|
+
return labelA.localeCompare(labelB, undefined, { sensitivity: "base" });
|
|
113
|
+
});
|
|
114
|
+
for (const [skillKey, skillPages] of skillEntries) {
|
|
115
|
+
const entry = skillKey ? skillsById.get(skillKey) : undefined;
|
|
116
|
+
// Paths outside .agents/skills/ stay as direct Uncatalogued leaves.
|
|
117
|
+
if (!skillKey) {
|
|
118
|
+
for (const page of skillPages) {
|
|
119
|
+
phaseNode.pages.push(toNavPage(page));
|
|
120
|
+
}
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const skillLabel = resolveHybridSkillLabel(skillKey, skillPages[0], entry);
|
|
124
|
+
// Single-page skills: L4 title on the phase leaf (no L2 wrapper).
|
|
125
|
+
if (skillPages.length === 1) {
|
|
126
|
+
phaseNode.pages.push(toNavPage(skillPages[0], resolveAgentSkillTitle(skillPages[0], entry)));
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
const nestedPages = skillPages
|
|
130
|
+
.map((page) => toNavPage(page))
|
|
131
|
+
.sort((a, b) => a.title.localeCompare(b.title, undefined, { sensitivity: "base" }));
|
|
132
|
+
phaseNode.children.set(skillKey, {
|
|
133
|
+
key: `${group.key}/${skillKey}`,
|
|
134
|
+
label: skillLabel,
|
|
135
|
+
pages: nestedPages,
|
|
136
|
+
children: new Map(),
|
|
137
|
+
order: subgroupOrderCounter++,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
phaseNode.pages.sort((a, b) => a.title.localeCompare(b.title, undefined, { sensitivity: "base" }));
|
|
141
|
+
rootChildren.set(group.key, phaseNode);
|
|
142
|
+
}
|
|
143
|
+
const subgroups = finalizeSubgroups(rootChildren, options);
|
|
66
144
|
return {
|
|
67
|
-
|
|
145
|
+
pages: subgroups.rootPromoted,
|
|
146
|
+
subgroups: subgroups.subgroups,
|
|
147
|
+
hasSubgroups: subgroups.subgroups.length > 0,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
function resolveHybridSkillLabel(skillId, page, entry) {
|
|
151
|
+
if (!skillId) {
|
|
152
|
+
return page.title;
|
|
153
|
+
}
|
|
154
|
+
if (entry?.isAgent && entry.agentName && entry.agentTitle) {
|
|
155
|
+
return resolveAgentSkillTitle(page, entry);
|
|
156
|
+
}
|
|
157
|
+
if (entry?.displayName) {
|
|
158
|
+
return entry.displayName;
|
|
159
|
+
}
|
|
160
|
+
// Stable label for uncatalogued multi-page skills (not first-page wiki title).
|
|
161
|
+
return humanizeFolderLabel(skillId, [skillId]);
|
|
162
|
+
}
|
|
163
|
+
function agentSkillIdFromPath(sourcePath) {
|
|
164
|
+
const normalized = normalizePath(sourcePath);
|
|
165
|
+
const prefix = ".agents/skills/";
|
|
166
|
+
if (!normalized.startsWith(prefix)) {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
const skillId = normalized.slice(prefix.length).split("/")[0];
|
|
170
|
+
return skillId || null;
|
|
171
|
+
}
|
|
172
|
+
function resolveHybridGroupKey(entry) {
|
|
173
|
+
if (entry?.isAgent) {
|
|
174
|
+
return "your-team";
|
|
175
|
+
}
|
|
176
|
+
if (entry?.description?.toLowerCase().includes("deprecated")) {
|
|
177
|
+
return "deprecated";
|
|
178
|
+
}
|
|
179
|
+
switch (entry?.phase) {
|
|
180
|
+
case "1-analysis":
|
|
181
|
+
return "analysis";
|
|
182
|
+
case "2-planning":
|
|
183
|
+
return "planning";
|
|
184
|
+
case "3-solutioning":
|
|
185
|
+
return "solutioning";
|
|
186
|
+
case "4-implementation":
|
|
187
|
+
return "implementation";
|
|
188
|
+
default:
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
if (entry?.module === "Core" || entry?.phase === "anytime") {
|
|
192
|
+
return "core-utilities";
|
|
193
|
+
}
|
|
194
|
+
if (entry?.inCsv) {
|
|
195
|
+
return "core-utilities";
|
|
196
|
+
}
|
|
197
|
+
return "uncatalogued";
|
|
198
|
+
}
|
|
199
|
+
function resolveAgentSkillTitle(page, entry) {
|
|
200
|
+
if (entry?.isAgent && entry.agentName && entry.agentTitle) {
|
|
201
|
+
return entry.agentIcon
|
|
202
|
+
? `${entry.agentIcon} ${entry.agentName} — ${entry.agentTitle}`
|
|
203
|
+
: `${entry.agentName} — ${entry.agentTitle}`;
|
|
204
|
+
}
|
|
205
|
+
if (entry?.displayName) {
|
|
206
|
+
return entry.displayName;
|
|
207
|
+
}
|
|
208
|
+
return page.title;
|
|
209
|
+
}
|
|
210
|
+
function toNavPage(page, titleOverride) {
|
|
211
|
+
return {
|
|
212
|
+
title: titleOverride ?? page.title,
|
|
68
213
|
slug: page.slug,
|
|
69
214
|
href: `${page.slug}.html`,
|
|
70
215
|
sourcePath: page.sourcePath,
|
|
@@ -313,6 +458,28 @@ function subgroupContainsActiveInChild(subgroup, options) {
|
|
|
313
458
|
}
|
|
314
459
|
return false;
|
|
315
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Walk finalized category subgroups and return the ordered ancestor trail
|
|
463
|
+
* (outer → inner) for the active page. Does not include the page itself.
|
|
464
|
+
*/
|
|
465
|
+
export function resolveActiveSubgroupTrail(subgroups, options) {
|
|
466
|
+
const trail = [];
|
|
467
|
+
function walk(nodes) {
|
|
468
|
+
for (const node of nodes) {
|
|
469
|
+
if (!subgroupContainsActiveInChild(node, options)) {
|
|
470
|
+
continue;
|
|
471
|
+
}
|
|
472
|
+
trail.push({ key: node.key, label: node.label });
|
|
473
|
+
if (node.subgroups?.length) {
|
|
474
|
+
walk(node.subgroups);
|
|
475
|
+
}
|
|
476
|
+
return true;
|
|
477
|
+
}
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
walk(subgroups);
|
|
481
|
+
return trail;
|
|
482
|
+
}
|
|
316
483
|
/** Exported for unit tests — maps category keys to path strip prefixes. */
|
|
317
484
|
export function categoryPathPrefix(categoryKey) {
|
|
318
485
|
return CATEGORY_PATH_PREFIXES[categoryKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav-grouping.js","sourceRoot":"","sources":["../../../src/output/html/nav-grouping.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nav-grouping.js","sourceRoot":"","sources":["../../../src/output/html/nav-grouping.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ export declare class HtmlRenderer {
|
|
|
29
29
|
private readonly layoutTemplate;
|
|
30
30
|
private readonly indexTemplate;
|
|
31
31
|
private readonly articleTemplate;
|
|
32
|
+
private readonly partials;
|
|
32
33
|
private constructor();
|
|
33
34
|
static create(): Promise<HtmlRenderer>;
|
|
34
35
|
renderIndex(pages: WikiPage[], indexMeta: WikiIndexMeta, renderOptions?: HtmlRenderOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/output/html/renderer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAe,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/output/html/renderer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAe,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAU3B,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAQD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,OAAO;WAYM,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAqB5C,WAAW,CACT,KAAK,EAAE,QAAQ,EAAE,EACjB,SAAS,EAAE,aAAa,EACxB,aAAa,GAAE,iBAAsB,GACpC,MAAM;IAkDT,aAAa,CACX,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,iBAAsB,GACpC,MAAM;WA+CI,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAWzC,MAAM,CAAC,kBAAkB,IAAI,MAAM;IAInC,MAAM,CAAC,oBAAoB,IAAI,MAAM;WAIxB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAIjD;AA0BD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EAAE,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,QAAQ,EACrB,aAAa,GAAE,iBAAsB,GACpC,WAAW,EAAE,CA+Cf;AA4ED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAK7D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -6,7 +6,7 @@ import Mustache from "mustache";
|
|
|
6
6
|
import { CATEGORY_LABELS } from "../../config/patterns.js";
|
|
7
7
|
import { renderMarkdown } from "../../parse/markdown.js";
|
|
8
8
|
import { isReadmeFile } from "../readme-index.js";
|
|
9
|
-
import { buildCategoryNavSubgroups, } from "./nav-grouping.js";
|
|
9
|
+
import { buildCategoryNavSubgroups, resolveActiveSubgroupTrail, } from "./nav-grouping.js";
|
|
10
10
|
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
11
11
|
const require = createRequire(import.meta.url);
|
|
12
12
|
const TEMPLATES_DIR = path.join(moduleDir, "templates");
|
|
@@ -17,18 +17,25 @@ export class HtmlRenderer {
|
|
|
17
17
|
layoutTemplate;
|
|
18
18
|
indexTemplate;
|
|
19
19
|
articleTemplate;
|
|
20
|
-
|
|
20
|
+
partials;
|
|
21
|
+
constructor(layout, index, article, partials) {
|
|
21
22
|
this.layoutTemplate = layout;
|
|
22
23
|
this.indexTemplate = index;
|
|
23
24
|
this.articleTemplate = article;
|
|
25
|
+
this.partials = partials;
|
|
24
26
|
}
|
|
25
27
|
static async create() {
|
|
26
|
-
const [layout, index, article] = await Promise.all([
|
|
28
|
+
const [layout, index, article, navSubgroup, navSubgroupNested] = await Promise.all([
|
|
27
29
|
fs.readFile(path.join(TEMPLATES_DIR, "layout.mustache"), "utf-8"),
|
|
28
30
|
fs.readFile(path.join(TEMPLATES_DIR, "index.mustache"), "utf-8"),
|
|
29
31
|
fs.readFile(path.join(TEMPLATES_DIR, "article.mustache"), "utf-8"),
|
|
32
|
+
fs.readFile(path.join(TEMPLATES_DIR, "partials", "nav-subgroup.mustache"), "utf-8"),
|
|
33
|
+
fs.readFile(path.join(TEMPLATES_DIR, "partials", "nav-subgroup-nested.mustache"), "utf-8"),
|
|
30
34
|
]);
|
|
31
|
-
return new HtmlRenderer(layout, index, article
|
|
35
|
+
return new HtmlRenderer(layout, index, article, {
|
|
36
|
+
"nav-subgroup": navSubgroup,
|
|
37
|
+
"nav-subgroup-nested": navSubgroupNested,
|
|
38
|
+
});
|
|
32
39
|
}
|
|
33
40
|
renderIndex(pages, indexMeta, renderOptions = {}) {
|
|
34
41
|
const categories = buildNavCategories(pages, undefined, undefined, renderOptions)
|
|
@@ -58,7 +65,7 @@ export class HtmlRenderer {
|
|
|
58
65
|
allPages,
|
|
59
66
|
hasRootIntro,
|
|
60
67
|
rootIntroHtml: hasRootIntro ? renderMarkdown(indexMeta.rootIntro) : "",
|
|
61
|
-
});
|
|
68
|
+
}, this.partials);
|
|
62
69
|
return Mustache.render(this.layoutTemplate, {
|
|
63
70
|
pageTitle: "Spec Wiki",
|
|
64
71
|
body,
|
|
@@ -72,7 +79,8 @@ export class HtmlRenderer {
|
|
|
72
79
|
const categories = buildNavCategories(allPages, page.category, page, renderOptions);
|
|
73
80
|
const categoryLabel = categoryLabelFor(page.category);
|
|
74
81
|
const tocEntries = buildTocEntries(page.sections);
|
|
75
|
-
const
|
|
82
|
+
const activeCategory = categories.find((category) => category.key === page.category);
|
|
83
|
+
const breadcrumbs = buildBreadcrumbs(page, categoryLabel, allPages, activeCategory?.subgroups);
|
|
76
84
|
const body = Mustache.render(this.articleTemplate, {
|
|
77
85
|
categories,
|
|
78
86
|
breadcrumbs,
|
|
@@ -84,7 +92,7 @@ export class HtmlRenderer {
|
|
|
84
92
|
content: contentHtml,
|
|
85
93
|
tocEntries,
|
|
86
94
|
hasToc: tocEntries.length > 0,
|
|
87
|
-
});
|
|
95
|
+
}, this.partials);
|
|
88
96
|
return Mustache.render(this.layoutTemplate, {
|
|
89
97
|
pageTitle: page.title,
|
|
90
98
|
body,
|
|
@@ -152,9 +160,7 @@ export function buildNavCategories(pages, activeCategory, activePage, renderOpti
|
|
|
152
160
|
indexBuild: isIndexBuild,
|
|
153
161
|
context,
|
|
154
162
|
});
|
|
155
|
-
|
|
156
|
-
? grouping.pages
|
|
157
|
-
: categoryPages.map((page) => toNavPage(page));
|
|
163
|
+
// Always use grouping.pages so L4 catalog titles survive singleton promotion.
|
|
158
164
|
const category = {
|
|
159
165
|
key,
|
|
160
166
|
label: categoryLabelFor(key),
|
|
@@ -163,7 +169,7 @@ export function buildNavCategories(pages, activeCategory, activePage, renderOpti
|
|
|
163
169
|
open: key === activeCategory,
|
|
164
170
|
pageCount: categoryPages.length,
|
|
165
171
|
collapsible: categoryPages.length > 1,
|
|
166
|
-
pages:
|
|
172
|
+
pages: grouping.pages,
|
|
167
173
|
};
|
|
168
174
|
if (grouping.hasSubgroups) {
|
|
169
175
|
category.hasSubgroups = true;
|
|
@@ -189,7 +195,7 @@ function buildTocEntries(sections) {
|
|
|
189
195
|
level: section.level,
|
|
190
196
|
}));
|
|
191
197
|
}
|
|
192
|
-
function buildBreadcrumbs(page, categoryLabel, allPages) {
|
|
198
|
+
function buildBreadcrumbs(page, categoryLabel, allPages, subgroups) {
|
|
193
199
|
const segments = [
|
|
194
200
|
{ label: "Main Page", href: "index.html", first: true },
|
|
195
201
|
];
|
|
@@ -203,7 +209,16 @@ function buildBreadcrumbs(page, categoryLabel, allPages) {
|
|
|
203
209
|
else {
|
|
204
210
|
segments.push({ label: categoryLabel, first: false });
|
|
205
211
|
}
|
|
206
|
-
|
|
212
|
+
if (subgroups?.length) {
|
|
213
|
+
const trail = resolveActiveSubgroupTrail(subgroups, {
|
|
214
|
+
activePageSlug: page.slug,
|
|
215
|
+
activeSourcePath: page.sourcePath,
|
|
216
|
+
});
|
|
217
|
+
for (const segment of trail) {
|
|
218
|
+
segments.push({ label: segment.label, first: false });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
segments.push({ label: page.title, first: false, current: true });
|
|
207
222
|
return segments;
|
|
208
223
|
}
|
|
209
224
|
function validateArticlePage(page) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/output/html/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,yBAAyB,
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/output/html/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,24 +22,7 @@
|
|
|
22
22
|
<li><a href="{{href}}">{{title}}</a></li>
|
|
23
23
|
{{/pages}}
|
|
24
24
|
{{#subgroups}}
|
|
25
|
-
|
|
26
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
27
|
-
<ul class="category-nav-subgroup-pages">
|
|
28
|
-
{{#pages}}
|
|
29
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
30
|
-
{{/pages}}
|
|
31
|
-
{{#subgroups}}
|
|
32
|
-
<li class="category-nav-subgroup category-nav-subgroup-nested">
|
|
33
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
34
|
-
<ul class="category-nav-subgroup-pages">
|
|
35
|
-
{{#pages}}
|
|
36
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
37
|
-
{{/pages}}
|
|
38
|
-
</ul>
|
|
39
|
-
</li>
|
|
40
|
-
{{/subgroups}}
|
|
41
|
-
</ul>
|
|
42
|
-
</li>
|
|
25
|
+
{{> nav-subgroup}}
|
|
43
26
|
{{/subgroups}}
|
|
44
27
|
</ul>
|
|
45
28
|
</details>
|
|
@@ -52,24 +35,7 @@
|
|
|
52
35
|
<li><a href="{{href}}">{{title}}</a></li>
|
|
53
36
|
{{/pages}}
|
|
54
37
|
{{#subgroups}}
|
|
55
|
-
|
|
56
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
57
|
-
<ul class="category-nav-subgroup-pages">
|
|
58
|
-
{{#pages}}
|
|
59
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
60
|
-
{{/pages}}
|
|
61
|
-
{{#subgroups}}
|
|
62
|
-
<li class="category-nav-subgroup category-nav-subgroup-nested">
|
|
63
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
64
|
-
<ul class="category-nav-subgroup-pages">
|
|
65
|
-
{{#pages}}
|
|
66
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
67
|
-
{{/pages}}
|
|
68
|
-
</ul>
|
|
69
|
-
</li>
|
|
70
|
-
{{/subgroups}}
|
|
71
|
-
</ul>
|
|
72
|
-
</li>
|
|
38
|
+
{{> nav-subgroup}}
|
|
73
39
|
{{/subgroups}}
|
|
74
40
|
</ul>
|
|
75
41
|
</div>
|
|
@@ -82,7 +48,7 @@
|
|
|
82
48
|
{{#breadcrumbs}}
|
|
83
49
|
{{^first}} › {{/first}}
|
|
84
50
|
{{#href}}<a href="{{href}}">{{label}}</a>{{/href}}
|
|
85
|
-
{{^href}}<span aria-current="page">{{label}}</span>{{/href}}
|
|
51
|
+
{{^href}}{{#current}}<span aria-current="page">{{label}}</span>{{/current}}{{^current}}<span>{{label}}</span>{{/current}}{{/href}}
|
|
86
52
|
{{/breadcrumbs}}
|
|
87
53
|
</nav>
|
|
88
54
|
<aside class="infobox">
|
|
@@ -22,24 +22,7 @@
|
|
|
22
22
|
<li><a href="{{href}}">{{title}}</a></li>
|
|
23
23
|
{{/pages}}
|
|
24
24
|
{{#subgroups}}
|
|
25
|
-
|
|
26
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
27
|
-
<ul class="category-nav-subgroup-pages">
|
|
28
|
-
{{#pages}}
|
|
29
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
30
|
-
{{/pages}}
|
|
31
|
-
{{#subgroups}}
|
|
32
|
-
<li class="category-nav-subgroup category-nav-subgroup-nested">
|
|
33
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
34
|
-
<ul class="category-nav-subgroup-pages">
|
|
35
|
-
{{#pages}}
|
|
36
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
37
|
-
{{/pages}}
|
|
38
|
-
</ul>
|
|
39
|
-
</li>
|
|
40
|
-
{{/subgroups}}
|
|
41
|
-
</ul>
|
|
42
|
-
</li>
|
|
25
|
+
{{> nav-subgroup}}
|
|
43
26
|
{{/subgroups}}
|
|
44
27
|
</ul>
|
|
45
28
|
</details>
|
|
@@ -52,24 +35,7 @@
|
|
|
52
35
|
<li><a href="{{href}}">{{title}}</a></li>
|
|
53
36
|
{{/pages}}
|
|
54
37
|
{{#subgroups}}
|
|
55
|
-
|
|
56
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
57
|
-
<ul class="category-nav-subgroup-pages">
|
|
58
|
-
{{#pages}}
|
|
59
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
60
|
-
{{/pages}}
|
|
61
|
-
{{#subgroups}}
|
|
62
|
-
<li class="category-nav-subgroup category-nav-subgroup-nested">
|
|
63
|
-
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
64
|
-
<ul class="category-nav-subgroup-pages">
|
|
65
|
-
{{#pages}}
|
|
66
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
67
|
-
{{/pages}}
|
|
68
|
-
</ul>
|
|
69
|
-
</li>
|
|
70
|
-
{{/subgroups}}
|
|
71
|
-
</ul>
|
|
72
|
-
</li>
|
|
38
|
+
{{> nav-subgroup}}
|
|
73
39
|
{{/subgroups}}
|
|
74
40
|
</ul>
|
|
75
41
|
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<li class="category-nav-subgroup category-nav-subgroup-nested">
|
|
2
|
+
{{#collapsible}}
|
|
3
|
+
<details class="category-nav-subgroup-group" data-subgroup="{{key}}" {{#open}}open{{/open}}>
|
|
4
|
+
<summary class="category-nav-subgroup-summary">
|
|
5
|
+
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
6
|
+
<span class="category-nav-count" aria-label="{{pageCount}} pages">{{pageCount}}</span>
|
|
7
|
+
</summary>
|
|
8
|
+
<ul class="category-nav-subgroup-pages">
|
|
9
|
+
{{#pages}}
|
|
10
|
+
<li><a href="{{href}}">{{title}}</a></li>
|
|
11
|
+
{{/pages}}
|
|
12
|
+
</ul>
|
|
13
|
+
</details>
|
|
14
|
+
{{/collapsible}}
|
|
15
|
+
{{^collapsible}}
|
|
16
|
+
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
17
|
+
<ul class="category-nav-subgroup-pages">
|
|
18
|
+
{{#pages}}
|
|
19
|
+
<li><a href="{{href}}">{{title}}</a></li>
|
|
20
|
+
{{/pages}}
|
|
21
|
+
</ul>
|
|
22
|
+
{{/collapsible}}
|
|
23
|
+
</li>
|
|
@@ -1,41 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
<li class="category-nav-subgroup">
|
|
2
|
+
{{#collapsible}}
|
|
3
|
+
<details class="category-nav-subgroup-group" data-subgroup="{{key}}" {{#open}}open{{/open}}>
|
|
4
|
+
<summary class="category-nav-subgroup-summary">
|
|
5
|
+
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
6
|
+
<span class="category-nav-count" aria-label="{{pageCount}} pages">{{pageCount}}</span>
|
|
7
|
+
</summary>
|
|
8
|
+
<ul class="category-nav-subgroup-pages">
|
|
9
|
+
{{#pages}}
|
|
10
|
+
<li><a href="{{href}}">{{title}}</a></li>
|
|
11
|
+
{{/pages}}
|
|
12
|
+
{{#subgroups}}
|
|
13
|
+
{{> nav-subgroup-nested}}
|
|
14
|
+
{{/subgroups}}
|
|
15
|
+
</ul>
|
|
16
|
+
</details>
|
|
17
|
+
{{/collapsible}}
|
|
18
|
+
{{^collapsible}}
|
|
19
|
+
<span class="category-nav-subgroup-label">{{label}}</span>
|
|
20
|
+
<ul class="category-nav-subgroup-pages">
|
|
16
21
|
{{#pages}}
|
|
17
22
|
<li><a href="{{href}}">{{title}}</a></li>
|
|
18
23
|
{{/pages}}
|
|
19
|
-
</ul>
|
|
20
|
-
{{/hasNestedSubgroups}}
|
|
21
|
-
</details>
|
|
22
|
-
{{/collapsible}}
|
|
23
|
-
{{^collapsible}}
|
|
24
|
-
<div class="category-nav-subgroup{{#active}} category-nav-active{{/active}}" data-subgroup="{{key}}">
|
|
25
|
-
<span class="category-nav-subheading">{{label}}</span>
|
|
26
|
-
{{#hasNestedSubgroups}}
|
|
27
|
-
<div class="category-nav-subgroups">
|
|
28
24
|
{{#subgroups}}
|
|
29
|
-
{{> nav-subgroup-
|
|
25
|
+
{{> nav-subgroup-nested}}
|
|
30
26
|
{{/subgroups}}
|
|
31
|
-
</div>
|
|
32
|
-
{{/hasNestedSubgroups}}
|
|
33
|
-
{{^hasNestedSubgroups}}
|
|
34
|
-
<ul class="category-nav-pages">
|
|
35
|
-
{{#pages}}
|
|
36
|
-
<li><a href="{{href}}">{{title}}</a></li>
|
|
37
|
-
{{/pages}}
|
|
38
27
|
</ul>
|
|
39
|
-
{{/
|
|
40
|
-
</
|
|
41
|
-
{{/collapsible}}
|
|
28
|
+
{{/collapsible}}
|
|
29
|
+
</li>
|