mixtape/readme.md

62 lines
1.6 KiB
Markdown
Raw Normal View History

2023-12-28 01:48:58 +01:00
## Requirements
2024-01-08 09:01:22 +01:00
- [`chordpro`](https://github.com/ChordPro/chordpro/)
2023-12-28 01:48:58 +01:00
- `ghostscript`
2024-02-06 14:18:25 +01:00
- `zola` (optional)
2023-12-28 01:48:58 +01:00
2024-06-01 11:52:42 +02:00
You can [install ChordPro][1] directly on your machine, or use Docker
with the official iamge `chordpro/chordpro:latest`. It can be seamlesly
integrated with a shell alias:
```
alias chordpro="docker run -ti --rm --env HOME=\$HOME --env USER=\$USER --workdir \$(pwd) --volume \$HOME:\$HOME chordpro/chordpro:latest chordpro"
```
This will not function with the included makefile, so you will have to
export this as a shell function (for example in `.bashrc`):
```
chordpro() {
docker run -ti --rm --env HOME=$HOME --env USER=$USER --workdir "$(pwd)" --volume "$HOME:$HOME" chordpro/chordpro:latest chordpro "$@"
}
export -f chordpro
```
[1]: https://www.chordpro.org/chordpro/chordpro-installation/
2023-12-28 01:48:58 +01:00
## Building
2024-01-08 09:01:22 +01:00
`make` defaults to `all` which builds individual PDF and HTML files for
all songs. It also builds one complete PDF songbook with all songs.
2023-12-28 01:48:58 +01:00
2024-01-08 09:01:22 +01:00
Available targets: `all`, `pdf`, `html`, `clean`
2023-12-28 01:48:58 +01:00
2024-01-08 09:01:22 +01:00
You can also build PDF for a specific page with:
```
chordpro --config=chordpro.json path/to/song.cho
```
or build HTML output with:
```
chordpro --config=chordpro.json -o path/to/song.html path/to/song.cho
```
2024-02-06 14:18:25 +01:00
### Static website output
Futhermore, the project is ready to be compiled into a static webpage using
[Zola](https://www.getzola.org/).
```
zola build
```
This is done by default during the deploy pipeline.
2024-05-30 09:11:15 +02:00
## Song management
The `manage` shell script lets you do basic song management and saves you some
manual labour. Simply run the script itself or invoke `help` to get a list of
all available commands.