# pinopress
**pinopress** is a modular makefile based static blog generator. that means you run the build script once and every page is generated beforehand.
+**pinopress** also focuses on extensibility, you can hook your own shell scripts into the build process to easily add any new features.
built in features include markdown generated blog articles, and a rss feed.
}
}
+# html style comments (this will also work inside code blocks - unintended)
+/<!--(.*)-->/d
+
# special html characters
s/\&/\&\;/g
s/</\<\;/g
# if it is the first one, add READING to hold space
s/.*/READING/
x
- # write opening tag
- s/.*/<code>/
+ # write opening tag (also concat with next line)
+ N
+ s/.*\n(.*)/<pre><code>\1/
b
}
# if its the second ```, we are done
s/.*//
x
# then write closing tag
- s/.*/<\\code>/
+ s/.*/<\/code><\/pre>/
+ b
}
# if we aren't reading ```, but hold space has READING in it
x
-# html style comments
-/<!--(.*)-->/d
-
# horizontal rule
s/^\s*-{3,}\s*$/<hr\/>/
s/!\[(.*)\]\((.*)\)/<img src="\2" alt="\1"\/>/g
# links
-s/\[(.*)\]\((.*)\)/<a href="\1">\2<\/a>/g
+s/\[(.*)\]\((.*)\)/<a href="\2">\1<\/a>/g
s/\[(.*)\]/<a href="\1">\1<\/a>/g
# headers
s/^#{4} (.*)/<h4>\1<\/h4>/
s/^#{3} (.*)/<h3>\1<\/h3>/
s/^#{2} (.*)/<h2>\1<\/h2>/
-s/^#} (.*)/<h1>\1<\/h1>/
+s/^# (.*)/<h1>\1<\/h1>/
-# paragraphs
-
-# /./{H;$!d} ; x ; s/^/\n<p>/ ; s/$/\n<\/p>/
+# lists
+# paragraphs (blocks of text separated by one or more blank lines)
+/./ {
+ H
+ $!d
+}
+x
+/(^$|^\s+$)/ !{
+ s/^/\n<p>/
+ s/$/\n<\/p>/
+}
echo "parsing $<"
$(export_common)
$(call export_article,"$<")
+ . ./$(MODULE_DIR)/md-header "$<"
cat $(TEMPLATE_DIR)/head.template.html > "$@"
# module pipeline starts here
./$(MODULE_DIR)/md "$^" >> "$@"