@heroiclands/package-build 25.5.5 → 25.6.1

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 (74) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/assets/styles/content-base.css +1 -1
  3. package/docs/api.md +24 -16
  4. package/docs/authoring/frontmatter.md +1 -1
  5. package/docs/authoring/links-and-markup.md +10 -9
  6. package/docs/content-format.md +40 -1
  7. package/docs/diagnostics.md +2 -2
  8. package/docs/encoding-core.md +43 -5
  9. package/docs/guides/reference-pages.md +4 -1
  10. package/docs/guides/site.md +1 -1
  11. package/docs/reference/format-details.md +239 -194
  12. package/docs/reference/note-types.md +187 -174
  13. package/docs/reference/theme-pages.md +1 -0
  14. package/engine/content-format.yaml +9 -7
  15. package/engine/content-html.mjs +3 -2
  16. package/engine/content-index.mjs +23 -0
  17. package/engine/content-links.mjs +8 -0
  18. package/engine/content-render.mjs +2 -2
  19. package/engine/content-tables.mjs +12 -5
  20. package/engine/culture-reach.mjs +3 -0
  21. package/engine/declared-sections.mjs +100 -0
  22. package/engine/derived-sections.mjs +36 -2
  23. package/engine/dictionary-rows.mjs +2 -1
  24. package/engine/encoding-template.mjs +28 -0
  25. package/engine/encoding-terms.mjs +20 -12
  26. package/engine/encoding.mjs +147 -17
  27. package/engine/generated-sections.mjs +2 -0
  28. package/engine/holdings.mjs +107 -3
  29. package/engine/index-records.mjs +3 -1
  30. package/engine/index.mjs +1 -1
  31. package/engine/language-data.mjs +0 -1
  32. package/engine/language-rows.mjs +1 -3
  33. package/engine/language-terms.mjs +7 -10
  34. package/engine/map-dot.mjs +22 -0
  35. package/engine/markdown-blocks.mjs +23 -8
  36. package/engine/metadata-index.mjs +1 -0
  37. package/engine/note-addresses.mjs +16 -0
  38. package/engine/note-vocabulary.mjs +19 -8
  39. package/engine/office-holders.mjs +76 -0
  40. package/engine/page-breaks.mjs +36 -8
  41. package/engine/pdf-render.mjs +4 -3
  42. package/engine/place-kinds.mjs +106 -0
  43. package/engine/settlement-tables.mjs +410 -675
  44. package/engine/settlement-terms.mjs +118 -0
  45. package/engine/site-build.mjs +2 -4
  46. package/engine/sql-tables.mjs +101 -7
  47. package/engine/standing-terms.mjs +9 -5
  48. package/engine/standings.mjs +83 -31
  49. package/engine/unique-items.mjs +85 -0
  50. package/package.json +9 -4
  51. package/site-theme/data/banner-kinds.yaml +2 -0
  52. package/sohl/actors.mjs +4 -3
  53. package/types/engine/content-html.d.mts +2 -1
  54. package/types/engine/content-scripts.d.mts +6 -0
  55. package/types/engine/culture-reach.d.mts +3 -0
  56. package/types/engine/declared-sections.d.mts +30 -0
  57. package/types/engine/derived-sections.d.mts +5 -1
  58. package/types/engine/encoding-lexicon.d.mts +6 -0
  59. package/types/engine/encoding-template.d.mts +6 -0
  60. package/types/engine/encoding.d.mts +12 -0
  61. package/types/engine/holdings.d.mts +34 -2
  62. package/types/engine/index-records.d.mts +2 -1
  63. package/types/engine/language-terms.d.mts +5 -1
  64. package/types/engine/markdown-blocks.d.mts +5 -1
  65. package/types/engine/office-holders.d.mts +33 -0
  66. package/types/engine/page-breaks.d.mts +8 -0
  67. package/types/engine/place-kinds.d.mts +18 -0
  68. package/types/engine/settlement-tables.d.mts +25 -158
  69. package/types/engine/settlement-terms.d.mts +53 -0
  70. package/types/engine/sql-tables.d.mts +35 -3
  71. package/types/engine/standing-terms.d.mts +3 -2
  72. package/types/engine/standings.d.mts +14 -2
  73. package/types/engine/unique-items.d.mts +12 -0
  74. package/vendor/markdownlint.mjs +855 -569
@@ -20,8 +20,9 @@ export const STANDING_BODY_TYPES: readonly string[];
20
20
  * The keys one standing carries, as inner-key declarations.
21
21
  *
22
22
  * `rank` is the level on the body's own `governance.ranks` ladder, and every
23
- * membership states one. `office` is a key of its `governance.offices` map, and
24
- * is stated only where the being holds a post. `societies` names the societies
23
+ * membership states one. `office` is a key of its `governance.offices` map, or
24
+ * a list of them where the being holds several posts in that body, and is
25
+ * stated only where the being holds a post. `societies` names the societies
25
26
  * the membership is held in, as a list because a membership can span several.
26
27
  *
27
28
  * @type {readonly import("./data-keys.mjs").InnerKeySpec[]}
@@ -98,12 +98,24 @@ export function standingsDigest(fm: object): {
98
98
  ranks?: Record<string, string>;
99
99
  offices?: Record<string, string>;
100
100
  } | undefined;
101
+ /**
102
+ * The posts a standing holds, trimmed, in the order written.
103
+ *
104
+ * `office` is one post or a list of them, and every reader — the line on the
105
+ * being's page, the SoHL item, the derived holders of an office — wants the
106
+ * same list from both.
107
+ *
108
+ * @param {object} [standing] - `{rank, office}`, either or both absent.
109
+ * @returns {string[]} The posts, blank and non-text entries left out.
110
+ */
111
+ export function standingOffices(standing?: object): string[];
101
112
  /**
102
113
  * What a standing says before the body that confers it — `War Chief, Hárár
103
114
  * (5), of ` — or `""` where no standing is held.
104
115
  *
105
116
  * The office leads, because it is the more particular of the two: a reader
106
- * meeting "War Chief" has been told the rung as well. The rung follows as its
117
+ * meeting "War Chief" has been told the rung as well. Several posts in one
118
+ * body lead in the order written, `Treasurer, Chancellor, …`. The rung follows as its
107
119
  * title with its level in parentheses, read from the body's own ladder; where
108
120
  * the ladder names no rung at that level, or none is available, it reads as
109
121
  * `Rank 5` and the number is not repeated. The body closes the phrase, which is
@@ -131,7 +143,7 @@ export function standingLead(standing: object, digest?: {
131
143
  * 3. the entry states a standing at all — what a stated standing holds is the
132
144
  * inner-key check's, read from {@link STANDING_FIELDS};
133
145
  * 4. a `rank` is a level the named body's `governance.ranks` declares;
134
- * 5. an `office` is a key of that body's `governance.offices`.
146
+ * 5. each post an `office` names is a key of that body's `governance.offices`.
135
147
  *
136
148
  * Both of the last two are read from the named body's own frontmatter as the
137
149
  * lint runs, so a rung or a post that does not exist fails on every being pointing
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Report a unique item whose note links no place or being.
3
+ *
4
+ * @param {object} note - The note: `file`, `raw`, `body` and parsed `fm`.
5
+ * @param {{index?: object}} [options] - The lint's options.
6
+ * @returns {object[]} The finding, located at `unique`, or none.
7
+ */
8
+ export function checkUniqueItem(note: object, { index }?: {
9
+ index?: object;
10
+ }): object[];
11
+ /** The note types a unique item's links must reach at least one of. */
12
+ export const UNIQUE_ITEM_LINK_TYPES: readonly string[];