Das Songbook
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxmehl 2b2ac7eabc
fix broken page break
8 months ago
scripts improve md generation, enable custom category characters 8 months ago
src fix broken page break 8 months ago
templates add song pdf for songbook.md 8 months ago
.gitignore create basic index of songs 8 months ago
Dockerfile add simple Dockerfile with all dependencies included 8 months ago
Makefile build markdown index and package as tgz 8 months ago
README.md build markdown index and package as tgz 8 months ago
requirements.txt create basic index of songs 8 months ago


The Songbook

This is the repository of the songbook that is continuously extended by some scouts. Here are all songs, the accompanying documents and the templates for extensions.

Technical details

Since 2021, the songbook cosists of a number of single ODT files, each per song plus the cover/intro and chords. This way, incremental updates are much easier to make.

Via Makefile, all .odt files are being compiled to individual PDF files, an index is automatically generated, and then all files are being bundled together in one PDF document in build/.

Adding new songs

1. Fill in song template

Open the template templates/Songtemplate.ott and fill in all fields. Check list:

  • Ideally, the song fits on one page to keep the songbook compact.
  • The font size and family should not be altered.
  • The chords should be written as Am (minor) or A (major). Do not use a for minor chords.
  • The chords should be placed with using spaces directly above the syllable where the chord change takes place.
  • In long and complex songs, the verses should also be marked with chords. Often, there will not be enough space to add them above the text, but you can also write them after the text line in square brackets, e.g. ...needed proof [G Em7] in src/Songs/D29_Hallelujah.odt.
  • Verse numbers and headlines like Refrain should be bold.
  • The box at the bottom can be used for further info about the song, e.g. for an interpretation or explanation of the song's history. If the box is not being used, please remove the top border of the box.

When you're done, save the file in /src/Songs with the scheme X99_Song_name.odt.

2. Compile the songbook

With make

With the Makefile, all necessary steps are taken to generate the full or censored version of the songbook, including an index. Run make to get a list of possible commands.

It is intended to be run on a Linux-based system.

  1. Install all dependencies: libreoffice, make, poppler-utils (pdfunite), python3 (with pip and venv) and the Courier New font.
  2. Run python3 -m venv venv and . venv/bin/activate to activate the virtual environment
  3. Run pip3 install -r requirements.txt to install the Python modules in your venv
  4. Run make build

With Docker

The Dockerfile should install all required dependencies. All you need is docker to be installed.

  1. Run docker run --rm -v "$pwd":/data mxmehl/songbook. This will pull the precompiled image, mount your current directory in /data of the container, and build the songbook.


If there have been major changes, mostly by adding new songs, increment the version number in /src/Extra/Cover+Intro.odt. This then allows to create update packages.