dogsbay 0.2.0-beta.32 → 0.2.0-beta.33

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dogsbay",
3
- "version": "0.2.0-beta.32",
3
+ "version": "0.2.0-beta.33",
4
4
  "description": "CLI for Dogsbay — scaffold, build, and serve documentation sites with markdown / MkDocs / Obsidian / OpenAPI sources",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,14 +32,14 @@
32
32
  "picocolors": "^1.1.0",
33
33
  "prompts": "^2.4.2",
34
34
  "yaml": "^2.8.3",
35
- "@dogsbay/format-mkdocs": "0.2.0-beta.32",
36
- "@dogsbay/format-astro": "0.2.0-beta.32",
37
- "@dogsbay/format-obsidian": "0.2.0-beta.32",
38
- "@dogsbay/format-mdx": "0.2.0-beta.32",
39
- "@dogsbay/format-starlight": "0.2.0-beta.32",
40
- "@dogsbay/format-dogsbay-md": "0.2.0-beta.32",
41
- "@dogsbay/format-openapi": "0.2.0-beta.32",
42
- "@dogsbay/types": "0.2.0-beta.32"
35
+ "@dogsbay/format-mkdocs": "0.2.0-beta.33",
36
+ "@dogsbay/format-astro": "0.2.0-beta.33",
37
+ "@dogsbay/format-obsidian": "0.2.0-beta.33",
38
+ "@dogsbay/format-mdx": "0.2.0-beta.33",
39
+ "@dogsbay/format-starlight": "0.2.0-beta.33",
40
+ "@dogsbay/format-openapi": "0.2.0-beta.33",
41
+ "@dogsbay/types": "0.2.0-beta.33",
42
+ "@dogsbay/format-dogsbay-md": "0.2.0-beta.33"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.0.0",
@@ -300,6 +300,25 @@ explicit declaration.
300
300
  semantic effects, AND they're also the canonical taxonomies
301
301
  to declare in `taxonomies:` config. Use the built-in name
302
302
  rather than inventing a parallel field.
303
+ - ❌ **Using the YAML-nested-object form for `tags:`** — it's
304
+ silently dropped by `parseMeta`, page renders with no chips
305
+ and no facets, nothing warns:
306
+
307
+ ```yaml
308
+ # ❌ silently inert
309
+ tags:
310
+ difficulty: beginner
311
+ topic: [getting-started, install]
312
+ persona: [author]
313
+ ```
314
+
315
+ `tags:` must be a string or string array. Encode dimensions as
316
+ slash-prefix slugs (`difficulty/beginner`, `topic/install`,
317
+ `persona/author`) and declare the prefixes in
318
+ `taxonomies.tags.prefixes`. See `dogsbay:taxonomy-config` →
319
+ Dimensional metadata via tag prefixes, and
320
+ [docs/tagging-cookbook.md](../../../../../../docs/tagging-cookbook.md)
321
+ for the full migration recipe.
303
322
  - ❌ Setting `status: beta` (or any value not in the closed
304
323
  enum). The four values are `draft | preview | stable |
305
324
  deprecated` — `parseMeta` silently drops anything else, so
@@ -17,6 +17,14 @@ for tagging. It provides:
17
17
  What goes IN the schemes is the user's call. Dogsbay's role is
18
18
  to make the slot work consistently.
19
19
 
20
+ For an end-to-end worked example covering **dimensional metadata**
21
+ ("I want tags with names and values — difficulty, topic, persona,
22
+ each with their own facet column and chip colour"), see
23
+ [docs/tagging-cookbook.md](../../../../../../docs/tagging-cookbook.md).
24
+ That doc walks the full config + frontmatter + emitted-output
25
+ flow for the multi-prefix dimensional pattern, with migration
26
+ notes for the common YAML-nested-object pitfall.
27
+
20
28
  ## Where taxonomy values live
21
29
 
22
30
  Per-page in frontmatter:
@@ -375,8 +383,89 @@ taxonomies:
375
383
  No `values:` — any tag is valid. Just hierarchical display
376
384
  config for the prefixes the writer uses.
377
385
 
386
+ ### Dimensional metadata via tag prefixes
387
+
388
+ The answer to "I want tags with names and values — difficulty,
389
+ topic, persona, each with its own facet column and chip colour."
390
+ Slash-prefix slugs encode the dimension; display config supplies
391
+ the human surface.
392
+
393
+ ```yaml
394
+ # dogsbay.config.yml
395
+ taxonomies:
396
+ tags:
397
+ indexPath: /tags
398
+ hierarchical: true
399
+ prefixes:
400
+ difficulty: { label: Difficulty, color: amber }
401
+ topic: { label: Topic, color: violet }
402
+ persona: { label: For, color: emerald }
403
+ concept: { label: Concept, color: blue }
404
+ product: { label: Product, color: rose }
405
+ labels:
406
+ "difficulty/1": Beginner
407
+ "difficulty/2": Intermediate
408
+ "difficulty/3": Advanced
409
+ "persona/dev": Developer
410
+ "persona/agent": AI agent
411
+ ```
412
+
413
+ ```yaml
414
+ # page frontmatter — one flat `tags:` list, many dimensions
415
+ tags:
416
+ - difficulty/1
417
+ - topic/getting-started
418
+ - topic/install
419
+ - persona/dev
420
+ - persona/agent
421
+ - concept/agent-ready
422
+ - product/dogsbay-platform
423
+ ```
424
+
425
+ Each prefix becomes its own Cmd+K facet column (`Difficulty`,
426
+ `Topic`, `For`, `Concept`, `Product`), each chip renders as a
427
+ two-part `<label>: <leaf>` block in the prefix's colour, and
428
+ each term gets a browse page (`/tags/difficulty/1/` etc.). One
429
+ authoring pattern, five dimensions of metadata, no extra
430
+ top-level frontmatter keys.
431
+
432
+ See [docs/tagging-cookbook.md](../../../../../../docs/tagging-cookbook.md)
433
+ for the full end-to-end walkthrough including what gets emitted
434
+ to dist/.
435
+
378
436
  ## Common mistakes
379
437
 
438
+ - ❌ **Using the YAML-nested-object form for `tags:` in
439
+ frontmatter.** This shape is silently dropped by `parseMeta` —
440
+ no chips, no facets, no taxonomy index entries. The build
441
+ succeeds, the page renders with no metadata attached, nothing
442
+ warns.
443
+
444
+ ```yaml
445
+ # ❌ silently inert — parseMeta sees tags as an object, returns
446
+ # undefined, no chips/facets/index entries are emitted
447
+ tags:
448
+ difficulty: beginner
449
+ topic: [getting-started, install]
450
+ persona: [author]
451
+ ```
452
+
453
+ Encode the same intent as slash-prefix strings instead:
454
+
455
+ ```yaml
456
+ # ✅ supported — each entry is a string slug, prefix is the
457
+ # dimension, leaf is the value. Declare the prefixes in
458
+ # taxonomies.tags.prefixes for the chip + facet UI to light up.
459
+ tags:
460
+ - difficulty/beginner
461
+ - topic/getting-started
462
+ - topic/install
463
+ - persona/author
464
+ ```
465
+
466
+ See the dimensional-metadata pattern above + the full migration
467
+ recipe in [docs/tagging-cookbook.md](../../../../../../docs/tagging-cookbook.md).
468
+
380
469
  - ❌ Putting tag display config (colours, labels) in
381
470
  per-page frontmatter — that's site-wide, belongs in
382
471
  `dogsbay.config.yml`. Frontmatter just lists which taxonomies