@heroiclands/package-build 25.5.5 → 25.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.
- package/CHANGELOG.md +18 -0
- package/assets/styles/content-base.css +1 -1
- package/docs/api.md +24 -16
- package/docs/authoring/frontmatter.md +1 -1
- package/docs/authoring/links-and-markup.md +10 -9
- package/docs/content-format.md +40 -1
- package/docs/diagnostics.md +2 -2
- package/docs/guides/reference-pages.md +4 -1
- package/docs/guides/site.md +1 -1
- package/docs/reference/format-details.md +174 -129
- package/docs/reference/note-types.md +134 -121
- package/docs/reference/theme-pages.md +1 -0
- package/engine/content-format.yaml +9 -7
- package/engine/content-html.mjs +3 -2
- package/engine/content-index.mjs +23 -0
- package/engine/content-links.mjs +8 -0
- package/engine/content-render.mjs +2 -2
- package/engine/content-tables.mjs +12 -5
- package/engine/culture-reach.mjs +3 -0
- package/engine/declared-sections.mjs +100 -0
- package/engine/derived-sections.mjs +36 -2
- package/engine/dictionary-rows.mjs +2 -1
- package/engine/generated-sections.mjs +2 -0
- package/engine/holdings.mjs +107 -3
- package/engine/index-records.mjs +3 -1
- package/engine/index.mjs +1 -1
- package/engine/language-data.mjs +0 -1
- package/engine/language-rows.mjs +1 -3
- package/engine/language-terms.mjs +7 -10
- package/engine/map-dot.mjs +22 -0
- package/engine/markdown-blocks.mjs +23 -8
- package/engine/metadata-index.mjs +1 -0
- package/engine/note-addresses.mjs +16 -0
- package/engine/note-vocabulary.mjs +19 -8
- package/engine/office-holders.mjs +76 -0
- package/engine/page-breaks.mjs +36 -8
- package/engine/pdf-render.mjs +4 -3
- package/engine/place-kinds.mjs +106 -0
- package/engine/settlement-tables.mjs +410 -675
- package/engine/settlement-terms.mjs +118 -0
- package/engine/site-build.mjs +2 -4
- package/engine/sql-tables.mjs +101 -7
- package/engine/standing-terms.mjs +9 -5
- package/engine/standings.mjs +83 -31
- package/engine/unique-items.mjs +85 -0
- package/package.json +9 -4
- package/site-theme/data/banner-kinds.yaml +2 -0
- package/sohl/actors.mjs +4 -3
- package/types/engine/content-html.d.mts +2 -1
- package/types/engine/culture-reach.d.mts +3 -0
- package/types/engine/declared-sections.d.mts +30 -0
- package/types/engine/derived-sections.d.mts +5 -1
- package/types/engine/holdings.d.mts +34 -2
- package/types/engine/index-records.d.mts +2 -1
- package/types/engine/language-terms.d.mts +5 -1
- package/types/engine/markdown-blocks.d.mts +5 -1
- package/types/engine/office-holders.d.mts +33 -0
- package/types/engine/page-breaks.d.mts +8 -0
- package/types/engine/place-kinds.d.mts +18 -0
- package/types/engine/settlement-tables.d.mts +25 -158
- package/types/engine/settlement-terms.d.mts +53 -0
- package/types/engine/sql-tables.d.mts +35 -3
- package/types/engine/standing-terms.d.mts +3 -2
- package/types/engine/standings.d.mts +14 -2
- package/types/engine/unique-items.d.mts +12 -0
- package/vendor/markdownlint.mjs +855 -569
|
@@ -90,7 +90,7 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
90
90
|
| Key | Shape | Required | Meaning |
|
|
91
91
|
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
92
92
|
| `data.affiliations.<Address>.rank` | the level on that body's own ladder, as a whole number — an ordinary member is `1`, and `0` is the rung for someone cast out | yes | The level on the body's own `governance.ranks` ladder. |
|
|
93
|
-
| `data.affiliations.<Address>.office` | a post from that body's `governance.offices
|
|
93
|
+
| `data.affiliations.<Address>.office` | a post from that body's `governance.offices`, or a list of them | no | A post the body names in its `governance.offices`, where one is held, or a list of the posts one being holds in that body. |
|
|
94
94
|
| `data.affiliations.<Address>.societies` | a list of society names | no | The societies the membership is held in, by name. SoHL carries one, the first, as the affiliation item's `system.society`. |
|
|
95
95
|
|
|
96
96
|
**System mappings**
|
|
@@ -250,16 +250,17 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
250
250
|
|
|
251
251
|
**Subtypes:** None.
|
|
252
252
|
|
|
253
|
-
| Field | Shape | Meaning
|
|
254
|
-
| ----------------------- | ----------------------- |
|
|
255
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
256
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
257
|
-
| `data.weight` | number | What the thing weighs.
|
|
258
|
-
| `data.value` | number | What the thing is worth.
|
|
259
|
-
| `data.quality` | number | How well it is made.
|
|
260
|
-
| `data.durability` | number | How much wear it takes before it fails.
|
|
261
|
-
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`.
|
|
262
|
-
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`.
|
|
253
|
+
| Field | Shape | Meaning |
|
|
254
|
+
| ----------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
255
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
256
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
257
|
+
| `data.weight` | number | What the thing weighs. |
|
|
258
|
+
| `data.value` | number | What the thing is worth. |
|
|
259
|
+
| `data.quality` | number | How well it is made. |
|
|
260
|
+
| `data.durability` | number | How much wear it takes before it fails. |
|
|
261
|
+
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`. |
|
|
262
|
+
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`. |
|
|
263
|
+
| `data.unique` | `true` or `false` | `true` for a one-of-a-kind item, such as a named weapon; its note links the places and beings involved. Absent, the item is common. |
|
|
263
264
|
|
|
264
265
|
**System mappings**
|
|
265
266
|
|
|
@@ -294,19 +295,20 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
294
295
|
|
|
295
296
|
**Subtypes:** `mundane`, `exotic`, `elixir`.
|
|
296
297
|
|
|
297
|
-
| Field | Shape | Meaning
|
|
298
|
-
| ----------------------- | ----------------------- |
|
|
299
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
300
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
301
|
-
| `data.weight` | number | What the thing weighs.
|
|
302
|
-
| `data.value` | number | What the thing is worth.
|
|
303
|
-
| `data.quality` | number | How well it is made.
|
|
304
|
-
| `data.durability` | number | How much wear it takes before it fails.
|
|
305
|
-
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`.
|
|
306
|
-
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`.
|
|
307
|
-
| `data.
|
|
308
|
-
| `data.
|
|
309
|
-
| `data.
|
|
298
|
+
| Field | Shape | Meaning |
|
|
299
|
+
| ----------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
300
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
301
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
302
|
+
| `data.weight` | number | What the thing weighs. |
|
|
303
|
+
| `data.value` | number | What the thing is worth. |
|
|
304
|
+
| `data.quality` | number | How well it is made. |
|
|
305
|
+
| `data.durability` | number | How much wear it takes before it fails. |
|
|
306
|
+
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`. |
|
|
307
|
+
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`. |
|
|
308
|
+
| `data.unique` | `true` or `false` | `true` for a one-of-a-kind item, such as a named weapon; its note links the places and beings involved. Absent, the item is common. |
|
|
309
|
+
| `data.quantity` | number | How many of the thing there are; one when unstated. |
|
|
310
|
+
| `data.potency` | string | Potency — `na`, `mild`, `strong` or `great`. |
|
|
311
|
+
| `data.strength` | number | Strength; the higher, the stronger. |
|
|
310
312
|
|
|
311
313
|
**System mappings**
|
|
312
314
|
|
|
@@ -322,17 +324,18 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
322
324
|
|
|
323
325
|
**Subtypes:** None.
|
|
324
326
|
|
|
325
|
-
| Field | Shape | Meaning
|
|
326
|
-
| ----------------------- | ----------------------- |
|
|
327
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
328
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
329
|
-
| `data.weight` | number | What the thing weighs.
|
|
330
|
-
| `data.value` | number | What the thing is worth.
|
|
331
|
-
| `data.quality` | number | How well it is made.
|
|
332
|
-
| `data.durability` | number | How much wear it takes before it fails.
|
|
333
|
-
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`.
|
|
334
|
-
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`.
|
|
335
|
-
| `data.
|
|
327
|
+
| Field | Shape | Meaning |
|
|
328
|
+
| ----------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
329
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
330
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
331
|
+
| `data.weight` | number | What the thing weighs. |
|
|
332
|
+
| `data.value` | number | What the thing is worth. |
|
|
333
|
+
| `data.quality` | number | How well it is made. |
|
|
334
|
+
| `data.durability` | number | How much wear it takes before it fails. |
|
|
335
|
+
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`. |
|
|
336
|
+
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`. |
|
|
337
|
+
| `data.unique` | `true` or `false` | `true` for a one-of-a-kind item, such as a named weapon; its note links the places and beings involved. Absent, the item is common. |
|
|
338
|
+
| `data.capacity` | number | How much it holds. |
|
|
336
339
|
|
|
337
340
|
**System mappings**
|
|
338
341
|
|
|
@@ -350,17 +353,18 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
350
353
|
|
|
351
354
|
**Subtypes:** None.
|
|
352
355
|
|
|
353
|
-
| Field | Shape | Meaning
|
|
354
|
-
| ----------------------- | ----------------------- |
|
|
355
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
356
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
357
|
-
| `data.weight` | number | What the thing weighs.
|
|
358
|
-
| `data.value` | number | What the thing is worth.
|
|
359
|
-
| `data.quality` | number | How well it is made.
|
|
360
|
-
| `data.durability` | number | How much wear it takes before it fails.
|
|
361
|
-
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`.
|
|
362
|
-
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`.
|
|
363
|
-
| `data.
|
|
356
|
+
| Field | Shape | Meaning |
|
|
357
|
+
| ----------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
358
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
359
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
360
|
+
| `data.weight` | number | What the thing weighs. |
|
|
361
|
+
| `data.value` | number | What the thing is worth. |
|
|
362
|
+
| `data.quality` | number | How well it is made. |
|
|
363
|
+
| `data.durability` | number | How much wear it takes before it fails. |
|
|
364
|
+
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`. |
|
|
365
|
+
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`. |
|
|
366
|
+
| `data.unique` | `true` or `false` | `true` for a one-of-a-kind item, such as a named weapon; its note links the places and beings involved. Absent, the item is common. |
|
|
367
|
+
| `data.quantity` | number | How many of the thing there are; one when unstated. |
|
|
364
368
|
|
|
365
369
|
**System mappings**
|
|
366
370
|
|
|
@@ -425,17 +429,18 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
425
429
|
|
|
426
430
|
**Subtypes:** `none`, `arrow`, `bolt`, `bullet`, `dart`, `other`.
|
|
427
431
|
|
|
428
|
-
| Field | Shape | Meaning
|
|
429
|
-
| ----------------------- | ----------------------- |
|
|
430
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
431
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
432
|
-
| `data.weight` | number | What the thing weighs.
|
|
433
|
-
| `data.value` | number | What the thing is worth.
|
|
434
|
-
| `data.quality` | number | How well it is made.
|
|
435
|
-
| `data.durability` | number | How much wear it takes before it fails.
|
|
436
|
-
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`.
|
|
437
|
-
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`.
|
|
438
|
-
| `data.
|
|
432
|
+
| Field | Shape | Meaning |
|
|
433
|
+
| ----------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
434
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
435
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
436
|
+
| `data.weight` | number | What the thing weighs. |
|
|
437
|
+
| `data.value` | number | What the thing is worth. |
|
|
438
|
+
| `data.quality` | number | How well it is made. |
|
|
439
|
+
| `data.durability` | number | How much wear it takes before it fails. |
|
|
440
|
+
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`. |
|
|
441
|
+
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`. |
|
|
442
|
+
| `data.unique` | `true` or `false` | `true` for a one-of-a-kind item, such as a named weapon; its note links the places and beings involved. Absent, the item is common. |
|
|
443
|
+
| `data.quantity` | number | How many of the thing there are; one when unstated. |
|
|
439
444
|
|
|
440
445
|
**System mappings**
|
|
441
446
|
|
|
@@ -473,7 +478,7 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
473
478
|
| `data.tongues` | list of `{ tag, meaning, language? }` | The tags a register row's `tongue` may name, each with what it means. A language skill note only. |
|
|
474
479
|
| `data.register` | list of `{ name, tongue?, kind?, built?, gloss?, why? }` | Every name the setting gives in the language's reach, with its tongue and pieces; the notes carrying each name are derived. A language skill note only. |
|
|
475
480
|
| `data.retired` | list of `{ form, instead?, why }` | The forms the setting does not write, and why. A language skill note only. |
|
|
476
|
-
| `data.scope` | a map — `{ folders?, cultures?, lore?, parents?, addresses?,
|
|
481
|
+
| `data.scope` | a map — `{ folders?, cultures?, lore?, parents?, addresses?, types?, skip? }` | The notes the register covers. A language skill note only. |
|
|
477
482
|
| `data.sounds` | a map — `{ letters?, edges?, clusters?, stress?, finals?, syllables?, joining?, joins?, marks?, skeleton?, frames?, readPast?, mutations? }` | The letters the language writes and the rules its words keep. A language skill note only. |
|
|
478
483
|
| `data.soundChanges` | list of `{ name, from?, to?, takes?, steps }` | Named sets of ordered changes, each making one tongue's words from another's. A language skill note only. |
|
|
479
484
|
| `data.elements` | list of `{ form, variants?, position?, kind?, sense, examples?, word?, joining? }` | The elements the language's names are built from. A language skill note only. |
|
|
@@ -576,7 +581,6 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
576
581
|
| `data.scope.lore` | a list of lore Addresses | no | Every note whose `data.lore` names one of these notes. |
|
|
577
582
|
| `data.scope.parents` | a list of Addresses | no | Every note whose `data.parents` names one of these notes. |
|
|
578
583
|
| `data.scope.addresses` | a list of Addresses | no | These notes themselves. |
|
|
579
|
-
| `data.scope.paths` | a list of content paths | no | Every note whose file sits below one of these paths of the content tree. |
|
|
580
584
|
| `data.scope.types` | a list of note types | no | The note types the register covers; where stated, a note of another type is out of scope whatever else catches it. |
|
|
581
585
|
| `data.scope.skip` | a list of Addresses | no | Notes out of scope whatever else catches them. |
|
|
582
586
|
| `data.sounds.letters` | list of `{ letters, kind, like?, place?, ipa?, tongue? }` | no | The letters the language writes, and the sounds they stand for. |
|
|
@@ -632,7 +636,7 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
632
636
|
| `data.sounds.marks` | list of `{ mark, letters, kind, limit }` | no | The marks the language writes on its letters. |
|
|
633
637
|
| `data.sounds.marks[].mark` | a string, such as `acute` | yes | The mark's name. |
|
|
634
638
|
| `data.sounds.marks[].letters` | a list of letters | yes | The letters that carry it. |
|
|
635
|
-
| `data.sounds.marks[].kind` | one of stress, length, apart
|
|
639
|
+
| `data.sounds.marks[].kind` | one of stress, length, apart, quality | yes | What the mark says of its letter. |
|
|
636
640
|
| `data.sounds.marks[].limit` | one of one, any | yes | How many a word may carry: `one` at most, or `any`. |
|
|
637
641
|
| `data.sounds.skeleton` | list of `{ second, between? }` | no | The vowel set between a root's second and third consonants. |
|
|
638
642
|
| `data.sounds.skeleton[].second` | a list of sounds, or `any` | yes | The second consonants of a root the row holds for; `any` for every other. |
|
|
@@ -754,16 +758,17 @@ These fields are accepted by every note type. A field's value can still be irrel
|
|
|
754
758
|
|
|
755
759
|
**Subtypes:** None.
|
|
756
760
|
|
|
757
|
-
| Field | Shape | Meaning
|
|
758
|
-
| ----------------------- | ----------------------- |
|
|
759
|
-
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`.
|
|
760
|
-
| `data.templatePriority` | number | Template priority; unset means the note is not a template.
|
|
761
|
-
| `data.weight` | number | What the thing weighs.
|
|
762
|
-
| `data.value` | number | What the thing is worth.
|
|
763
|
-
| `data.quality` | number | How well it is made.
|
|
764
|
-
| `data.durability` | number | How much wear it takes before it fails.
|
|
765
|
-
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`.
|
|
766
|
-
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`.
|
|
761
|
+
| Field | Shape | Meaning |
|
|
762
|
+
| ----------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
763
|
+
| `data.icon` | an Address | The document's profile art — an `icon` address, resolved into `img`. |
|
|
764
|
+
| `data.templatePriority` | number | Template priority; unset means the note is not a template. |
|
|
765
|
+
| `data.weight` | number | What the thing weighs. |
|
|
766
|
+
| `data.value` | number | What the thing is worth. |
|
|
767
|
+
| `data.quality` | number | How well it is made. |
|
|
768
|
+
| `data.durability` | number | How much wear it takes before it fails. |
|
|
769
|
+
| `data.made` | an Address of one event | The event in which the thing was made — `lore-forging`, or one event of a note as `place-ironfells#raising`. |
|
|
770
|
+
| `data.lost` | an Address of one event | The event in which the thing was lost — `lore-flood`, or one event of a note as `place-ironfells#sack`. |
|
|
771
|
+
| `data.unique` | `true` or `false` | `true` for a one-of-a-kind item, such as a named weapon; its note links the places and beings involved. Absent, the item is common. |
|
|
767
772
|
|
|
768
773
|
**System mappings**
|
|
769
774
|
|
|
@@ -897,7 +902,7 @@ Lore records in-world knowledge. A `culture` describes a people; a `custom` desc
|
|
|
897
902
|
|
|
898
903
|
### place
|
|
899
904
|
|
|
900
|
-
**Subtypes:** `world`, `region`, `settlement`, `site`, `structure`, `feature`, `celestial`.
|
|
905
|
+
**Subtypes:** `world`, `region`, `district`, `settlement`, `site`, `structure`, `feature`, `route`, `celestial`.
|
|
901
906
|
|
|
902
907
|
| Field | Shape | Meaning |
|
|
903
908
|
| -------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -909,6 +914,7 @@ Lore records in-world knowledge. A `culture` describes a people; a `custom` desc
|
|
|
909
914
|
| `data.culture` | an Address | The people this place belongs to, as a culture lore note. |
|
|
910
915
|
| `data.population` | number | Approximate population, to two significant digits. |
|
|
911
916
|
| `data.government` | an Address or null | The governing affiliation Address; the default target type is affiliation. Explicit null means complete anarchy. A positive population with no government key produces an advisory. |
|
|
917
|
+
| `data.settlements` | { rows, tail } | A region's settlement rows and the sentence stating what they leave out; the table is generated from this declaration. |
|
|
912
918
|
| `data.market` | number | What trade the settlement supports, on a scale of six: 1 hamlet, 2 village, 3 town, 4 market town, 5 city, 6 great city. |
|
|
913
919
|
| `data.borders` | list of `{ to, bearing }` entries | Places sharing a frontier with this one — each the other's shortcode and where it lies from here. |
|
|
914
920
|
| `data.routes` | list of `{ to, bearing, mode, days, terrain?, leagues? }` entries | Journeys from this place's centre — where the destination lies, how it is travelled, and about how many days it takes. |
|
|
@@ -929,54 +935,62 @@ Lore records in-world knowledge. A `culture` describes a people; a `custom` desc
|
|
|
929
935
|
|
|
930
936
|
**Inner keys** — a key a field's value does not declare is an error at its own line and column.
|
|
931
937
|
|
|
932
|
-
| Key | Shape | Required | Meaning
|
|
933
|
-
| ------------------------------------------ | ------------------------------------------------------------------------------------- | -------- |
|
|
934
|
-
| `data.events[].id` | an address segment | no | The event's name within its note — lowercase letters and digits.
|
|
935
|
-
| `data.events[].kind` | one `eventKind` value | no | What sort of thing happened.
|
|
936
|
-
| `data.events[].depth` | one `depth` value | no | How far the event's history reaches.
|
|
937
|
-
| `data.events[].when` | a date, or `"0.<day>"` | yes | When it happened, or the anchor and first instance of an event that recurs.
|
|
938
|
-
| `data.events[].until` | a date | no | When a continuous event ended, or where a recurring series stopped.
|
|
939
|
-
| `data.events[].recurs` | `{ every }` or `{ on }` | no | How further occurrences are found; absent for an event that happened once.
|
|
940
|
-
| `data.events[].recurs.every` | a whole number of years, 1 or more | no | A period counted on the canonical axis from `when`.
|
|
941
|
-
| `data.events[].recurs.on` | a list of dates, strictly increasing, each later than `when` | no | Recorded occurrences beyond the first, in place of a period.
|
|
942
|
-
| `data.events[].summary` | a string | yes | What happened, stated plainly.
|
|
943
|
-
| `data.events[].standing` | one `standing` value | no | What the world's evidence supports.
|
|
944
|
-
| `data.events[].names` | `{ name, by, gloss? }[]` | no | The event's names in the world, each with who uses it.
|
|
945
|
-
| `data.events[].names[].name` | a string | yes | One name the event goes by in the world.
|
|
946
|
-
| `data.events[].names[].by` | an Address naming an `affiliation`, `lore`, `place`, `being` or `skill` note | yes | Who uses that name — a people, a polity, a faith, a place, a tongue.
|
|
947
|
-
| `data.events[].names[].gloss` | a string | no | What the name means, or how it is used.
|
|
948
|
-
| `data.events[].where` | `{ locus?, reach? }` | no | Where it happened, and where it was felt.
|
|
949
|
-
| `data.events[].where.locus` | a list of Addresses, each defaulting to `place` | no | Where the event physically happened; each resolves to a place.
|
|
950
|
-
| `data.events[].where.reach` | `{ place, how, knowledge, attributedTo? }[]` | no | Where the event was felt, and whether each place knows why.
|
|
951
|
-
| `data.events[].where.reach[].place` | an Address, defaulting to `place` | yes | A place where the event was felt.
|
|
952
|
-
| `data.events[].where.reach[].how` | a string | yes | One clause: a consequence someone in that place could notice.
|
|
953
|
-
| `data.events[].where.reach[].knowledge` | one `knowledge` value | yes | Whether that place connects what it felt to this event.
|
|
954
|
-
| `data.events[].where.reach[].attributedTo` | an Address, defaulting to `lore`, naming an event or a `lore` note | no | Only beside `knowledge: misattributed` — the cause that place names instead.
|
|
955
|
-
| `data.events[].who` | `{ ref, role }[]` | no | Who took part, and as what.
|
|
956
|
-
| `data.events[].who[].ref` | an Address naming a `being`, `affiliation` or `lore` note | yes | A participant — a being, a people, an affiliation.
|
|
957
|
-
| `data.events[].who[].role` | one `role` value | yes | What the participant was to the event.
|
|
958
|
-
| `data.events[].follows` | `{ event, how, note? }[]` | no | The earlier events this one follows from.
|
|
959
|
-
| `data.events[].follows[].event` | an Address, defaulting to `lore`, anchored to an `event` where its note holds several | yes | The earlier event; it resolves to exactly one event.
|
|
960
|
-
| `data.events[].follows[].how` | one `followsHow` value | yes | How this event follows from it.
|
|
961
|
-
| `data.events[].follows[].note` | a string | no | One clause saying what connects the two.
|
|
962
|
-
| `data.events[].accounts` | `{ by, says, agrees, withholds? }[]` | no | What each people, polity, faith or place says about it.
|
|
963
|
-
| `data.events[].accounts[].by` | an Address naming an `affiliation`, `lore`, `place` or `being` note | yes | Who holds the account.
|
|
964
|
-
| `data.events[].accounts[].says` | a string | yes | What they say happened, in their terms.
|
|
965
|
-
| `data.events[].accounts[].agrees` | one `agrees` value | yes | How far their account agrees with `summary`.
|
|
966
|
-
| `data.events[].accounts[].withholds` | a string | no | What they decline to say.
|
|
967
|
-
| `data.events[].unresolved` | a list of strings | no | What the world itself has not settled.
|
|
968
|
-
| `data.events[].sources` | a list of Addresses | no | The notes that state or support the event; each resolves.
|
|
969
|
-
| `data.events[].stated` | `{ calendar, text }` | no | The date as one tradition writes it in its own reckoning.
|
|
970
|
-
| `data.events[].stated.calendar` | an Address, or a lore shortcode | yes | The calendar that tradition reckons in — a `lore` note with `subType: calendar`.
|
|
971
|
-
| `data.events[].stated.text` | a string | yes | The date as that tradition writes it.
|
|
972
|
-
| `data.
|
|
973
|
-
| `data.
|
|
974
|
-
| `data.
|
|
975
|
-
| `data.
|
|
976
|
-
| `data.
|
|
977
|
-
| `data.
|
|
978
|
-
| `data.
|
|
979
|
-
| `data.
|
|
938
|
+
| Key | Shape | Required | Meaning |
|
|
939
|
+
| ------------------------------------------ | ------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------- |
|
|
940
|
+
| `data.events[].id` | an address segment | no | The event's name within its note — lowercase letters and digits. |
|
|
941
|
+
| `data.events[].kind` | one `eventKind` value | no | What sort of thing happened. |
|
|
942
|
+
| `data.events[].depth` | one `depth` value | no | How far the event's history reaches. |
|
|
943
|
+
| `data.events[].when` | a date, or `"0.<day>"` | yes | When it happened, or the anchor and first instance of an event that recurs. |
|
|
944
|
+
| `data.events[].until` | a date | no | When a continuous event ended, or where a recurring series stopped. |
|
|
945
|
+
| `data.events[].recurs` | `{ every }` or `{ on }` | no | How further occurrences are found; absent for an event that happened once. |
|
|
946
|
+
| `data.events[].recurs.every` | a whole number of years, 1 or more | no | A period counted on the canonical axis from `when`. |
|
|
947
|
+
| `data.events[].recurs.on` | a list of dates, strictly increasing, each later than `when` | no | Recorded occurrences beyond the first, in place of a period. |
|
|
948
|
+
| `data.events[].summary` | a string | yes | What happened, stated plainly. |
|
|
949
|
+
| `data.events[].standing` | one `standing` value | no | What the world's evidence supports. |
|
|
950
|
+
| `data.events[].names` | `{ name, by, gloss? }[]` | no | The event's names in the world, each with who uses it. |
|
|
951
|
+
| `data.events[].names[].name` | a string | yes | One name the event goes by in the world. |
|
|
952
|
+
| `data.events[].names[].by` | an Address naming an `affiliation`, `lore`, `place`, `being` or `skill` note | yes | Who uses that name — a people, a polity, a faith, a place, a tongue. |
|
|
953
|
+
| `data.events[].names[].gloss` | a string | no | What the name means, or how it is used. |
|
|
954
|
+
| `data.events[].where` | `{ locus?, reach? }` | no | Where it happened, and where it was felt. |
|
|
955
|
+
| `data.events[].where.locus` | a list of Addresses, each defaulting to `place` | no | Where the event physically happened; each resolves to a place. |
|
|
956
|
+
| `data.events[].where.reach` | `{ place, how, knowledge, attributedTo? }[]` | no | Where the event was felt, and whether each place knows why. |
|
|
957
|
+
| `data.events[].where.reach[].place` | an Address, defaulting to `place` | yes | A place where the event was felt. |
|
|
958
|
+
| `data.events[].where.reach[].how` | a string | yes | One clause: a consequence someone in that place could notice. |
|
|
959
|
+
| `data.events[].where.reach[].knowledge` | one `knowledge` value | yes | Whether that place connects what it felt to this event. |
|
|
960
|
+
| `data.events[].where.reach[].attributedTo` | an Address, defaulting to `lore`, naming an event or a `lore` note | no | Only beside `knowledge: misattributed` — the cause that place names instead. |
|
|
961
|
+
| `data.events[].who` | `{ ref, role }[]` | no | Who took part, and as what. |
|
|
962
|
+
| `data.events[].who[].ref` | an Address naming a `being`, `affiliation` or `lore` note | yes | A participant — a being, a people, an affiliation. |
|
|
963
|
+
| `data.events[].who[].role` | one `role` value | yes | What the participant was to the event. |
|
|
964
|
+
| `data.events[].follows` | `{ event, how, note? }[]` | no | The earlier events this one follows from. |
|
|
965
|
+
| `data.events[].follows[].event` | an Address, defaulting to `lore`, anchored to an `event` where its note holds several | yes | The earlier event; it resolves to exactly one event. |
|
|
966
|
+
| `data.events[].follows[].how` | one `followsHow` value | yes | How this event follows from it. |
|
|
967
|
+
| `data.events[].follows[].note` | a string | no | One clause saying what connects the two. |
|
|
968
|
+
| `data.events[].accounts` | `{ by, says, agrees, withholds? }[]` | no | What each people, polity, faith or place says about it. |
|
|
969
|
+
| `data.events[].accounts[].by` | an Address naming an `affiliation`, `lore`, `place` or `being` note | yes | Who holds the account. |
|
|
970
|
+
| `data.events[].accounts[].says` | a string | yes | What they say happened, in their terms. |
|
|
971
|
+
| `data.events[].accounts[].agrees` | one `agrees` value | yes | How far their account agrees with `summary`. |
|
|
972
|
+
| `data.events[].accounts[].withholds` | a string | no | What they decline to say. |
|
|
973
|
+
| `data.events[].unresolved` | a list of strings | no | What the world itself has not settled. |
|
|
974
|
+
| `data.events[].sources` | a list of Addresses | no | The notes that state or support the event; each resolves. |
|
|
975
|
+
| `data.events[].stated` | `{ calendar, text }` | no | The date as one tradition writes it in its own reckoning. |
|
|
976
|
+
| `data.events[].stated.calendar` | an Address, or a lore shortcode | yes | The calendar that tradition reckons in — a `lore` note with `subType: calendar`. |
|
|
977
|
+
| `data.events[].stated.text` | a string | yes | The date as that tradition writes it. |
|
|
978
|
+
| `data.settlements.rows` | a list of settlement rows | yes | One row per settlement. |
|
|
979
|
+
| `data.settlements.rows[].place` | a place Address | no | The existing settlement note; exclusive with name. |
|
|
980
|
+
| `data.settlements.rows[].name` | plain text | no | A settlement without a note; exclusive with place. |
|
|
981
|
+
| `data.settlements.rows[].market` | a market class, 1 to 6 | yes | What trade the settlement supports. |
|
|
982
|
+
| `data.settlements.rows[].population` | a positive whole number | yes | How many people live here. |
|
|
983
|
+
| `data.settlements.rows[].heldBy` | an affiliation or being Address | no | What holds the settlement's land, where its culture holds land; what the holder is says how it is held. |
|
|
984
|
+
| `data.settlements.rows[].for` | plain text | no | Optional reason the settlement exists. |
|
|
985
|
+
| `data.settlements.tail` | a nonempty sentence | yes | What the table leaves out. |
|
|
986
|
+
| `data.borders[].to` | the other place — its shortcode, or its Address | yes | The other place, by Address; the type defaults to `place`. |
|
|
987
|
+
| `data.borders[].bearing` | one of N, NE, E, SE, S, SW, W, NW | yes | Where the other place lies from here. |
|
|
988
|
+
| `data.routes[].to` | the other place — its shortcode, or its Address | yes | The other place, by Address; the type defaults to `place`. |
|
|
989
|
+
| `data.routes[].bearing` | one of N, NE, E, SE, S, SW, W, NW | yes | Where the other place lies from here. |
|
|
990
|
+
| `data.routes[].mode` | one of land, boat, ship | yes | How the journey is travelled. |
|
|
991
|
+
| `data.routes[].days` | one of 1, 2, 3, 5, 10, 20, 30, 45, 60, 90, 180, 360 | yes | About how many days the journey takes, under normal conditions. |
|
|
992
|
+
| `data.routes[].terrain` | a list of terrains in travel order | no | The terrains crossed, in travel order, each crossable by the mode. |
|
|
993
|
+
| `data.routes[].leagues` | a distance in leagues | no | The distance, in leagues. |
|
|
980
994
|
|
|
981
995
|
### scenario
|
|
982
996
|
|
|
@@ -989,7 +1003,6 @@ Lore records in-world knowledge. A `culture` describes a people; a `custom` desc
|
|
|
989
1003
|
| `data.cast` | list of Addresses | Beings who appear in it. |
|
|
990
1004
|
| `data.factions` | list of Addresses | Affiliations with a stake in it. |
|
|
991
1005
|
| `data.follows` | list of Addresses | Scenarios that should be played before this one. |
|
|
992
|
-
| `data.status` | string | `draft`, `playtested` or `published`. |
|
|
993
1006
|
| `data.party.size` | string | `solo`, `small`, `standard`, `large` or `host`. |
|
|
994
1007
|
| `data.party.archetypes` | list of strings | Archetypes the scenario is written for. |
|
|
995
1008
|
|
|
@@ -1063,7 +1076,7 @@ Lore records in-world knowledge. A `culture` describes a people; a `custom` desc
|
|
|
1063
1076
|
| `data.sounds.marks` | list of `{ mark, letters, kind, limit }` | no | The marks the language writes on its letters. |
|
|
1064
1077
|
| `data.sounds.marks[].mark` | a string, such as `acute` | yes | The mark's name. |
|
|
1065
1078
|
| `data.sounds.marks[].letters` | a list of letters | yes | The letters that carry it. |
|
|
1066
|
-
| `data.sounds.marks[].kind` | one of stress, length, apart
|
|
1079
|
+
| `data.sounds.marks[].kind` | one of stress, length, apart, quality | yes | What the mark says of its letter. |
|
|
1067
1080
|
| `data.sounds.marks[].limit` | one of one, any | yes | How many a word may carry: `one` at most, or `any`. |
|
|
1068
1081
|
| `data.metres[].name` | string | yes | What a verse div's `scan=` names the metre by: lowercase letters, digits and `-`, unique in the package. |
|
|
1069
1082
|
| `data.metres[].beats` | a whole number above zero | yes | The beats of one line. |
|
|
@@ -218,6 +218,7 @@ something to show:
|
|
|
218
218
|
| Within | `within` | a place | the places whose `data.parents` names it, a paragraph to each kind of place |
|
|
219
219
|
| Governed by | `governedby` | a place | the affiliation its `data.government` names, with that affiliation's kind |
|
|
220
220
|
| Governed places | `governedplaces` | an affiliation | the places whose `data.government` names it, a paragraph to each kind of place |
|
|
221
|
+
| Office holders | `officeholders` | an affiliation | each office a living being holds, one line each, with its holders |
|
|
221
222
|
| Chronology | `chronology` | a place | the [event views](format-details.md#event-views) |
|
|
222
223
|
| Events | `events` | a being, an affiliation or a people | the event views |
|
|
223
224
|
| Accounts | `accounts` | an affiliation, a place or a people | the event views |
|
|
@@ -96,6 +96,7 @@ types:
|
|
|
96
96
|
- durability
|
|
97
97
|
- made
|
|
98
98
|
- lost
|
|
99
|
+
- unique
|
|
99
100
|
subTypes: []
|
|
100
101
|
armorlocation:
|
|
101
102
|
data:
|
|
@@ -114,6 +115,7 @@ types:
|
|
|
114
115
|
- durability
|
|
115
116
|
- made
|
|
116
117
|
- lost
|
|
118
|
+
- unique
|
|
117
119
|
- quantity
|
|
118
120
|
- potency
|
|
119
121
|
- strength
|
|
@@ -130,6 +132,7 @@ types:
|
|
|
130
132
|
- durability
|
|
131
133
|
- made
|
|
132
134
|
- lost
|
|
135
|
+
- unique
|
|
133
136
|
- capacity
|
|
134
137
|
subTypes: []
|
|
135
138
|
miscgear:
|
|
@@ -141,6 +144,7 @@ types:
|
|
|
141
144
|
- durability
|
|
142
145
|
- made
|
|
143
146
|
- lost
|
|
147
|
+
- unique
|
|
144
148
|
- quantity
|
|
145
149
|
subTypes: []
|
|
146
150
|
mystery:
|
|
@@ -189,6 +193,7 @@ types:
|
|
|
189
193
|
- durability
|
|
190
194
|
- made
|
|
191
195
|
- lost
|
|
196
|
+
- unique
|
|
192
197
|
- quantity
|
|
193
198
|
subTypes:
|
|
194
199
|
- none
|
|
@@ -268,6 +273,7 @@ types:
|
|
|
268
273
|
- durability
|
|
269
274
|
- made
|
|
270
275
|
- lost
|
|
276
|
+
- unique
|
|
271
277
|
subTypes: []
|
|
272
278
|
lore:
|
|
273
279
|
data:
|
|
@@ -323,6 +329,7 @@ types:
|
|
|
323
329
|
- culture
|
|
324
330
|
- population
|
|
325
331
|
- government
|
|
332
|
+
- settlements
|
|
326
333
|
- market
|
|
327
334
|
- borders
|
|
328
335
|
- routes
|
|
@@ -343,10 +350,12 @@ types:
|
|
|
343
350
|
subTypes:
|
|
344
351
|
- world
|
|
345
352
|
- region
|
|
353
|
+
- district
|
|
346
354
|
- settlement
|
|
347
355
|
- site
|
|
348
356
|
- structure
|
|
349
357
|
- feature
|
|
358
|
+
- route
|
|
350
359
|
- celestial
|
|
351
360
|
scenario:
|
|
352
361
|
data:
|
|
@@ -355,7 +364,6 @@ types:
|
|
|
355
364
|
- cast
|
|
356
365
|
- factions
|
|
357
366
|
- follows
|
|
358
|
-
- status
|
|
359
367
|
- party.size
|
|
360
368
|
- party.archetypes
|
|
361
369
|
subTypes:
|
|
@@ -740,12 +748,6 @@ vocabularies:
|
|
|
740
748
|
- "4"
|
|
741
749
|
- "5"
|
|
742
750
|
- "6"
|
|
743
|
-
holdingModel:
|
|
744
|
-
- held
|
|
745
|
-
- endowed
|
|
746
|
-
- registered
|
|
747
|
-
- kin
|
|
748
|
-
- polis
|
|
749
751
|
bearing:
|
|
750
752
|
- N
|
|
751
753
|
- NE
|
package/engine/content-html.mjs
CHANGED
|
@@ -64,7 +64,8 @@ import { positionInBody, splitFrontmatter } from "./diagnostics.mjs";
|
|
|
64
64
|
* markdown's own angle brackets out of it: an autolink is `<https://…>`, and
|
|
65
65
|
* `https` is followed by `:` rather than whitespace or `>`, so the pattern
|
|
66
66
|
* stops. A comparison written in prose — `a < b` — has no name after the
|
|
67
|
-
* bracket at all.
|
|
67
|
+
* bracket at all. A doubled `<<` opens a quotation, so its second bracket
|
|
68
|
+
* never starts an HTML tag.
|
|
68
69
|
*
|
|
69
70
|
* Attributes are consumed as "anything but a bracket", deliberately loosely: a
|
|
70
71
|
* finding names the tag, and a pattern that tried to parse attribute syntax
|
|
@@ -73,7 +74,7 @@ import { positionInBody, splitFrontmatter } from "./diagnostics.mjs";
|
|
|
73
74
|
*
|
|
74
75
|
* @type {RegExp}
|
|
75
76
|
*/
|
|
76
|
-
export const HTML_TAG =
|
|
77
|
+
export const HTML_TAG = /(?<!<)<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g;
|
|
77
78
|
|
|
78
79
|
/**
|
|
79
80
|
* What a note carrying raw HTML is told.
|