The 4mm verse spacing was too subtle relative to the inter-line gaps
within chord-lyric sections, making section boundaries hard to
distinguish. Increasing to 6mm creates a clear visual break between
consecutive song sections (verses, choruses, bridges, repeats).
Also updated the example songbook.yaml to use the improved defaults
(chord_line_spacing: 1, verse_spacing: 6).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Improve PdfFontMetrics: use canonical path for cache key, validate
font file existence, use absolute paths for BaseFont.createFont
- Add font file path resolution in SongbookPipeline (relative to
project directory)
- Add font file existence validation in Validator.validateConfig
- Add end-to-end tests: custom font loading, umlaut rendering,
cache deduplication, missing file error
- Document custom font file usage in example songbook.yaml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Kotlin/JVM multi-module project for generating a scout songbook PDF
from ChordPro-format text files. Includes ChordPro parser, layout engine
with greedy spread packing for double-page songs, OpenPDF renderer,
CLI (Clikt), Compose Desktop GUI, and 5 sample songs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>