## markdown to html module for pinopress
## based off https://github.com/stamby/md-to-html
-# input $1 - filepath to html file
+## usage:
+## md [md_filepath]
+
+# remove document meta
+## matches block of -- at top of file
+1,/^([^-]|-[^-]|^$)/ {
+ /^([^-]|-[^-]|^$)/ !{
+ /^-- ?/d
+ }
+}
# special html characters
s/\&/\&\;/g
s/</\<\;/g
s/>/\>\;/g
+# code blocks
+/^ *```/ {
+ x
+ # check if hold space contains READING
+ # this is to see if this is the first ``` we read or no
+ /^ *READING/ !{
+ # if it is the first one, add READING to hold space
+ s/.*/READING/
+ x
+ # write opening tag
+ s/.*/<code>/
+ b
+ }
+ # if its the second ```, we are done
+ # first clear hold
+ s/.*//
+ x
+ # then write closing tag
+ s/.*/<\\code>/
+}
+
+# if we aren't reading ```, but hold space has READING in it
+# that means we are currently processing a block, just ignore and
+# keep going
+x
+/^ *READING/ {
+ x
+ b
+}
+x
+
+
+# html style comments
+/<!--(.*)-->/d
+
+# horizontal rule
+s/^\s*-{3,}\s*$/<hr\/>/
+
# inline styles
s/(^|[^\\\*])\*{3}([^\*]+)\*{3}([^\*]|$)/\1<strong><em>\2<\/em><\/strong>\3/g
s/(^|[^\\_])_{3}([^_]+)_{3}([^_]|$)/\1<strong><em>\2<\/em><\/strong>\3/g
s/(^|[^\\\*])\*([^\*]+)\*([^\*]|$)/\1<em>\2<\/em>\3/g
s/(^|[^\\_])_([^_]+)_([^_]|$)/\1<em>\2<\/em>\3/g
s/(^|[^\\`])`([^`]+)`([^`]|$)/\1<code>\2<\/code>\3/g
+s/(^|[^\\~])~{2}([^~]+)~{2}([^~]|$)/\1<del>\2<\/del>\3/g
-# img
+# images
s/!\[(.*)\]\((.*)\)/<img src="\2" alt="\1"\/>/g
# links
s/\[(.*)\]/<a href="\1">\1<\/a>/g
# headers
+s/^#{6} (.*)/<h6>\1<\/h6>/
+s/^#{5} (.*)/<h5>\1<\/h5>/
s/^#{4} (.*)/<h4>\1<\/h4>/
s/^#{3} (.*)/<h3>\1<\/h3>/
s/^#{2} (.*)/<h2>\1<\/h2>/
s/^#} (.*)/<h1>\1<\/h1>/
-# html style comments
+# paragraphs
+
+# /./{H;$!d} ; x ; s/^/\n<p>/ ; s/$/\n<\/p>/
+
+