#! /bin/bash version=1.0 editor=$USER title= file= ending=tex toc=false # 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 -c --toc prints a table of content at the start of the document 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 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;; -c|--toc) toc=true shift;; -h|--help) Help exit;; --) break; esac done if [[ -z "$file" ]]; then Errorfile exit elif [[ "$ending" == "pdf" ]]; then header=$script/header.md sedfile=$script/body.sed picture=$script/Logo.png sed -i 's,Editor:.*,Editor: '"$editor"' \\\\,' $header sed -i 's,Title:.*,Title: '"$title"',' $header sed -i 's,textwidth]{.*,textwidth]{'"$picture"'}},' $header if "$toc"; then cat $file.md $header | sed -E -f $sedfile| pandoc --filter pandoc-latex-environment --number-sections --toc -i - -o $file.pdf else cat $file.md $header | sed -E -f $sedfile| pandoc --filter pandoc-latex-environment --number-sections -i - -o $file.pdf fi 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