diff --git a/CHANGELOG.md b/CHANGELOG.md index 1075e10..70ed11d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,25 +1,25 @@ -# Changelog — hbm-rpg-v3-lore +# Changelog - hbm-rpg-v3-lore -All notable changes to the **HbM RPG v3 — Lore** Foundry VTT module. +All notable changes to the **HbM RPG v3 - Lore** Foundry VTT module. -## [1.1.0] — 2026-04-30 +## [1.1.0] - 2026-04-30 Version bump to track the companion system release. No content changes. -## [1.0.0] — 2026-04-29 +## [1.0.0] - 2026-04-29 First production release. ### Added - 7 `JournalEntry` compendia generated from `_books/*.md` (36 entries total): - - `core-rules-lore` — Podręcznik Gry (5) - - `magic-book-lore` — Księga Magii (7) - - `bestiary-lore` — Bestiariusz (1) - - `blood-magic-history` — Arcanum Sanguinis (4) - - `crimson-cult` — Chwała Szkarłatnemu Kultowi (5) - - `abyss` — Klątwa Otchłani (5) - - `economy` — Złoto, Stal i Magia (9) + - `core-rules-lore` - Podręcznik Gry (5) + - `magic-book-lore` - Księga Magii (7) + - `bestiary-lore` - Bestiariusz (1) + - `blood-magic-history` - Arcanum Sanguinis (4) + - `crimson-cult` - Chwała Szkarłatnemu Kultowi (5) + - `abyss` - Klątwa Otchłani (5) + - `economy` - Złoto, Stal i Magia (9) - Build pipeline: `scripts/parsers/journal-parser.ts` walks `Rozdział [IVX]+ [:.\-] Title`, deduplicates TOC vs. body, splits chapters by `____` separators into pages, converts markdown → HTML @@ -33,7 +33,7 @@ First production release. ### Deferred - Przewodnik Ludzkości po Magicznym Świecie packs (`world-overview`, `deities`, - `universe`, `sol3-society`, `afterlife`, `documents`) — book not yet in + `universe`, `sol3-society`, `afterlife`, `documents`) - book not yet in `_books/`. Will land in v1.1.0. - Automatic UUID cross-link injection (parser emits `lore-link` placeholders ready for a follow-up rewrite pass). diff --git a/README.md b/README.md index 4efc9c2..c65c0c6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# HbM RPG v3 — Lore (Foundry VTT module) +# HbM RPG v3 - Lore (Foundry VTT module) Companion lore module for the [HbM RPG v3 system](https://github.com/iwo-strzebonski/hbm-foundry-system). Ships JournalEntry compendia for setting, history, and narrative chapters from the official books. diff --git a/lang/en.json b/lang/en.json index 0cbbb95..31f1365 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1,5 +1,7 @@ { "HBM_LORE": { - "module": { "name": "Homebrew Magic: RPG v3 — Lore" } + "module": { + "name": "Homebrew Magic: RPG v3 - Lore" + } } -} +} \ No newline at end of file diff --git a/lang/pl.json b/lang/pl.json index 0cbbb95..31f1365 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -1,5 +1,7 @@ { "HBM_LORE": { - "module": { "name": "Homebrew Magic: RPG v3 — Lore" } + "module": { + "name": "Homebrew Magic: RPG v3 - Lore" + } } -} +} \ No newline at end of file diff --git a/module.json b/module.json index 52ea2ff..8628c56 100644 --- a/module.json +++ b/module.json @@ -1,10 +1,10 @@ { "id": "hbm-rpg-v3-lore", - "title": "Homebrew Magic: RPG v3 — Lore", + "title": "Homebrew Magic: RPG v3 - Lore", "description": "Companion lore module for the HbM RPG v3 system. Provides journal entries for setting, deities, history, and narrative chapters from the official books.", - "version": "1.3.4", + "version": "1.3.6", "manifest": "https://vtt-content.octoturge.com/packages/module/hbm-rpg-v3-lore.json", - "download": "https://vtt-content.octoturge.com/packages/module/hbm-rpg-v3-lore-v1.3.4.zip", + "download": "https://vtt-content.octoturge.com/packages/module/hbm-rpg-v3-lore-v1.3.6.zip", "compatibility": { "minimum": "13", "verified": "14" @@ -73,7 +73,7 @@ }, { "name": "blood-magic-history", - "label": "Magia Krwi — Historia", + "label": "Magia Krwi - Historia", "path": "packs/blood-magic-history", "type": "JournalEntry", "ownership": { @@ -105,7 +105,7 @@ }, { "name": "magic-book-lore", - "label": "Księga Magii — Wprowadzenia", + "label": "Księga Magii - Wprowadzenia", "path": "packs/magic-book-lore", "type": "JournalEntry", "ownership": { @@ -121,7 +121,7 @@ }, { "name": "core-rules-lore", - "label": "Podręcznik Gry — Wprowadzenia", + "label": "Podręcznik Gry - Wprowadzenia", "path": "packs/core-rules-lore", "type": "JournalEntry", "ownership": { @@ -137,7 +137,7 @@ }, { "name": "bestiary-lore", - "label": "Bestiariusz — Lore", + "label": "Bestiariusz - Lore", "path": "packs/bestiary-lore", "type": "JournalEntry", "ownership": { @@ -320,7 +320,7 @@ ], "packFolders": [ { - "name": "Lore — HbM RPG v3", + "name": "Lore - HbM RPG v3", "sorting": "a", "packs": [ "core-rules-lore", @@ -334,7 +334,7 @@ ] }, { - "name": "Świat — HbM RPG v3", + "name": "Świat - HbM RPG v3", "sorting": "a", "packs": [ "disciplines-lore", diff --git a/package.json b/package.json index 36e678b..217c235 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hbm-rpg-v3-lore", - "version": "1.3.4", + "version": "1.3.6", "description": "Foundry VTT lore companion module for Homebrew Magic: RPG v3.", "private": true, "type": "module", diff --git a/scripts/build-journal-packs.ts b/scripts/build-journal-packs.ts index 73aa31c..8db1933 100644 --- a/scripts/build-journal-packs.ts +++ b/scripts/build-journal-packs.ts @@ -83,7 +83,7 @@ const PACK_CONFIGS: PackConfig[] = [ sources: [ // Pure lore narrative. { path: 'ObsidianNotes/lore/02. Otchłań i Magia.md' }, - // Rules intro (Wstęp only — mechanics chapters are skipped). + // Rules intro (Wstęp only - mechanics chapters are skipped). { path: 'ObsidianNotes/rules/02. Klątwa Otchłani.md', prefaceTitle: 'Wstęp' }, ], skip: /^(Rozdział II - Talenty|Rozdział III - Dary|Rozdział IV - Choroby|Rozdział V - Zaklęcia|Rozdział X - Artefakty)/i, @@ -238,7 +238,7 @@ for (const pack of byPack.keys()) { console.log(` ✓ compiled ${pack}`); } -console.log(`[lore] done — ${byPack.size} packs in packs/`); +console.log(`[lore] done - ${byPack.size} packs in packs/`); function toFoundryJournal(doc: JournalDoc, sort: number): Record { const fId = makeFoundryId(doc.id); diff --git a/scripts/lint-uuid-refs.ts b/scripts/lint-uuid-refs.ts index 8b207fe..ef76122 100644 --- a/scripts/lint-uuid-refs.ts +++ b/scripts/lint-uuid-refs.ts @@ -4,7 +4,7 @@ * `@UUID[Compendium.....]` patterns, and reports any reference * to a system pack we know about but a slug that does not exist. * - * Currently informational only — the journal parser does not yet emit + * Currently informational only - the journal parser does not yet emit * UUID cross-links automatically. This script provides the framework * for Phase 7.3/7.4 integration. */ @@ -45,7 +45,7 @@ function scanFile(file: string) { try { walk(packsSrcDir); } catch { - console.log('[lint-uuid] no packs-src/ — run build:packs first.'); + console.log('[lint-uuid] no packs-src/ - run build:packs first.'); process.exit(0); } diff --git a/scripts/parsers/journal-parser.ts b/scripts/parsers/journal-parser.ts index 2b563bf..847c0bc 100644 --- a/scripts/parsers/journal-parser.ts +++ b/scripts/parsers/journal-parser.ts @@ -7,7 +7,7 @@ * * A. Legacy Google-Docs export (`_books/`): * - No frontmatter. - * - TOC is a plain-text block that reuses the same `Rozdział X — Title` + * - TOC is a plain-text block that reuses the same `Rozdział X - Title` * headings. The parser deduplicates: the SECOND occurrence of each * heading is the real body. * @@ -33,7 +33,7 @@ export interface JournalDoc { pack: string; /** Source provenance for traceability. */ source: { book: string; chapter: string; line: number }; - /** Pages — each becomes a `JournalEntryPage`. */ + /** Pages - each becomes a `JournalEntryPage`. */ pages: JournalPage[]; } @@ -66,10 +66,10 @@ export interface JournalParseConfig { // Matches both plain-text (`Rozdział IV - Title`) and heading-prefixed // (`## Rozdział IV - Title`) chapter lines. Optional trailing page number. -const CHAPTER_RE = /^(?:#{1,6}\s+)?Rozdzia[łl]\s+([IVXLC]+)\s*[:.—\-–]\s*(.+?)(?:\s+\d+)?$/; +const CHAPTER_RE = /^(?:#{1,6}\s+)?Rozdzia[łl]\s+([IVXLC]+)\s*[:.\-–]\s*(.+?)(?:\s+\d+)?$/; const SEPARATOR = /^_{3,}$/; const FRONTMATTER_FENCE = /^---\s*$/; -// Obsidian TOC bullets: `- [[#Anchor|Label]]` — skip in body content too +// Obsidian TOC bullets: `- [[#Anchor|Label]]` - skip in body content too const OBSIDIAN_TOC_BULLET = /^[-*]\s+\[\[#/; /** Returns the first non-frontmatter line index (skips `--- ... ---` block). */ @@ -94,7 +94,7 @@ export function parseJournalBook(cfg: JournalParseConfig): JournalDoc[] { if (m) occurrences.push({ idx: i, roman: m[1], title: m[2].trim(), raw: lines[i].trim() }); } if (occurrences.length === 0) { - // No chapters found — if there's a prefaceTitle, still try to emit preface. + // No chapters found - if there's a prefaceTitle, still try to emit preface. if (cfg.prefaceTitle) { const pages = bodyToPages(lines); if (pages.length > 0) { @@ -117,7 +117,7 @@ export function parseJournalBook(cfg: JournalParseConfig): JournalDoc[] { } bodyChapters.push(occ); } - // If no duplicates were found (no plain-text TOC — typical of native files), + // If no duplicates were found (no plain-text TOC - typical of native files), // treat the entire list as body chapters. const chapters = bodyChapters.length > 0 ? bodyChapters : occurrences; @@ -158,7 +158,7 @@ export function parseJournalBook(cfg: JournalParseConfig): JournalDoc[] { const slug = slugify(`${ch.roman}-${ch.title}`); docs.push({ id: `${cfg.pack}-${slug}`, - name: `Rozdział ${ch.roman} — ${ch.title}`, + name: `Rozdział ${ch.roman} - ${ch.title}`, pack: cfg.pack, source: { book: cfg.sourceBook, chapter: ch.title, line: startIdx + ch.idx + 1 }, pages,