#!/usr/bin/env sh
function err {
echo "$@" >&2
}
if [ $# -ne 1 ]; then
err "./gmi2html.sh /path/to/gmi"
exit 1;
fi
# main method
GMI=$1
list=0
pre=0
quote=0
while read line; do
# pre formatted text
if [ -n "$(sed -nE '/^[`]{3}/p' <<< $line)" ]; then
if [ $pre -eq 0 ]; then
echo "
"
pre=1
else
echo "
"
pre=0
fi
continue;
fi
if [ $pre -eq 1 ]; then
echo "$line"
continue;
fi
# lists
if [ -n "$(sed -nE '/^[*] .+/p' <<< "$line")" ]; then
if [ $list -eq 0 ]; then
echo "
"
fi
list=0;
fi
# quotes
if [ -n "$(sed -nE '/^[>] .+/p' <<< $line)" ]; then
if [ $quote -eq 0 ]; then
echo ""
fi
quote=0;
fi
# single line modifiers
if [ -n "$(sed -nE '/^# .+/p' <<< $line)" ]; then
text=$(sed -E 's/^# (.+)$/\1/g' <<< $line)
echo "
$text
"
continue
fi
if [ -n "$(sed -nE '/^## .+/p' <<< $line)" ]; then
text=$(sed -E 's/^## (.+)$/\1/g' <<< $line)
echo "
$text
"
continue
fi
if [ -n "$(sed -nE '/^### .+/p' <<< $line)" ]; then
text=$(sed -E 's/^### (.+)$/\1/g' <<< $line)
echo "
$text
"
continue
fi
if [ -n "$(sed -nE '/^=> .+/p' <<< "$line")" ]; then
href=$(sed -E 's/^=> ([^ ]+)([ ]?.*)/\1/g' <<< "$line")
if [ -n "$(sed -nE '/^=> [^ ]+ .+$/p' <<< "$line")" ]; then
text=$(sed -E 's/^=> [^ ]+ (.+)$/\1/g' <<< "$line")
else
text=$href
fi
echo "