You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.7 KiB
79 lines
1.7 KiB
#!/bin/bash
|
|
if [ ! -f "$1" ]; then
|
|
echo "File $1 not found!"
|
|
echo "Usage: make_latex.sh <markdown-file>"
|
|
exit
|
|
fi
|
|
|
|
NEWNAME=modified.md
|
|
|
|
echo "Preparing working dir..."
|
|
rm -rf workdir
|
|
mkdir workdir
|
|
cp "$1" "workdir/$NEWNAME"
|
|
cd workdir
|
|
|
|
echo "Generating modified Markdown file..."
|
|
|
|
#prefix every \ with a \
|
|
sed -i -e 's/\\\\ *$/\\\\\\\\/g' "$NEWNAME"
|
|
|
|
bat "$NEWNAME"
|
|
|
|
# prefix every individual _ with an \
|
|
sed -i -e 's/_([^_])/\\_\1/g' "$NEWNAME"
|
|
|
|
bat "$NEWNAME"
|
|
|
|
# remove tags section at the front
|
|
sed -i -e 's/tags:.*//g' "$NEWNAME"
|
|
sed -i -e 's/---$//g' "$NEWNAME"
|
|
|
|
#remove markdown links
|
|
sed -i -e 's/\[.*\](.*)//g' "$NEWNAME"
|
|
|
|
# remove code block lang declaration
|
|
sed -i -e 's/```.*/```/g' "$NEWNAME"
|
|
|
|
bat "$NEWNAME"
|
|
|
|
# add newlines around code block declaration
|
|
sed -i -e 's/``` *$/\n```\n/g' "$NEWNAME"
|
|
|
|
bat "$NEWNAME"
|
|
|
|
# replace special HTML tags
|
|
sed -i -e 's/<div id="page-break-after"\/>/\\pagebreak/g' "$NEWNAME"
|
|
sed -i -e 's/<br>/\\newline/g' "$NEWNAME"
|
|
|
|
# remove html tags
|
|
sed -i -e 's/<[a-zA-Z ]*>\(.*\)<\/[a-zA-Z =]*>/\1/g' "$NEWNAME"
|
|
sed -i -e 's/<.*\/>//g' "$NEWNAME"
|
|
sed -i -e 's/<.*>//g' "$NEWNAME"
|
|
|
|
# replace arrows
|
|
sed -i -e 's/->/$\\rightarrow$/g' "$NEWNAME"
|
|
sed -i -e 's/<-/$\\leftarrow$/g' "$NEWNAME"
|
|
sed -i -e 's/=>/$\\Rightarrow$/g' "$NEWNAME"
|
|
sed -i -e 's/<=/$\\Leftarrow$/g' "$NEWNAME"
|
|
|
|
bat "$NEWNAME"
|
|
|
|
echo "Generating LaTeX file..."
|
|
echo "\documentclass[a4paper, 11pt]{article}
|
|
|
|
\usepackage[hybrid]{markdown}
|
|
|
|
\begin{document}
|
|
\markdownInput{$NEWNAME}
|
|
\end{document}" > file.tex
|
|
|
|
echo "Installing packages..."
|
|
tlmgr install markdown
|
|
|
|
echo "Building PDF..."
|
|
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape file.tex
|
|
|
|
cp *.pdf ..
|
|
|
|
echo "Done." |