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.
|
|
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.
|
|
36
|
-
"@dogsbay/format-astro": "0.2.0-beta.
|
|
37
|
-
"@dogsbay/format-obsidian": "0.2.0-beta.
|
|
38
|
-
"@dogsbay/format-mdx": "0.2.0-beta.
|
|
39
|
-
"@dogsbay/format-starlight": "0.2.0-beta.
|
|
40
|
-
"@dogsbay/format-
|
|
41
|
-
"@dogsbay/
|
|
42
|
-
"@dogsbay/
|
|
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
|