booxdown 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. IFS=$'\n\t'
  4. if [ $# -lt 1 ] ; then
  5. echo "$(basename $0) MARKDOWN-FILE+" >&2
  6. exit 1
  7. fi
  8. while (( "$#" )); do
  9. MDFILE=$1
  10. echo "Processing ${MDFILE}."
  11. PDFFILE=$(basename $MDFILE .md).pdf
  12. FILE=$(mktemp XXXXXXXXXX-${MDFILE})
  13. HAS_METADATA=0
  14. if head -n 1 ${MDFILE} | grep -- '---' > /dev/null ; then
  15. echo "Metadata Block Found"
  16. HAS_METADATA=1
  17. fi
  18. cat <<EOF >> $FILE
  19. ---
  20. documentclass: scrartcl
  21. classoption:
  22. - parskip=half
  23. - DIV=14
  24. papersize: a5
  25. fontsize: 10pt
  26. mainfont: LucidaBrightOT
  27. mainFontOptions:
  28. - Numbers=OldStyle
  29. sansfont: LucidaSansOT
  30. mathFont: LucidaBrightMathOT
  31. monofont: IBMPlexMono
  32. monofontoptions:
  33. - Scale=MatchLowercase
  34. - StylisticSet=3
  35. csquotes: true
  36. links-as-notes: true
  37. highlight-style: monochrome
  38. citemethod: biblatex
  39. toc: true
  40. pdfa: true
  41. hyperrefoptions:
  42. - breaklinks=true
  43. - bookmarks=true
  44. EOF
  45. if [ $HAS_METADATA -eq 1 ] ; then
  46. cat $MDFILE | sed '1 d' >> $FILE
  47. else
  48. echo "..." >> $FILE
  49. cat $MDFILE >> $FILE
  50. fi
  51. echo "Processing file to PDF."
  52. pandoc -f markdown \
  53. -s -t pdf \
  54. --highlight-style monochrome \
  55. --pdf-engine='lualatex' \
  56. -o $PDFFILE \
  57. $FILE
  58. echo "Done."
  59. rm $FILE
  60. shift
  61. done