@heroiclands/package-build 23.12.0 → 23.12.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @heroiclands/package-build
2
2
 
3
+ ## 23.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ A wikilink now introduces its note under whatever label reads naturally, such as `[[place-vedyara|Vedyara]]` for _Vedyara Region_, so lint no longer asks for the note's full name in prose. A `.name` span still introduces the full name first.
8
+
3
9
  ## 23.12.0
4
10
 
5
11
  ### Minor Changes
@@ -91,9 +91,12 @@ the attribute adds no book presentation.
91
91
 
92
92
  `package-build lint` warns when an indexed name or alias uses `.name`
93
93
  instead of a link, when the same name is marked or linked again, or when a
94
- short form appears before its full name. Only marked names and authored link
95
- labels count toward these rules. Introduce the full name before an alias such
96
- as `Arden`, then use plain text for later mentions. Full names and their
94
+ `.name` span or Markdown link uses a short form before its full name. Only
95
+ marked names and authored link labels count toward these rules. A wikilink
96
+ introduces its note under whatever label reads naturally, so
97
+ `[[place-arden|Arden]]` needs no earlier `Arden Vale`, and an article
98
+ mid-sentence stays lowercase. A `.name` span introduces the full name before
99
+ an alias such as `Arden`. Later mentions are plain text. Full names and their
97
100
  declared aliases count as the same name, including in links to different
98
101
  headings. Different labels do not become the same name just because they link
99
102
  to the same page.
@@ -1851,9 +1851,13 @@ infoboxes, code, comments and embeds are outside this check.
1851
1851
 
1852
1852
  A name is explicit: a `[Name]{.name}` bracket span or an authored link label.
1853
1853
  Use typed `.name` spans for unwritten subjects and ordinary wikilinks for
1854
- indexed subjects, including private ones. Introduce another subject with its
1855
- full canonical name at its first prose use; use plain text for the note's own
1856
- subject and for later mentions and aliases.
1854
+ indexed subjects, including private ones. Mark or link another subject at its
1855
+ first prose use, and use plain text for the note's own subject and for later
1856
+ mentions and aliases. A wikilink identifies its note, so its label is whatever
1857
+ reads naturally in the sentence: `[[place-vedyara|Vedyara]]` for a note whose
1858
+ full name is _Vedyara Region_, and a lowercase article mid-sentence
1859
+ (`[[place-southwall|the Southern Wall]]`). A `.name` span has no note behind
1860
+ it, so it carries the full name.
1857
1861
  Plain prose is not searched for names. Wikilinks, ordinary Markdown links and
1858
1862
  reference links all supply names; a resolved empty wikilink label uses the
1859
1863
  note's full name. Images, code, footnote markers and bare autolinks without
@@ -1867,9 +1871,10 @@ authored labels supply none.
1867
1871
  anchors. Other labels use their whole text as their identity: different
1868
1872
  labels linking to one page are separate names, and a label is not
1869
1873
  automatically an alias of its destination.
1870
- 3. Introduce the full name before a short form or declared alias.
1871
- Possessives and regular plurals count as uses; other indexed forms can be
1872
- declared aliases.
1874
+ 3. A `.name` span or an ordinary Markdown link introduces the full name
1875
+ before a short form or declared alias. A resolved wikilink introduces its
1876
+ note under any label. Possessives and regular plurals count as uses; other
1877
+ indexed forms can be declared aliases.
1873
1878
 
1874
1879
  Bold is emphasis. A whole bold span exactly matching an indexed full name or
1875
1880
  alias receives one advisory to mark or link the name. It supplies no name
@@ -327,14 +327,16 @@ export function createFirstUseChecker({
327
327
  "repeated-name",
328
328
  `“${entry.full}” is linked or marked more than once`,
329
329
  );
330
- if (!entry.fullUse && !fullUsed.has(entry.key))
330
+ // A resolved wikilink identifies its note, so its label may be any natural form.
331
+ const introduces = entry.fullUse || entry.key === event.preferred?.key;
332
+ if (!introduces && !fullUsed.has(entry.key))
331
333
  add(
332
334
  event.start,
333
335
  "short-before-full",
334
336
  `“${event.label}” appears before the full name “${entry.full}”`,
335
337
  );
336
338
  used.add(entry.key);
337
- if (entry.fullUse) fullUsed.add(entry.key);
339
+ if (introduces) fullUsed.add(entry.key);
338
340
  }
339
341
  for (const span of bold) {
340
342
  if (typeof span.label !== "string") continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heroiclands/package-build",
3
- "version": "23.12.0",
3
+ "version": "23.12.1",
4
4
  "description": "Shared toolchain for building and shipping a HeroicLands Foundry VTT package — content compilation, manifest, localization, staging, bundle, release and deployment.",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "type": "module",