Skip to content

Instantly share code, notes, and snippets.

@laffan
Created October 23, 2022 23:22
Show Gist options
  • Save laffan/b3eecbac8c6314f2bc343fc7681ce8fe to your computer and use it in GitHub Desktop.
Save laffan/b3eecbac8c6314f2bc343fc7681ce8fe to your computer and use it in GitHub Desktop.
Export markdown to word via pandoc with citations
#!/usr/bin/env bash
# MarkdownToWord
# --------------
# Searches for markdown file in parent directory, then uses pandoc to export it
# along with with bibtex citations to a word document on your desktop.
# Intended to be used with a Zotero --> Obsidian --> Word workflow
#
# TO USE
# Insert your own username on line 43, make sure md and csl files are within parent
# directory somewhere and run :
# $ ./mdToWordNoComments.sh {mdFilename} {cslFilename} {exportFilename}
echo -e ">> MarkdownToWord"
if ( test -z "$1" )
then
echo -e "🚨 No note specified"
exit 1
fi
if ( test -z "$2" )
then
echo -e "🚨 No template specified"
exit 1
fi
if ( test -z "$3" )
then
echo -e "🚨 No output filename specified"
exit 1
fi
filePath=$(cd .. && find ~+ -type f -name "$1.md";)
#create temp file
# tempFile=$(cp $filePath temp.md)
touch temp.md
# strip comments
sed "/%%/,/%%/d" "$filePath" >> temp.md
templatePath=$(cd .. && find ~+ -type f -name "$2.*";)
bibPath=$(cd .. && find ~+ -type f -name "zotero.bib";)
outputPath="/Users/{yourUsername}/Desktop/$3.docx"
printf "=====================================\n"
printf " + File name: $1\n"
printf " + File path: $filePath\n"
printf " + Bib path: $bibPath\n"
printf " + Template path: $templatePath\n"
printf " + Output path: $outputPath\n"
printf "=====================================\n"
pandoc "temp.md" --bibliography "$bibPath" --citeproc --csl "$templatePath" -o "$outputPath"
rm temp.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment