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.
91 lines
2.5 KiB
91 lines
2.5 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 $(expr $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>" > $OUTFILE
|
|
echo "<html>" >> $OUTFILE
|
|
echo " <head>" >> $OUTFILE
|
|
echo " <title>$TITLE</title>" >> $OUTFILE
|
|
if [ $O_PLAIN -eq 0 ] ; then
|
|
echo " <style type=\"text/css\">" >> $OUTFILE
|
|
echo " html {font:1em/1.5em "Bitstream Vera Sans","Verdana",sans-serif}" >> $OUTFILE
|
|
echo " h1,h2,h3 {padding-bottom:0.1em}" >> $OUTFILE
|
|
echo " h1 {border-bottom:0.01em solid #666}" >> $OUTFILE
|
|
echo " h2 {border-bottom:0.01em solid #999}" >> $OUTFILE
|
|
echo " h3 {border-bottom:0.01em dashed #ccc}" >> $OUTFILE
|
|
echo " p {text-align: justify}" >> $OUTFILE
|
|
echo " .small {font-size:0.75em}" >> $OUTFILE
|
|
echo " .grey {color:#666666}" >> $OUTFILE
|
|
echo " blockquote {margin:10px 0px;padding-left:10px;border-left:10px solid #ccc}" >> $OUTFILE
|
|
echo " @media screen {body {max-width:800px;margin:auto}}" >> $OUTFILE
|
|
echo " </style>" >> $OUTFILE
|
|
fi
|
|
if [ "$MKD" = "multimarkdown" -a $O_LINK -eq 1 ] ; then
|
|
echo " <script src=\"http://code.jquery.com/jquery-1.7.1.min.js\" type=\"text/javascript\"></script>" >> $OUTFILE
|
|
echo " <script type="text/javascript">" >> $OUTFILE
|
|
echo " \$(document).ready(function() {" >> $OUTFILE
|
|
echo " \$(\"h1,h2,h3,h4,h5,h6\").click(function() {" >> $OUTFILE
|
|
echo " window.location.hash = '#' + \$(this).attr(\"id\");" >> $OUTFILE
|
|
echo " });" >> $OUTFILE
|
|
echo " });" >> $OUTFILE
|
|
echo " </script>" >> $OUTFILE
|
|
fi
|
|
echo " </head>" >> $OUTFILE
|
|
echo " <body>" >> $OUTFILE
|
|
$MKD $INFILE >> $OUTFILE
|
|
echo " </body>" >> $OUTFILE
|
|
echo "</html>" >> $OUTFILE
|