#!/usr/bin/env bash set -euo pipefail IFS=$'\n\t' if [ $# -lt 1 ] ; then echo "$(basename $0) MARKDOWN-FILE" >&2 exit 1 fi MDFILE=$1 PDFFILE=$(basename $MDFILE .md).pdf FILE=$(mktemp XXXXXXXXXX-${MDFILE}) HAS_METADATA=0 if head -n 1 ${MDFILE} | grep -- '---' > /dev/null ; then echo "Metadata Block Found" HAS_METADATA=1 fi cat <> $FILE --- documentclass: scrartcl classoption: - DIV=14 papersize: a5 fontsize: 10pt mainfont: LucidaBrightOT mainFontOptions: - Numbers=OldStyle sansfont: LucidaSansOT mathFont: LucidaBrightMathOT monofont: IBMPlexMono monofontoptions: - Scale=MatchLowercase - StylisticSet=3 csquotes: true highlight-style: monochrome citemethod: biblatex pdfa: true hyperrefoptions: - breaklinks=true - bookmarks=true EOF if [ $HAS_METADATA -eq 1 ] ; then cat $MDFILE | sed '1 d' >> $FILE else echo "..." >> $FILE cat $MDFILE >> $FILE fi echo "Processing file to PDF." pandoc -f markdown \ -s -t pdf \ --highlight-style monochrome \ --pdf-engine='lualatex' \ -o $PDFFILE \ $FILE echo "Done." rm $FILE