rework make-html: better messages, more checks

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2021-01-01 10:26:49 +01:00
parent e22fcbf9c3
commit bbbf57c5d6

View File

@ -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}' {} \;