@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 CHANGED
@@ -5,7 +5,7 @@
5
5
  <br><br>
6
6
 
7
7
  [![CI](https://github.com/lucasviola/specwiki/actions/workflows/ci.yml/badge.svg)](https://github.com/lucasviola/specwiki/actions/workflows/ci.yml)
8
- [![version](https://img.shields.io/badge/version-0.1.0-blue)](package.json)
8
+ [![version](https://img.shields.io/badge/version-1.1.0-blue)](package.json)
9
9
  [![node](https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=white)](package.json)
10
10
  [![license](https://img.shields.io/badge/license-MIT-blue)](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;AAE/C,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,kBAAkB;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;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;AAkDD,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CAmC3B;AAkWD,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
+ {"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 toNavPage(page) {
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
- title: page.title,
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,EAEL,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;AAcD,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;IAEzC,OAAO;WAMM,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAS5C,WAAW,CACT,KAAK,EAAE,QAAQ,EAAE,EACjB,SAAS,EAAE,aAAa,EACxB,aAAa,GAAE,iBAAsB,GACpC,MAAM;IA8CT,aAAa,CACX,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,iBAAsB,GACpC,MAAM;WAmCI,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,CAkDf;AAiED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAK7D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
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
- constructor(layout, index, article) {
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 breadcrumbs = buildBreadcrumbs(page, categoryLabel, allPages);
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
- const navPages = grouping.hasSubgroups
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: navPages,
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
- segments.push({ label: page.title, first: false });
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":"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"}
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
- <li class="category-nav-subgroup">
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
- <li class="category-nav-subgroup">
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
- <li class="category-nav-subgroup">
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
- <li class="category-nav-subgroup">
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
- {{#collapsible}}
2
- <details class="category-nav-subgroup{{#active}} category-nav-active{{/active}}" data-subgroup="{{key}}" {{#open}}open{{/open}}>
3
- <summary class="category-nav-subsummary">
4
- <span class="category-nav-subheading">{{label}}</span>
5
- <span class="category-nav-count" aria-label="{{pageCount}} pages">{{pageCount}}</span>
6
- </summary>
7
- {{#hasNestedSubgroups}}
8
- <div class="category-nav-subgroups">
9
- {{#subgroups}}
10
- {{> nav-subgroup-leaf}}
11
- {{/subgroups}}
12
- </div>
13
- {{/hasNestedSubgroups}}
14
- {{^hasNestedSubgroups}}
15
- <ul class="category-nav-pages">
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-leaf}}
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
- {{/hasNestedSubgroups}}
40
- </div>
41
- {{/collapsible}}
28
+ {{/collapsible}}
29
+ </li>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucasviola/specwiki",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "Transform AI specs into structured wiki-like documentation",
5
5
  "type": "module",
6
6
  "publishConfig": {