diff --git a/dev/make-html.sh b/dev/make-html.sh index c488263..1b9fca3 100644 --- a/dev/make-html.sh +++ b/dev/make-html.sh @@ -1,16 +1,43 @@ #!/usr/bin/env bash -# magic to ensure that we're always inside the root of our application, -# no matter from which directory we'll run script -if [ ! -f README.html ]; then - echo "This script must run where README.html is!" && exit 1 -fi +############################################################## +# +# File: make-html.sh +# +# Description: creates html version from *.md files +# +# Usage: source make-hmtl +# +#### $$VERSION$$ v1.21-pre-2-ge22fcbf +############################################################## -# make html doc -mkdir html 2>/dev/null -cp README.html html/index.html -find doc -iname "*.md" -type f -exec sh -c 'pandoc -s -f commonmark -M "title=Bashobot Documentation - ${0%.md}.html" "${0}" -o "./html/$(basename ${0%.md}.html)"' {} \; -if [ -d "examples" ]; then - find examples -iname "*.md" -type f -exec sh -c 'pandoc -s -f commonmark -M "title=Bashobot Documentation - ${0%.md}.html" "${0}" -o "${0%.md}.html"' {} \; - EXAMPLES="examples" +# check for correct dir +if [[ ! ( -f README.html && -f README.md ) ]]; then + echo "Error: Can't create html, script must run where README.md and README.html is!" + +else + # check if pandoc installed + if [ "$(type -t pandoc)" != "file" ]; then + echo "pandoc not found, skipping html generation ..." + + else + ######## + # everything seems ok, start html generation + printf "Start hmtl conversion " + # create dir for html doc and index.html there + mkdir html 2>/dev/null + cp README.html html/index.html + # convert *.md files in doc to *.hmtl in html + find doc -iname "*.md" -type f -exec sh -c\ + 'printf "."; pandoc -s -f commonmark -M "title=Bashobot Documentation - ${0%.md}.html" "${0}" -o "./html/$(basename ${0%.md}.html)"' {} \; + # html for examples dir + if [ -d "examples" ]; then + EXAMPLES="examples" # add to final conversion job + find examples -iname "*.md" -type f -exec sh -c\ + 'printf "."; pandoc -s -f commonmark -M "title=Bashobot Documentation - ${0%.md}.html" "${0}" -o "${0%.md}.html"' {} \; + fi + # final: convert links from *.md to *.html + find README.html html ${EXAMPLES} -iname "*.html" -type f -exec sh -c\ + 'sed -i -E "s/href=\"(\.\.\/)*doc\//href=\"\1html\//g;s/href=\"(.*).md(#.*)*\"/href=\"\1.html\"/g" ${0}' {} \; + printf " Done!\n" + fi fi -find README.html html ${EXAMPLES} -iname "*.html" -type f -exec sh -c 'sed -i -E "s/href=\"(\.\.\/)*doc\//href=\"\1html\//g;s/href=\"(.*).md(#.*)*\"/href=\"\1.html\"/g" ${0}' {} \;