@heroiclands/package-build 23.5.0 → 23.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/bin/content-commands.mjs +23 -5
  3. package/bin/package-build.mjs +1 -74
  4. package/docs/api.md +9 -0
  5. package/docs/authoring/links-and-markup.md +77 -12
  6. package/docs/commands.md +4 -48
  7. package/docs/content-format.md +16 -0
  8. package/docs/diagnostics.md +1 -2
  9. package/docs/guides/module-project.md +1 -1
  10. package/docs/guides/reference-pages.md +89 -0
  11. package/docs/guides/release-and-deploy.md +3 -3
  12. package/docs/project-setup.md +16 -59
  13. package/docs/reference/format-details.md +533 -84
  14. package/docs/reference/note-types.md +191 -149
  15. package/engine/base-compiler.mjs +21 -0
  16. package/engine/cdn-publish.mjs +30 -5
  17. package/engine/content-format.yaml +9 -0
  18. package/engine/content-index.mjs +19 -5
  19. package/engine/culture-reach.mjs +330 -0
  20. package/engine/dictionary-layout.mjs +340 -0
  21. package/engine/dictionary-rows.mjs +608 -0
  22. package/engine/glossary-entries.mjs +182 -0
  23. package/engine/glossary-language.mjs +99 -0
  24. package/engine/index.mjs +1 -0
  25. package/engine/infobox.mjs +8 -0
  26. package/engine/language-words.mjs +360 -0
  27. package/engine/literature-notes.mjs +10 -8
  28. package/engine/note-addresses.mjs +25 -0
  29. package/engine/note-vocabulary.mjs +161 -1
  30. package/engine/path-charset.mjs +120 -0
  31. package/engine/project-init.mjs +4 -29
  32. package/engine/sql-tables.mjs +311 -21
  33. package/engine/word-classes.mjs +167 -0
  34. package/engine/word-rows.mjs +233 -0
  35. package/engine/word-terms.mjs +306 -0
  36. package/package.json +2 -4
  37. package/types/engine/cdn-publish.d.mts +26 -25
  38. package/types/engine/content-index.d.mts +15 -5
  39. package/types/engine/culture-reach.d.mts +66 -0
  40. package/types/engine/dictionary-layout.d.mts +69 -0
  41. package/types/engine/dictionary-rows.d.mts +39 -0
  42. package/types/engine/glossary-entries.d.mts +12 -0
  43. package/types/engine/glossary-language.d.mts +42 -0
  44. package/types/engine/index.d.mts +1 -0
  45. package/types/engine/language-words.d.mts +33 -0
  46. package/types/engine/literature-notes.d.mts +2 -2
  47. package/types/engine/note-addresses.d.mts +17 -0
  48. package/types/engine/path-charset.d.mts +38 -0
  49. package/types/engine/sql-tables.d.mts +7 -2
  50. package/types/engine/word-classes.d.mts +87 -0
  51. package/types/engine/word-rows.d.mts +64 -0
  52. package/types/engine/word-terms.d.mts +68 -0
  53. package/labels.mjs +0 -191
  54. package/types/labels.d.mts +0 -40
@@ -30,8 +30,7 @@ acme-bestiary/
30
30
  │ ├── config.json
31
31
  │ └── *.md # one per unreleased change
32
32
  ├── .github/
33
- │ ├── labels.yml # the closed label registry
34
- │ ├── ISSUE_REPORTING.md # §3 lists the same labels
33
+ │ │ ├── ISSUE_REPORTING.md # how issues are filed
35
34
  │ └── workflows/
36
35
  ├── assets/
37
36
  │ └── content/ # authored Markdown notes
@@ -161,19 +160,18 @@ anything to remove.
161
160
 
162
161
  ### `lint:*` — the checks, one per question
163
162
 
164
- Seven checks, each answering one question and blind to what the others see.
163
+ Six checks, each answering one question and blind to what the others see.
165
164
  They are separate scripts rather than one because a failing chain stops at its
166
165
  first failure, and knowing _which_ question failed is most of the diagnosis.
167
166
 
168
167
  ```json
169
- "lint": "run-s lint:format lint:markdown lint:addresses lint:content-links lint:lang lint:labels lint:changelog",
168
+ "lint": "run-s lint:format lint:markdown lint:addresses lint:content-links lint:lang lint:changelog",
170
169
  "lint:format": "package-build format",
171
170
  "lint:markdown": "package-build markdown",
172
171
  "lint:markdown:fix": "package-build markdown --fix",
173
172
  "lint:addresses": "package-build lint",
174
173
  "lint:content-links": "package-build links",
175
174
  "lint:lang": "package-build lang check",
176
- "lint:labels": "package-build labels check",
177
175
  "lint:changelog": "package-build changelog check"
178
176
  ```
179
177
 
@@ -194,9 +192,6 @@ first failure, and knowing _which_ question failed is most of the diagnosis.
194
192
  `package-build lang coverage` and `package-build lang hardcoded`; a
195
193
  content-only package has nothing for those two to read, and each dies naming
196
194
  the glob that matched nothing rather than passing vacuously.
197
- - **`lint:labels`** — do `.github/labels.yml` and §3 of
198
- `.github/ISSUE_REPORTING.md` still list the same labels? Neither derives from
199
- the other, so nothing else notices when they drift.
200
195
  - **`lint:changelog`** — does every pending `.changeset/*.md` read like a
201
196
  release note rather than a pasted pull-request description? Passes
202
197
  trivially when nothing is pending: no pull request is required to carry a
@@ -499,46 +494,9 @@ tool:
499
494
 
500
495
  ## `.github/`
501
496
 
502
- Two files the toolchain reads, and they must agree.
503
-
504
- **`.github/labels.yml`** is the closed label registry — the machine-readable
505
- source of truth, synced to GitHub by the org-wide `labels` action. A label on
506
- GitHub that is not listed there is deleted on the next sync, which is what makes
507
- the set closed and why nothing invents one.
508
-
509
- ```yaml
510
- - name: documentation
511
- color: "0075ca"
512
- description: Documentation about this repository — README, process, authoring guides.
513
-
514
- - name: devops
515
- color: "e07b31"
516
- description: Build, tooling, CI, release, repo config.
517
- ```
518
-
519
- **`.github/ISSUE_REPORTING.md`** §3 is the same list in prose, for a human
520
- filing an issue. `package-build labels check` compares the two and fails when
521
- they disagree:
522
-
523
- ```console
524
- $ npx package-build labels check
525
- package-build: registry and §3 agree (2 labels).
526
- ```
527
-
528
- Neither file derives from the other, so this check is the only thing standing
529
- between them and a silent divergence. Editing the registry means editing both.
530
-
531
- Labels are **subject matter only**. Work shape — bug, feature, epic, task, spike
532
- — is an issue _type_, shared across the organization, so there is no `bug` label
533
- and filtering on one returns nothing.
534
-
535
- Neither file exists in a fresh repository, and `labels check` says so rather
536
- than passing vacuously:
537
-
538
- ```console
539
- $ npx package-build labels check
540
- package-build: labels check: .github/labels.yml does not exist.
541
- ```
497
+ **`.github/ISSUE_REPORTING.md`** says how issues are filed. Labels are
498
+ organisation-level and defined in `HeroicLands/.github`, so the repository
499
+ carries no label registry of its own.
542
500
 
543
501
  `.github/workflows/` then carries the repository's own CI. The org-wide
544
502
  `HeroicLands/.github` repository supplies the shared composite actions those
@@ -549,17 +507,16 @@ site-deploy workflow, so a fix to any of them reaches every repository at once.
549
507
 
550
508
  A summary, because "where does this come from" is the question that recurs.
551
509
 
552
- | Read | By |
553
- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
554
- | `package.json` | The Foundry package id, the version, the release addresses; the site's `baseURL`, description and author. |
555
- | `package-build.config.yaml` | Everything else about the build. |
556
- | `assets/content/**/*.md` | Every content command. |
557
- | `.gitignore` | `package-build format`, `package-build markdown`. |
558
- | `.prettierignore` | `package-build format`. |
559
- | `.github/labels.yml`, `.github/ISSUE_REPORTING.md` | `package-build labels check`. |
560
- | `lang/*.json` | `package-build lang`. |
561
- | `.env.local` | `package-build deploy`. |
562
- | `.github/workflows/build.yml` | The `pre-push` hook, for its step list. |
510
+ | Read | By |
511
+ | ----------------------------- | --------------------------------------------------------------------------------------------------------- |
512
+ | `package.json` | The Foundry package id, the version, the release addresses; the site's `baseURL`, description and author. |
513
+ | `package-build.config.yaml` | Everything else about the build. |
514
+ | `assets/content/**/*.md` | Every content command. |
515
+ | `.gitignore` | `package-build format`, `package-build markdown`. |
516
+ | `.prettierignore` | `package-build format`. |
517
+ | `lang/*.json` | `package-build lang`. |
518
+ | `.env.local` | `package-build deploy`. |
519
+ | `.github/workflows/build.yml` | The `pre-push` hook, for its step list. |
563
520
 
564
521
  Everything written goes under `build/`. Nothing the toolchain generates is
565
522
  committed.