name: song2html description: "Read, write, parse, validate, transpose, and render song chord charts in the song2html format — a plain-text notation for chord charts with lyrics, Nashville numbers, and arrangements."
song2html — Chord Chart Plugin
Create, edit, and convert song chord charts using the song2html plain-text format.
Format Quick Reference
Song Title [Key]
author: Songwriter Name
tempo: 120
time: 4/4
verse: G C D G
chorus: C D Em G
Sections:
Verse 1:
^Lyrics with ^caret markers for ^chord ^placement
Chorus:
^Chorus ^lyrics ^with ^chords
Arrangements:
Full:
Verse 1
Chorus
Key Syntax Rules
- Title line: first line, optional key in brackets
[G],[F#m],[Bb] - Metadata: 2-space indented —
author:,key:,tempo:,time: - Chord definitions: 2-space indented —
section-name: chord1 chord2 ... - Sections header:
Sections:followed by named sections with 4-space indented lyrics - Caret
^: marks where the next chord is placed above lyrics - Nashville numbers:
1–7auto-transpose based on key - Slash chords:
C/G(bass),F\A(treble) - Repetition:
(G C) x2expands toG C G C - Transpose directive:
<transpose +2>shifts Nashville numbers - Arrangements: optional named orderings of sections
Converting Standard Chord Charts
To convert a standard chords-over-lyrics text file into song2html format, see the convert-chord-chart skill for a detailed step-by-step guide covering all common input formats (chords above lyrics, inline brackets, Nashville numbers, tab sites).
Quick conversion summary:
- Extract title + key → first line:
Song Title [Key] - Extract metadata → 2-space indented
author:,tempo:,time: - Extract chord progressions per section → 2-space indented
section: chord1 chord2 ... - Place
^carets at each syllable where a chord change occurs in the lyrics - Wrap in
Sections:with 2-space section headers and 4-space indented lyrics - Optionally add
Arrangements:for song structure
Tools
| Tool | Purpose |
|---|---|
song2html:parse_song |
Parse source text → metadata, HTML, arrangements, errata |
song2html:validate_song |
Check source text for errors without full rendering |
song2html:create_song |
Build source text from structured input (title, chords, sections) |
song2html:read_song_file |
Read a song file from disk and parse it |
song2html:write_song_file |
Write source text to a file (validates first) |
song2html:list_song_files |
Scan a directory for song files and summarize each |
song2html:transpose_song |
Transpose named chords by N half steps |
song2html:render_html |
Generate a standalone HTML page with embedded styles |