Assuming you have a fairly new version of R
and an IDE installed (e.g. RStudio), install bookdown
and songbookdown
. If you want to produce pdf later on, install tinytex
and run the function install_tinytex()
.
install.packages("bookdown") devtools::install_github("ratnanil/songbookdown") # to produce pdf outputs later on: install.packages("tinytex") tinytex::install_tinytex()
Next, create the files minimally needed for bookdown
project. This consists of the following files:
_bookdown.yaml
index.Rmd
rmd
)docs
)Additionally, songbookdown
requires the following files:
_songbookdown.yaml
songs_raw
)These files can be generated using the function create_template()
Add subfolders to songs_raw
. These subfolders will create different chapters in your book, e.g. "Classics" and "Christmas Songs".
Create a plain text file (e.g. mysong.txt) in one of the subfolders of songs_raw
and import the song into this file. You can add metadata in the yaml format, wrapped with tripple dashes (see below).
--- title: Here Comes the Sun artist: the Beatles year: 1969 --- Here comes the sun Doo doo doo doo Here comes the sun and I say It's alright ...
You can add any metadata in this form, and this data will be displayed in a tabular fashion at the end of the song. Some keywords have a special meaning:
title
is required and used to build the songs's header. title
, artist
, composer
, lyricist
and album
are used in the glossary. source
is recommened. Even if you can add any metadata, using the chordpro syntax is recommended. Here's a list of keywords that are used in the chord-pro syntax:
title
subtitle
artist
composer
lyricist
copyright
album
year
key
time
tempo
duration
capo
source
Add the rest of the song in plain text. It will be rendered into a monospaced font where lines are not broken. The reasoning behind this is that you can copy and paste plain text songs from sources like ultimate-guitar.com where monospacing helps keep chords and text aligned.
You add further structure to the song in a chordpro type manner. From the chord pro syntax, the following environment directives are implemented (short forms only).
{start_of_chorus}
{end_of_chorus}
{chorus}
{start_of_verse}
{end_of_verse}
{start_of_bridge}
{end_of_bridge}
{start_of_tab}
{end_of_tab}
{start_of_grid}
{end_of_grid}
As in the chordpro specification, all environment directives may include an optional label to identify the section. For example: {start_of_verse: Verse 1}
The label should not include special characters and must be seperated from the :
with a space.
Create a subfolder in the songs_raw
folder. Add the name of the folder to subfolders:
in _songbookdown.yml
and add a title.
subfolders: mynewfolder: title: The title of the new chapter (required) description: | An optional description that can span over muliple lines (currently this description is not used anywhere, but will be implemented in the near future)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.