5
0
Fork 0
hedgedoc2pdf/pandocPipeline/pandocPipeline.sh
2023-06-07 14:37:56 +02:00

92 lines
No EOL
2.5 KiB
Bash
Executable file

#! /bin/bash
version=1.0
editor=$USER
title=
file=
ending=tex
# path to this script
script=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)
Help() {
echo Tool to convert file from markdown to another format
echo Usage: pandocPipeline [OPTION] [COMMAND]
echo -h, --help show this help screen
echo -f, --file specify filename without extension
echo -e, --ending spefify target file format
echo -u, --user=editor enter name of file editor set between "" \(only for target format pdf\)
echo -t, --title enter title of document set between "" \(only for target format pdf\)
echo Pipeline is optimized for target format pdf and docx but works with others as well
echo Possible fileformats see: https://pandoc.org/diagram.svgz?v=20230203095535
echo Examples:
echo md -> pdf : pandocPipeline -u "Dokumentbearbeiter" -t "Dokumententitel" -f dateiname -e pdf
echo md -> docx : pandocPipeline -f dateiname -e docx
}
Errorfile() {
echo No file was given
echo Please add a filename to your command
echo Try 'pandocPipeline --help' for more information
}
Open() {
xdg-open $file.$ending
exit
}
POSITIONAL_ARGS=()
while [[ $# -gt 0 ]]; do
echo $1
echo $2
case $1 in
-u|--user)
editor="$2"
shift 2;;
-t|--title)
title="$2"
shift 2;;
-f|--file)
file="$2"
shift 2;;
-e|--ending)
ending="$2"
shift 2;;
-v|--version)
echo pandocPipeline $version
exit;;
-h|--help)
Help
exit;;
--)
break;
esac
done
if [[ -z "$file" ]]; then
Errorfile
exit
elif [[ "$ending" == "pdf" ]]; then
header=$script/header.md
echo $header
sedfile=$script/body.sed
echo $sedfile
picture=$script/Logo.png
echo $picture
sed -i 's,Editor:.*,Editor: '"$editor"' \\\\,' $header
echo 1
sed -i 's,Title:.*,Title: '"$title"',' $header
echo 2
sed -i 's,textwidth]{.*,textwidth]{'"$picture"'}},' $header
echo 3
cat $file.md $header | sed -E -f $sedfile| pandoc --filter pandoc-latex-environment --number-sections --toc -i - -o $file.pdf
Open
elif [[ "$ending" == "docx" ]]; then
refdoc=$script/custom-reference.docx
pandoc $file.md --reference-doc=$refdoc -f markdown -t $ending -s -o $file.$ending
Open
else
pandoc $file.md -f markdown -t $ending -s -o $file.$ending
Open
fi