#!/usr/bin/env bash # # Book compiler # # Parameters BASENAME="`basename $0 | sed -e 's/\(.\)/\U\1/'`" DIRNAME="`dirname $0`" BASEDIR="$DIRNAME/.." STRUCTURE="structure/notes" CONTENT="content/notes" OUTPUT="${1:-notes}" REVISION="$2" DATE="$3" # Remove any dangling output files rm -f $OUTPUT.md # Notes config cat _notes.yml >> $OUTPUT.md ; echo "" >> $OUTPUT.md cat _common.yml >> $OUTPUT.md ; echo "" >> $OUTPUT.md # Bibliography find -name _biblio.yml | while read file; do cat $file >> $OUTPUT.md ; echo "" >> $OUTPUT.md done # YAML headers for file in $BASEDIR/$STRUCTURE/00*.yml; do cat $file >> $OUTPUT.md echo "---" >> $OUTPUT.md done # Markdown headers for file in $BASEDIR/$STRUCTURE/00*.md; do cat $file >> $OUTPUT.md echo "" >> $OUTPUT.md done # Content if [ -d "$CONTENT" ]; then find $CONTENT -type f | grep '\.md$' | sort | while read file; do cat $file >> $OUTPUT.md echo "" >> $OUTPUT.md done fi # Bibliography section cat $BASEDIR/templates/notes/bibliography.md >> $OUTPUT.md # Revision information sed -i -e "s|%%revision%%|$REVISION|g" -e "s|%%date%%|$DATE|g" $OUTPUT.md # Post-processing if [ -e "snippets/terminology.sed" ]; then sed -i -f snippets/terminology.sed $OUTPUT.md fi # Symlink as a Bookdown source ln -s $OUTPUT.md notes.Rmd