summaryrefslogtreecommitdiff
path: root/markdown2pdf
diff options
context:
space:
mode:
Diffstat (limited to 'markdown2pdf')
-rw-r--r--markdown2pdf136
1 files changed, 0 insertions, 136 deletions
diff --git a/markdown2pdf b/markdown2pdf
deleted file mode 100644
index 9470ae8e8..000000000
--- a/markdown2pdf
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/bin/sh -e
-
-latexprogram=pdflatex
-if (echo "$@" | grep -q xetex); then
- latexprogram=xelatex
-fi
-
-REQUIRED=$latexprogram
-SYNOPSIS="converts markdown-formatted text to PDF, using pdflatex."
-
-THIS=${0##*/}
-
-NEWLINE='
-'
-
-err () { echo "$*" | fold -s -w ${COLUMNS:-110} >&2; }
-errn () { printf "$*" | fold -s -w ${COLUMNS:-110} >&2; }
-
-usage () {
- err "$1 - $2" # short description
- err "Options:"
- pandoc -h | sed -ne '/--strict\|--preserve-tabs\|--tab-stop\|--parse-raw\|--toc\|--xetex\|--number-sections\|--include-in-header\|--include-before-body\|--include-after-body\|--custom-header\|--output\|--template\|--variable\|--help\|--version/p' >&2
-}
-
-# Portable which(1).
-pathfind () {
- oldifs="$IFS"; IFS=':'
- for _p in $PATH; do
- if [ -x "$_p/$*" ] && [ -f "$_p/$*" ]; then
- IFS="$oldifs"
- return 0
- fi
- done
- IFS="$oldifs"
- return 1
-}
-
-for p in pandoc $REQUIRED; do
- pathfind $p || {
- err "You need '$p' to use this program!"
- exit 1
- }
-done
-
-if (echo "$@" | grep -q -- "--help\|-h"); then
- usage "$THIS" "$SYNOPSIS"
- exit 0
-fi
-
-CONF=$(pandoc --dump-args "$@") || exit $?
-OUTPUT=$(echo "$CONF" | sed -ne '1p')
-ARGS=$(echo "$CONF" | sed -e '1d')
-
-# As a security measure refuse to proceed if mktemp is not available.
-pathfind mktemp || { err "Couldn't find 'mktemp'; aborting."; exit 1; }
-
-# Avoid issues with /tmp directory on Windows/Cygwin
-cygwin=
-cygwin=$(uname | sed -ne '/^CYGWIN/p')
-if [ -n "$cygwin" ]; then
- TMPDIR=.
- export TMPDIR
-fi
-
-THIS_TEMPDIR=
-THIS_TEMPDIR="$(mktemp -d -t $THIS.XXXXXXXX)" || exit 1
-readonly THIS_TEMPDIR
-
-trap 'exitcode=$?
- [ -z "$THIS_TEMPDIR" ] || rm -rf "$THIS_TEMPDIR"
- exit $exitcode' 0 1 2 3 13 15
-
-texname=output
-logfile=$THIS_TEMPDIR/log
-
-pandoc -s -r markdown -w latex "$@" -o $THIS_TEMPDIR/$texname.tex
-
-if [ "$OUTPUT" = "-" ]; then
- firstinfile="$(echo $ARGS | sed -ne '1p')"
- firstinfilebase="${firstinfile%.*}"
- destname="${firstinfilebase:-stdin}.pdf"
-else
- destname="$OUTPUT"
-fi
-
-(
- origdir=$(pwd)
- cd $THIS_TEMPDIR
- TEXINPUTS=$origdir:$TEXINPUTS:
- export TEXINPUTS
- finished=no
- runs=0
- while [ $finished = "no" ]; do
- $latexprogram -interaction=batchmode $texname.tex >/dev/null || {
- errcode=$?
- err "${THIS}: $latexprogram failed with error code $errcode"
- [ -f $texname.log ] && {
- err "${THIS}: error context:"
- sed -ne '/^!/,/^[[:space:]]*$/p' \
- -ne '/^[Ll]a[Tt]e[Xx] [Ww]arning/,/^[[:space:]]*$/p' \
- -ne '/^[Ee]rror/,/^[[:space:]]*$/p' $texname.log >&2
- if grep -q "File \`ucs.sty' not found" $texname.log; then
- err "${THIS}: Please install the 'unicode' package from CTAN:"
- err " http://www.ctan.org/tex-archive/macros/latex/contrib/unicode/"
- fi
- if grep -q "File \`ulem.sty' not found" $texname.log; then
- err "${THIS}: Please install the 'ulem' package from CTAN:"
- err " http://www.ctan.org/tex-archive/macros/latex/contrib/misc/ulem.sty"
- fi
- }
- exit $errcode
- }
- if [ $runs -lt 3 ] &&
- ((grep -q "Warning: There were undefined references." $texname.log) ||
- (echo "$@" | grep -q -- "--toc\|--table-of-contents")); then
- runs=$(($runs + 1))
- if grep -q "LaTeX Warning:.*[Cc]itation" $texname.log; then
- bibtex $texname 2>&1 >bibtex.err
- if [ $runs -gt 2 ]; then
- if grep -q "error message" bibtex.err ||
- grep -q "Warning" bibtex.err; then
- cat bibtex.err >&2
- fi
- fi
- fi
- elif [ $runs -gt 1 ]; then # always run at least twice for pdf bookmarks
- finished=yes
- else
- runs=$(($runs + 1))
- fi
- done
-) || exit $?
-
-mv -f $THIS_TEMPDIR/$texname.pdf "$destname"
-
-err "Created $destname"