#!/usr/bin/env bash [[ "$1" == "--help" ]] && echo "USAGE: $0 [NOTES_DIRECTORY_1 [NOTES_DIRECTORY_2 [...]]]" && exit 0 for configpath in "$HOME/.notes2web.conf" "$HOME/.config/notes2web/config" ".notes2web.conf" do [[ -f "$configpath" ]] && source "$configpath" done function _renderarticle { echo "rendering $1" pandoc\ --toc\ --standalone\ -t html\ --template /opt/notes2web/templates/article.html\ -o "$(dirname "$1")/index.html"\ "$1"\ --mathjax } function _adddirtoindex { dir="$(dirname "$1")" echo "

$(basename "$dir") notes

" >> index.md find "$dir" -name '*.md' -exec bash -c "_addarticletoindex '{}'" \; } function _addarticletoindex { echo "adding $1 to list of notes" pandoc\ -t html\ -V "filepath=$(dirname "$1")"\ --template /opt/notes2web/templates/listitem.html\ "$1"\ >> index.md } export -f _renderarticle export -f _adddirtoindex export -f _addarticletoindex #render each markdown file in every folder passed in args for file in "$@" do find "$file" -name '*.md' -exec bash -c "_renderarticle '{}'" \; done # create an intermediate markdown file of links to each article echo "---" > index.md [[ -z "$name" ]] && echo "title: notes" >> index.md || echo "title: ${name}'s notes" >> index.md echo "---" >> index.md # mark folders to be included in notes2web's index for file in "$@" do [[ ! -f "$file" ]] && echo "the presence of this files tells notes2web that it should be added to the notes2web index" > "$file/.2web" done # add articles to index and render find -name '.2web' -exec bash -c "_adddirtoindex '{}'" \; echo "copying styles.css to current directory" cp /opt/notes2web/styles.css . echo "rendering index.md" pandoc\ -t html\ --template /opt/notes2web/templates/index.html\ -o index.html\ "index.md"