I've abandoned this version of this project and have switched to a Rust rewrite.
My own markdown based chordsheet converter. Written in Typescript and based on Markato.
Chordown files can be converted to plaintext, PDF (using (Xe)LaTeX), OnSong and (in the future) ChordPro.
Clone the repo using ssh
git clone git@github.com:Hasnep/chordown.gitor using HTTPS
git clone https://github.com/Hasnep/chordown.gitcd chordown/
npm install # Install dependencies
npm run build # Compile the Typescript
npm link # create a global symlinkAll Chordown files start with a YAML header with these properties, required properties in bold:
titlesubtitleartistkeytime- time signature
The body contains lines of text with sections, chords and lyrics.
- Section lines begin with a hash
# Chorus - Chord lines begin with a colon
: C G Am F - Lyric lines can start with any character except a hash
#or colon:, and chord symbols are positioned with carets/hats^This is ^an ^ex^ample
An example chordsheet file might look like this:
---
title: Example Song
artist: Hannes Smit
key: C
---
# Chorus:
: C G Am F
^Example ^chor^down ^song!
To convert the input chordown files to another format, a TOML config file is used to specify the arguments.
inputpath
outputjsonpath
txtpath
texpathcompile- the argument to run when compiling the.texfilestemplate- the path to the tex template file
onsongpath
If the config file is specified as a commandline argument, the arguments will override the global config file at ~/.config/chordown/config.toml.
An example config file might look like
[input]
path = "~/chords/input/**/*.cd"
[output.json]
path = "~/chords/output/chordown-json/"
[output.txt]
path = "~/chords/output/plaintext/"
[output.tex]
path = "~/chords/output/latex/"
compile = "xelatex"
[output.onsong]
path = "~/chords/output/onsong/"