You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
2.2 KiB

#!/bin/bash
O_LINK=0
O_PLAIN=0
if command -v multimarkdown >> /dev/null ; then
MKD="multimarkdown"
elif command -v markdown >> /dev/null ; then
MKD="markdown"
else
echo "Markdown not found!"
exit 2
fi
usage() {
echo "Usage:"
echo " $0 [options] <input>"
echo "Options:"
if [ "$MKD" = "markdown" ] ; then
echo " -l Make Headers clickable (Only with multimarkdown)"
else
echo " -l Make Headers clickable"
fi
echo " -o <file> Specify an outfile"
echo " -t <string> Specify a title"
echo " -p Plain HTML, no css"
exit 1
}
OUTFILE=""
TITLE=""
# Read options
while getopts lphHo:t: opt ; do
case "$opt" in
-) break;;
l) O_LINK=1 ;;
p) O_PLAIN=1 ;;
o) OUTFILE="$OPTARG";;
t) TITLE="$OPTARG";;
[hH]) usage ;;
esac
done
shift $((OPTIND - 1))
INFILE="$1"
if [ ! -f "$INFILE" ] ; then
usage
fi
BASENAME="$(basename "$INFILE")"
T_="$(echo -n "$BASENAME"|sed -re 's/\.(markdown|mkd|mk|md)$//')"
[ "$OUTFILE" = "" ] && OUTFILE="${T_}.html"
[ "$TITLE" = "" ] && TITLE="$(echo -n "${T_}"|tr '_' ' ')"
(
echo "<!DOCTYPE html>"
echo "<html>"
echo " <head>"
echo " <title>$TITLE</title>"
if [ $O_PLAIN -eq 0 ] ; then
echo " <style type=\"text/css\">"
echo " html {font:1em/1.5em \"Bitstream Vera Sans\",\"Verdana\",sans-serif}"
echo " h1,h2,h3 {padding-bottom:0.1em}"
echo " h1 {border-bottom:0.01em solid #666}"
echo " h2 {border-bottom:0.01em solid #999}"
echo " h3 {border-bottom:0.01em dashed #ccc}"
echo " p {text-align: justify}"
echo " .small {font-size:0.75em}"
echo " .grey {color:#666666}"
echo " blockquote {margin:10px 0px;padding-left:10px;border-left:10px solid #ccc}"
echo " @media screen {body {max-width:800px;margin:auto}}"
echo " </style>"
fi
if [ "$MKD" = "multimarkdown" ] && [ $O_LINK -eq 1 ] ; then
echo " <script src=\"http://code.jquery.com/jquery-1.7.1.min.js\" type=\"text/javascript\"></script>"
echo " <script type=\"text/javascript\">"
echo " \$(document).ready(function() {"
echo " \$(\"h1,h2,h3,h4,h5,h6\").click(function() {"
echo " window.location.hash = '#' + \$(this).attr(\"id\");"
echo " });"
echo " });"
echo " </script>"
fi
echo " </head>"
echo " <body>"
$MKD "$INFILE"
echo " </body>"
echo "</html>"
) > "$OUTFILE"