63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
My personal guitar chord-book written in [ChordPro](https://www.chordpro.org/).
 | 
						|
 | 
						|
## Requirements
 | 
						|
 | 
						|
- `docker`
 | 
						|
- `ghostscript` (optional for `songbook` make target)
 | 
						|
- `zola` (optional for web deployment)
 | 
						|
 | 
						|
The makefile uses Docker with the official iamge `chordpro/chordpro:latest`.
 | 
						|
It can be seamlesly integrated with a shell alias in case you want to use
 | 
						|
ChordPro directly in your shell outside of make:
 | 
						|
 | 
						|
```
 | 
						|
alias chordpro="docker run -ti --rm --env HOME=\$HOME --env USER=\$USER --workdir \$(pwd) --volume \$HOME:\$HOME chordpro/chordpro:latest chordpro"
 | 
						|
```
 | 
						|
 | 
						|
## Building
 | 
						|
 | 
						|
`make` defaults to `pdf` which builds individual PDF files for all songs.
 | 
						|
 | 
						|
Target | Description
 | 
						|
-|-
 | 
						|
`all` | `pdf`, `html`, `songbook`
 | 
						|
`pdf` | Build individual PDF files
 | 
						|
`html` | Build individual HTML files
 | 
						|
`songbook` | Build one complete PDF songbook with all songs
 | 
						|
`clean` | Remove all generated files
 | 
						|
 | 
						|
The makefile is ready for parallel building:
 | 
						|
 | 
						|
```
 | 
						|
make -j$(nproc)
 | 
						|
```
 | 
						|
 | 
						|
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
 | 
						|
```
 | 
						|
 | 
						|
### 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.
 | 
						|
 | 
						|
## 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.
 |