commit a8101666d09cbdfbbb72e2fabbf9eea50368795f
parent a402198e6853d06a6f03b81139df418bf5086b3b
Author: St John Karp <contact@stjo.hn>
Date: Mon, 30 Mar 2020 14:53:59 -0500
Add Pandoc to the squeeze process
Added Pandoc to parse Markdown into HTML and smarted punctuation.
Removed Smartypants.
Diffstat:
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/readme.md b/readme.md
@@ -14,7 +14,7 @@ It's pretty closely tailored to my specific needs, but it works, and IMHO it wor
* Bash. Used to run the script that automates everything else.
* A Prolog interpreter. Tested with [SWI-Prolog](https://www.swi-prolog.org/), but the syntax aims to be vanilla ISO Prolog and should work with any implementation.
-* [Smartypants](https://github.com/leohemsted/smartypants.py). Used to smarten the punctuation in the HTML output.
+* [Pandoc](http://pandoc.org/). Used to convert Markdown to HTML and smarten the punctuation.
## Assumptions
@@ -46,8 +46,4 @@ Generate a static website from Markdown sources:
Generate source files from a static website:
- ./unsqueeze.sh /home/user/website
-
-## Still to do
-
-The source Markdown files are currently assumed to be plain HTML with a Markdown header containing metadata. I'm going to need something to convert proper Markdown to HTML, so I'll probably add Pandoc as a dependency to squeeze.sh. I expect this will also replace Smartypants for doing smart punctuation.
+ ./unsqueeze.sh /home/user/website
+\ No newline at end of file
diff --git a/squeeze.sh b/squeeze.sh
@@ -16,9 +16,12 @@ find "$SITE_PATH"/"$SOURCE_DIR" -type f -name "*.md" -print0 |
while IFS= read -r -d '' file; do
echo $file
NEW_PATH=`echo "$file" | sed "s|^$SITE_PATH/$SOURCE_DIR|$SITE_PATH/$OUTPUT_DIR|" | sed 's|.md$|.html|'`
- cat "$file" |
- swipl --traditional -q -l parse_entry.pl -g "consult('$SITE_PATH/site.pl'), generate_entry." |
- smartypants \
+ # Get everything after the metadata and feed it through Pandoc.
+ sed "1,/^$/d" "$file" |
+ pandoc --ascii --from markdown+smart --to html |
+ # Recombine with the metadata and hand it to Prolog.
+ (sed "/^$/q" "$file" && cat) |
+ swipl --traditional -q -l parse_entry.pl -g "consult('$SITE_PATH/site.pl'), generate_entry." \
> "$NEW_PATH"
done