10 releases (stable)
2.0.0-alpha1 | Aug 13, 2022 |
---|---|
1.3.0 | Jul 24, 2021 |
1.1.0 | May 27, 2021 |
1.0.3 | Apr 19, 2021 |
0.1.0 | Apr 9, 2020 |
#219 in Text processing
5.5MB
5.5K
SLoC
bard
Markdown → songbooks.
bard is a songbook compiler that reads Markdown files and produces songbooks in PDF, HTML, and Hovorka.
bard reads files like this:
# Wild Mountain Thyme
## Irish & Scottish traditional
1. Oh the `G`summer `C`time `G`has come
And the `C`trees are sweetly `G`bloomin'
And the `C`wild `G`mountain `Em`thyme
Grows `C`around the `Am`bloomin' `C`heather
Will ye `G`go `C`lassie `G`go?
> And we'll `C`all go `G`together to pull `C`wild `G`mountain `Em`thyme
All `C`around the `Am`bloomin' `C`heather, will ye `G`go `C`lassie `G`go?
... and creates output like this:
Check out the Example PDF from the Example project.
Features
- bard is project-oriented: A single
bard.toml
file defines inputs, outputs and configuration options, similar to how many static site generators work. - Easy to use input format, you probably already understand it.
- Output formats:
- PDF via TeX
- HTML
- Hovorka XML
- JSON (for machine processing)
- Transposition and notation conversion
- Optionally with a secondary chord set
- Templating: Outputs are fully customizable with Handlebars templates.
Installation
- On Arch Linux: via AUR.
- On other Linux distros: A prebuilt binary for x86-64 is available from the Releases page (may not be binary-compatible with older distros).
- On Windows: Download prebuilt binary from the Releases page.
- On any OS with a Rust toolchain: Use
cargo install -f bard
.- Minimum supported Rust verion is 1.46 (released
2020-08-27
)
- Minimum supported Rust verion is 1.46 (released
Packages for more OSes are hopefully Coming Soon™.
Additionally, to generate PDFs a TeX engine is needed. Recommended options are:
- The
xelatex
compiler from TeX Live, available on most Linux OSes. - Tectonic, available on several UNIX OSes.
- MiKTeX for Windows.
A word of warning: bard's Windows support is not tested very frequently.
Usage
To start a new songbook project, create a new directory, navigate in it with a command line and type:
bard init
This will create a skeleton project with a bard.toml
file and a songs
subdirectory with one example Markdown song file.
To compile the project and generate output files type:
bard make
While editing the bard.toml
file or song source files, it would become annoying to have to type bard make
every time there's a change. For this reason there's another command:
bard watch
... which will make bard run continuously, watching for changes in sources files.
It will then re-compile the songbook every time there's a change. Use Ctrl
+ C
to stop it.
FAQ
Why is the default TeX template done the way it is?
The default layout is optimized for songbooks that are fairly portable (A5 format) and yet offer hopefully fairly good legibility at that size. They are meant to handle travel and outdoor situations as well as possible. This is why the font is fairly large, the chords in bold and color, and generally the page real estate tends to be used as much as possible.
Was this software developed with <3 ?
As a matter of fact, yes, this tool was made by less than three developers. Check out the Contributors page for details.
Dependencies
~11–17MB
~319K SLoC