home · contact · privacy
Re-write date handling, remove dependency on filesystem lastmod dates.
[redo-blog] / processor / default.html.do
index 4371a3a0e70f9f12fae31712bad7a6c4240d8ecb..c44d00b40655b9eeaedc24d742baf9ffe9ca6156 100644 (file)
@@ -1,29 +1,35 @@
 #!/bin/sh
 
 # Pull in global dependencies.
-metadata_dir=.meta
-. "$metadata_dir"/helpers.sh
+. ./helpers.sh
+metadata_dir=metadata
+meta_file="${metadata_dir}/${1%.html}.automatic_metadata"
+redo-ifchange "$meta_file"
 intermediate_file="${metadata_dir}/${1%.html}.intermediate"
+redo-ifchange "$intermediate_file"
 title_file="${metadata_dir}"/title
 redo-ifchange "$title_file" 
-redo-ifchange "$intermediate_file"
+template_file="${metadata_dir}"/article.tmpl
+redo-ifchange "$template_file"
 
 # Build entry data.
-blog_title=`read_and_escape_file "$title_file" | head -1`
-title_html=`cat "$intermediate_file" | head -1`
+blog_title=$(read_and_escape_file "$title_file" | head -1 | prep_sed)
+title_html=$(cat "$intermediate_file" | head -1)
 title_plaintext=`echo "$title_html" | html2text`
-title_plaintext_escaped=`escape_html "$title_plaintext"`
-body=`cat "$intermediate_file" | sed 1d`
-
-# Write first part of entry head.
-cat << EOF
-<!DOCTYPE html>
-<html>
-<head>
-EOF
+title_html=$(printf "%s" "$title_html" | prep_sed)
+title_plaintext=$(escape_html "$title_plaintext" | prep_sed)
+body=$(cat "$intermediate_file" | sed 1d | prep_sed)
+datetime_created_unix=$(get_creation_date_from_meta_file_seconds "$meta_file")
+datetime_created_rfc3339=$(date -u "+%Y-%m-%dT%TZ" -d "@${datetime_created_unix}")
+datetime_created_friendly=$(date -u "+%Y-%m-%d %T (UTC)" -d "@${datetime_created_unix}")
 
-# Write remaining entry head and body. 
-printf "<title>%s – %s</title>\n</head>\n<body>\n" "$blog_title" "$title_plaintext_escaped"
-#printf "<title>%s – %s</title>\n</head>\n<body>\n" "$blog_title" "$entry_title"
-printf "<h1>%s</h1>\n" "$title_html"
-printf "<section>\n%s\n</section>\n</body>\n</html>" "$body"
+# Put data into template.
+template=$(cat "$template_file")
+printf "%s" "$template" | \
+sed 's/%BLOG_TITLE%/'"$blog_title"'/g' | \
+sed 's/%ARTICLE_TITLE_ESCAPED%/'"$title_plaintext"'/g' | \
+sed 's/%ARTICLE_TITLE_HTML%/'"$title_html"'/g' | \
+sed 's/%DATETIME_CREATED_RFC3339%/'"$datetime_created_rfc3339"'/g' | \
+sed 's/%DATETIME_CREATED_FRIENDLY%/'"$datetime_created_friendly"'/g' | \
+sed 's/%BODY%/'"$body"'/g' | \
+tr '\a' '%'