#!/bin/bash # CREATE PDF from markdown files # #set -x set -e if [ $# -eq 1 ] then CONF=$1 else CONF="verse.conf" fi TEMPLATE="verse-wrapper-template.tex" CONVERTER="md2verse.sh" if ! [[ -f $CONF ]] ; then echo "$CONF not found! Exiting ..." && exit ; fi if ! [[ -f $CONVERTER ]] ; then echo "$CONVERTER not found! Exiting ..." && exit ; fi if ! [[ -x $CONVERTER ]] ; then echo "$CONVERTER not executable! Exiting ..." && exit ; fi . $CONF # CREATE WORKING DIR WD=$PWD TMPDIR=$(mktemp -d) PATH=$PATH:$WD pushd $TMPDIR > /dev/null # CONVERT MD TO TEX for tex in $( echo $INFILES | grep '.md$' ) do if [[ -f $WD/$tex ]] then # create parent dir if necassary mkdir -p $(dirname $tex) $CONVERTER $WD/$tex > $( echo $tex | sed "s/.md/.tex/" ) else if [[ $tex == *.md ]] then echo "$WD/$tex does not exist!!!" fi fi done # CREATE WRAPPER WRAPPER="""\documentclass{$DOCCLASS} \usepackage[fontsize=${FONTSIZE}pt]{fontsize} \usepackage[${PAGESIZE}paper]{geometry} % A6 \usepackage{verse, gmverse} % https://tex.stackexchange.com/a/542222 \newcommand{\attrib}[1]{% \nopagebreak{\raggedleft\footnotesize #1\par} } \title{ ${TITLE} } \author{ ${AUTHOR} } \date{\today} \begin{document} \maketitle \tableofcontents """ WRAPPER_END=""" \end{document} """ echo "$WRAPPER" > $PROJECT.tex for input in $INFILES do if [[ $input == *.md ]] then # if [[ -f $WD/$input ]] ; then echo '\input' "{ $( echo $input | sed 's/.md/.tex/' ) }" >> $PROJECT.tex # fi else #is chapter echo '\chapter' " { $input }" >> $PROJECT.tex fi echo '\clearpage' >> $PROJECT.tex done echo "$WRAPPER_END" >> $PROJECT.tex # CREATE PDF $LATEX_ENGINE $PROJECT.tex 2&> /dev/null $LATEX_ENGINE $PROJECT.tex 2&> /dev/null popd > /dev/null if [[ -d $WD/$PROJECT ]] ; then rm -rf $WD/$PROJECT ; fi cp -r $TMPDIR $WD/$PROJECT echo "File $PROJECT.pdf created at $WD/$PROJECT" rm -rf $TMPDIR