Migratieplan: zondag-zangstukken naar bron + VSA-demo¶
Status: plan (juni 2026; paden bijgewerkt augustus 2026).
Einddoel: alle zondag-toon-<y>.md (y = 1…8) in VSA-demo werken, met
bronnen in orthodox-ronl/bron en ophalen via GitHub-checkout (geen
github.io voor assets).
Repo-rollen:
| Repo | Rol |
|---|---|
| bron | Canonieke .vsa / scans + zangstuk.yaml |
| VSA-demo | Samenstellingen (zondag-toon-*.md), sync, Hugo-site |
| VSA-tooling | vsa CLI; regressiefixtures; presentatie in VSA-demo |
Scope¶
Wel in bron (24 zangstukken)¶
| Zangstuk-id | Bronbestand (historisch uit demo) | Opmerking |
|---|---|---|
troparion-zondag-toon-<y> |
tropaar-zondag-toon-<y>.vsa |
y = 1…8 |
kondak-zondag-toon-<y> |
kondak-zondag-toon-<y>.vsa |
y = 1…8 |
troparion-melodie-toon-<y> |
tropaarmelodie-toon-<y>.jpg (+ evt. -<y>a.jpg) |
scan in sources/scan/ |
Extra scan-varianten (bestaan nu, niet allemaal in zondag-export gebruikt):
| Toon | Extra JPG | Gebruikt in zondag-toon-<y>.md |
|---|---|---|
| 2 | tropaarmelodie-toon-2a.jpg |
nee (alleen .jpg) |
| 4 | tropaarmelodie-toon-4a.jpg |
nee (alleen .jpg; 4a wél in repo als tweede source) |
| 5 | tropaarmelodie-toon-5.jpg |
ja (scale="67%") |
Coria: alleen tropaar-zondag-toon-3.coria.html → bij troparion-zondag-toon-3,
sibling naast .vsa (conventie export coria).
Niet in bron¶
- PDF’s (
Zondag - toon <y>.pdf) tropaar-toon-<y>.md,kondak-toon-<y>.md(losse Hugo-pagina’s)- Afgeleide
.svg/.mxl(build-time)
Blijft in VSA-demo (samenstelling / export)¶
content-source/praktijk/zondagen/zondag-toon-<y>.md(8 stuks)_index.md,export-demo.md(evalueren na migratie)- Sync-output naast die
.md(gitignored of alleen via CI)
Bron-layout per zangstuk (voorbeeld)¶
Troparion (VSA)¶
zangstukken/troparion-zondag-toon-3/
zangstuk.yaml
sources/vsa/groningen.vsa ← was tropaar-zondag-toon-3.vsa
sources/vsa/groningen.coria.html ← alleen toon 3
Kondak (VSA)¶
zangstukken/kondak-zondag-toon-3/
zangstuk.yaml
sources/vsa/groningen.vsa ← was kondak-zondag-toon-3.vsa
Troparion-melodie (scan)¶
zangstukken/troparion-melodie-toon-5/
zangstuk.yaml
sources/scan/koormap-5.jpg ← primary voor export toon 5
sources/scan/koormap-5a.jpg ← optional second source id
Naamgeving bronbestanden in repo: stabiel (groningen.vsa, koormap.jpg);
liturgische identiteit zit in zangstuk.yaml (id, tone, title).
Metadata¶
zangstuk.yaml (leidend in bron)¶
Minimaal per zangstuk:
id= mapnaamtitle,gelegenheidstype: zondag-cyclus,toon: <y>sources[]metid: groningen(ofkoormap-scan) +file:+copyright_status: vrijreference:/note:verwijzing koormap Groningen waar zinvol
VSA-frontmatter (in .vsa)¶
Behoud/aanvullen uit de demo (titels, tone, tempo, bron: koormap Groningen).
Overlap met yaml is oké; buiten bron wint yaml.
Integratie VSA-demo (ophalen via GitHub)¶
:::include ondersteunt lokale paden. Bronbestanden komen binnen via
build-time materialisatie (voorkeur fase 1), later optioneel
zangstuk-id-resolver.
flowchart LR
subgraph bronRepo [bron op GitHub]
ZK[zangstukken/24 mappen]
end
subgraph demoBuild [VSA-demo CI / lokaal]
Checkout[checkout bron @ ref]
Sync[sync-bron-zondagen]
CS[content-source/praktijk/zondagen]
BM[vsa build-markdown]
Hugo[Hugo]
end
ZK --> Checkout --> Sync --> CS --> BM --> Hugo
Fase B1 — Sync-script (minimale code)¶
Canonieke sync in VSA-demo: scripts/sync_bron_zondagen.py
(spiegel in VSA-demo / tooling-fixtures waar nog van toepassing).
- Input: pad naar bron-checkout (
--bron-root) - Output:
content-source/praktijk/zondagen/met vaste namen diezondag-toon-<y>.mdal gebruikt: tropaar-zondag-toon-<y>.vsakondak-zondag-toon-<y>.vsatropaarmelodie-toon-<y>.jpg/-5.jpg/ coria sibling- Mapping uit
zangstuk.yaml+ conventiesources/vsa/groningen.vsa
zondag-toon-<y>.md hoeft dan niet meteen nieuwe syntax; alleen .gitignore
op materialized copies of sync vóór elke build (scripts\build-hugo.cmd).
Fase B2 — CI¶
In VSA-demo Pages/validate-workflows / lokaal testen:
actions/checkoutVSA-demoactions/checkoutbron →vendor/bron(path)python scripts/sync_bron_zondagen.py --bron-root vendor/bronvsa validate+build-markdown+hugo
Pin bron op main of tag; later semver/ref parameter.
Fase B3 — Opschonen content-source¶
Verwijder uit git (niet meer dupliceren):
tropaar-zondag-toon-*.vsa,kondak-zondag-toon-*.vsatropaarmelodie-*.jpg,*.coria.html
Behoud alleen .md samenstellingen + sync-output (gitignored) of altijd sync in CI.
Fase C — Optioneel later¶
:::include svg "zangstuk:troparion-zondag-toon-3"zonder platte kopie- Org-brede compositie-yaml in
bron/composities/(toekomst) - Parochie-sjablonen (markdown,
:::include zoek=) — zie catalogus-samenstelling-zangstuk.md; vervangt niet per se yaml in de demo, wel het handmatige herhalen per toon
Uitvoeringsvolgorde¶
| Fase | Wat | Repo | Done when |
|---|---|---|---|
| 0 | Dit plan akkoord | bron | — |
| 1a | Pilot toon 3: 3 zangstuk-mappen + yaml | bron | vsa validate groen |
| 1b | Overige 21 zangstukken (batch 1–2,4–8) | bron | 24 mappen compleet |
| 2a | Sync-script + lokale test toon 3 | VSA-demo | zondag-toon-3.md build ok |
| 2b | Alle 8 zondag-toon-<y>.md + CI checkout bron |
VSA-demo | demo-site groen |
| 3 | Duplicaten uit content-source verwijderen | VSA-demo | alleen md + _index |
| 4 | validate-zangstukken.yml in bron |
bron | CI op push |
Acceptatie (Definition of Done)¶
- [ ] 24×
zangstukken/<id>/zangstuk.yaml+ bronbestanden inbron - [ ]
vsa validateop alle.vsain bron (lokaal + CI) - [ ] Sync vanuit bron-checkout; geen handmatige kopie van
.vsa/.jpgin VSA-demo git - [ ] 8 pagina’s
zondag-toon-<y>renderen: tropaar svg+coria, kondak svg+coria, melodie-jpg - [ ] Coria HTML werkt voor toon 3; overige tonen coria via MXL-fallback (zoals nu)
- [ ] PDF’s en losse tropaar/kondak-md niet in bron
Risico’s¶
| Risico | Mitigatie |
|---|---|
| Coria alleen toon 3 | Documenteer; MXL genereren in CI waar gewenst |
| Meerdere JPG per melodie-toon | Primary source in yaml; sync kiest juiste file per zondag-toon-<y>.md |
| Cross-repo Cursor-frictie | bron in multi-root workspace of aparte commits |
| Sync vs. resolver | Start sync; refactor naar zangstuk-id als include-syntax stabiel is |
Gerelateerd¶
- Repo-structuur
- Zangstuk-formaat
- Zangstuk toevoegen
- VSA-demo — content-source / sync
- VSA-tooling: uitgaveprofielen.md, gebruikseisen-dragers.md