- LilyPond sheet music engraving system
- Go programming language
- TailwindCSS CSS framework
- PageFind static full-text search
- HTML validate offline HTML validation
# Engrave pieces with LilyPond
yay -S ghostscript gsfonts fontforge t1utils texlive-{metapost,langcyrillic}
# Upload scores to Cloudflare R2 object store with rclone
yay -S rclone
# Style the website with TailwindCSS
bun install tailwindcss @tailwindcss/cli
# Index the website for searching with pagefind
yay -S pagefind
# Validate the website HTML locally with html-validate
bun install html-validate
bunx html-validate --formatter codeframe site/public/index.html \
site/public/piece/Largo-c3bd.html \
site/public/catalog/level/elementary-a/1.html
# Serve the website locally with Caddy
yay -S caddy
caddy run --config site/Caddyfile
# Deploy the website to Cloudflare Pages with wrangler
bun install wrangler
bunx wrangler pages deploy site/public --project-name bayanguru --branch main
Fish completions
go install github.com/volodymyrprokopyuk/bayanguru@latest
cp bayanguru.fish ~/.config/fish/completions/bayanguru.fish
Generate a piece ID
tr -dc a-z0-9 </dev/urandom | head -c 4
Initialize a piece and lyrics
bayanguru engrave pieceID -i
bayanguru engrave pieceID -i --lyr
Initialize a site
rm -rf site/public
bayanguru publish all --init