md2tex/mkverse.sh

81 lines
1.7 KiB
Bash

#!/bin/bash
# CREATE PDF from markdown files
#
#set -x
set -e
CONF="conf.sh"
TEMPLATE="verse-wrapper-template.tex"
CONVERTER="md2verse.sh"
if ! [[ -f $CONF ]] ; then echo "$CONF not found! Exiting ..." && exit ; fi
if ! [[ -f $TEMPLATE ]] ; then echo "$TEMPLATE 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
# 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
echo "$WD/$tex does not exist!!!"
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
cp $PROJECT.pdf $WD
popd
rm -rf $TMPDIR