SVG exporteren¶
vsa svg, vsa process
en vsa build-markdown renderen VSA-notatie naar
SVG — een schaalbare vectorafbeelding die je inline toont naast gewone
tekst, op scherm of afdruk. Dit is de meest gebruikte workflow: geen
externe player nodig, werkt zonder JavaScript, en schaalt scherp op elk
scherm.
Voor afspelen/oefenen gebruik je in plaats daarvan
MusicXML/.mxl.
Wanneer gebruik je SVG?¶
| Situatie | Gebruik SVG? |
|---|---|
| Notatie tonen naast liturgische tekst (web of print) | Ja |
| Consistente weergave op elk apparaat | Ja |
Afdrukbaar boek/deel (A4, @media print) |
Ja |
| Audio afspelen of oefenen | Nee — gebruik vsa musicxml |
| Bewerken in MuseScore | Nee — gebruik vsa musicxml met profiel engraving |
Drie manieren om SVG te genereren¶
| Commando | Wanneer |
|---|---|
vsa svg |
Eén los .vsa-bestand snel als afbeelding bekijken. |
vsa process |
SVG's uit VSA-blokken in Markdown, zonder de Markdown te herschrijven. |
vsa build-markdown |
Hugo-publicatie: Markdown en SVG-assets in één stap (inline rendering). |
Voor een losse controle tijdens het schrijven is
vsa svg het snelst. Voor een echte publicatie
(Hugo-site) gebruik je vsa build-markdown,
dat de ::: vsa-notatie … :::-blokken in je Markdown automatisch vervangt door een
verwijzing naar de gegenereerde SVG (zie
"Inline rendering via build-markdown"
hieronder).
Snel starten¶
Eén geldige frase bekijken (examples\docs-walkthroughs\svg-phrase-kort.vsa):
[:] {/Hei_}{/lig_} is de Heer. [//:]
cd /d C:\Git\orthodox-ronl\VSA-tooling
vsa svg examples\docs-walkthroughs\svg-phrase-kort.vsa generated\vsa\svg-phrase-kort.svg
SVG geschreven naar: generated\vsa\svg-phrase-kort.svg
Langere frase + regelbreedte¶
Zelfde start, langere tekst
(examples\docs-walkthroughs\svg-phrase-lang.vsa), met smallere
--max-line-width zodat de renderer afbreekt:
vsa svg examples\docs-walkthroughs\svg-phrase-lang.vsa generated\vsa\svg-phrase-lang.svg --max-line-width 400
SVG's uit een map met Markdown, zonder Hugo-Markdown te genereren
(levert o.a. toon-1-block-1.svg en toon-2-block-1.svg):
vsa process examples\site-demo generated\vsa
Volledige Hugo-publicatie (Markdown + SVG-assets):
vsa build-markdown examples\consumer-minimal\content-source generated\content generated\static\vsa
Zie de man-pagina's voor de volledige argumentenlijst, opties en
foutgevallen: cli/svg.md,
cli/process.md,
cli/build-markdown.md.
Preview-SVG's in deze docs regenereren (na wijziging van de bron-.vsa):
python scripts\sync-docs-walkthrough-svgs.py
Inline rendering via build-markdown¶
vsa build-markdown vervangt in de gegenereerde Markdown elk VSA-blok door
een verwijzing naar de gegenereerde SVG. Bron-Markdown:
::: vsa-notatie
[:] {/Hei_}{/lig_} is de Heer. [:]
:::
wordt, met --output-mode img (default), een gewone <img>-tag:
<img class="vsa-notation" src="/vsa/smoke-block-1.svg" alt="VSA notatie">
of, met --output-mode shortcode, een Hugo-shortcode:
{{< vsa src="/vsa/smoke-block-1.svg" >}}
Kies shortcode als je in de consumer-site meer controle wilt over hoe de
SVG wordt ingebed (bijv. lazy-loading, wrapper-<div>, of print-specifieke
opmaak via layouts\shortcodes\vsa.html); kies img als je geen
aangepaste Hugo-shortcode wilt onderhouden.
Bestandspad versus URL-pad: assets_dir en --assets-url-prefix¶
Dit onderscheid is de meest voorkomende bron van verwarring bij
build-markdown:
| Soort | Argument/optie | Voorbeeldwaarde | Betekenis |
|---|---|---|---|
| Bestandspad | assets_dir (positioneel) |
generated\static\vsa |
Waar de tool de SVG's op schijf schrijft. |
| URL-pad | --assets-url-prefix |
/vsa |
Wat er in de gegenereerde <img src="…">/shortcode terechtkomt. |
Deze twee zijn onafhankelijk: assets_dir bepaalt alleen waar bestanden
komen te staan, --assets-url-prefix bepaalt alleen de tekst die in de
Markdown/HTML verschijnt. Ze moeten wél op elkaar aansluiten zodra Hugo de
site publiceert:
assets_dir: generated\static\vsa
↓ (Hugo publiceert static\ als site-root)
publieke URL: https://mijn-site/vsa/smoke-block-1.svg
--assets-url-prefix: /vsa
Als --assets-url-prefix niet overeenkomt met waar Hugo assets_dir
publiceert (meestal de static\vsa-submap van de Hugo-site), tonen
afbeeldingen niet — de SVG-bestanden bestaan wel, maar de link in de HTML
wijst naar de verkeerde plek.
Default-waarden staan (net als max-line-width en output-mode) in
vsa.toml; zie config.md voor de voorrangsregel
(CLI-optie → vsa.toml → interne default).
Waar komen de gegenereerde bestanden terecht?¶
SVG's die je met vsa svg,
vsa process of
vsa build-markdown genereert,
zijn afgeleide bestanden uit de .vsa-bron en horen niet gecommit
te worden naast de bron. Gebruik
lokaal een map als generated\ (of tmp\) die in .gitignore staat:
mijn-repo/
content/ # of content-source/ — VSA-bron (wél in git)
voorbeeld.md
generated/ # SVG- en Markdown-output (niet in git)
static\vsa\voorbeeld-block-1.svg
content\voorbeeld.md
In een Hugo-consumer-site komt de assets_dir overeen met de static\vsa-map
van die site (zie consumer-site.md en
reuse-vsa-tooling.md voor het volledige
build-in-CI-voorbeeld). In de bron-repository zelf worden geen afgeleide
SVG's opgeslagen — daar staat alleen de .vsa-bron (zie
repo-structuur
en het derived/-concept daar voor build-output dat nooit in git komt).
Diagnose bij problemen¶
| Symptoom | Controle |
|---|---|
| Commando faalt met validatiefout | Draai vsa validate op de invoer voor de exacte foutlocatie. |
| SVG ziet er raar uit | Controleer --max-line-width; bewaar het voorbeeld eventueel als regressiecase. |
| Afbeelding niet zichtbaar in Hugo | Controleer of --assets-url-prefix aansluit op waar Hugo assets_dir publiceert (zie boven). |
| Shortcode zichtbaar als tekst | Controleer of layouts\shortcodes\vsa.html bestaat in de consumer-site. |
| Oude SVG's blijven zichtbaar | Verwijder de output-map (generated\…) en bouw opnieuw. |
Zie ook¶
- Man-pagina's:
vsa svg,vsa process,vsa build-markdown - CLI-overzicht: CLI-referentie
- MusicXML-workflow (afspelen/oefenen, alternatief voor SVG): musicxml-export.md
- vsa.toml-defaults en voorrang: config.md
- Consumer-site-structuur: consumer-site.md
- Integratie in andere repo's/CI: reuse-vsa-tooling.md
- Bron-contracten (normatief): conversie-vsa-svg, exporttype-svg (exporttype
svg)