Nashville Web Charts is a project that displays musical chord symbols and full chord charts accurately via HTML, with the aid of ASCIIMathML.js, an independent project. Song lyrics and chord changes can be stored, retrieved, and displayed using a wiki-like syntax.
Now we need to find a human-writable markup that, paired with a script, can print MathML to the browser and is database-storable.
* @ denotes a new line, either chords or lyrics.
* ~ starts a lyrics line. Use a colspan or just one column?
* % starts a chord line.
* & denotes a new measure.
* Table rows and columns are automatically printed out for us according to lines and measures.
* Since we're requiring that lines and measures be explicitly defined, the user is allowed freeform entry using tabs, spaces or line breaks as he sees fit.
* Retain parentheses and ^ for complex chords.
* Automatically wrap each measure in backticks.
* A ruleset that handles the font size increase --- e.g. defaults to < big >< big >, and any measure containing / gets no size boost.
* Make provisions for row containing CHORUS and similar divisions or comments.
* Use a two-column scheme, lyrics on the left and chords on the right?
To that end, I'm posting proof-of-concept code here, written in Perl. Bear in mind that this is alpha code, and things will change. If you come up with chord charts yourself, they will become unusable, and will require changes in order to work with later code.
In order for charts to be displayed correctly, you must use ASCIIMathML.js. Please note that I am not distributing this software, as I did not write it. You can obtain ASCIIMathML.js from the author directly.