#!/bin/sh
# Pull in global dependencies.
-metadata_dir=.meta
-. "$metadata_dir"/helpers.sh
+. ./helpers.sh
+metadata_dir=metadata
srcdir=`pwd`
title_file="$metadata_dir"/title
redo-ifchange "$title_file"
+template_file="${metadata_dir}"/index.tmpl
+redo-ifchange "$template_file"
-# Write index head.
-cat << EOF
-<!DOCTYPE html>
-<html>
-<head>
-EOF
-blog_title=`read_and_escape_file "$title_file" | head -1`
-printf "<title>%s</title>\n</head>\n<body>\n" "$blog_title"
-printf "<h1>%s</h1>\n<ul>\n" "$blog_title"
+# Build blog title.
+title=$(read_and_escape_file "$title_file" | head -1 | prep_sed)
# Generate link list entries.
tmp_snippets_dir=.tmp_index_snippets
mkdir -p "$tmp_snippets_dir"
for file in ./*.rst ./*.md; do
if [ -e "$file" ]; then
- uuid_file="${metadata_dir}/${file%.*}.uuid"
- redo-ifchange "$uuid_file"
- published=`stat -c%y "${uuid_file}"`
- published_unix=$(date -u "+%s%N" -d "${published}")
+ meta_file="${metadata_dir}/${file%.*}.automatic_metadata"
+ redo-ifchange "$meta_file"
+ published=$(get_creation_date_from_meta_file_nanoseconds "$meta_file")
snippet_file="${metadata_dir}/${file%.*}.index_snippet"
redo-ifchange "$snippet_file"
- ln -s "$srcdir/$snippet_file" "./${tmp_snippets_dir}/${published_unix}"
+ ln -s "$srcdir/$snippet_file" "./${tmp_snippets_dir}/${published}"
fi
done
# Write link list.
for file in ./${tmp_snippets_dir}/*; do
- touch ./${tmp_snippets_dir}/list
- cat "$file" ./${tmp_snippets_dir}/list > ./${tmp_snippets_dir}/tmp
- mv ./${tmp_snippets_dir}/tmp ./${tmp_snippets_dir}/list
+ if [ -e "$file" ]; then
+ touch ./${tmp_snippets_dir}/list
+ cat "$file" ./${tmp_snippets_dir}/list > ./${tmp_snippets_dir}/tmp
+ mv ./${tmp_snippets_dir}/tmp ./${tmp_snippets_dir}/list
+ fi
done
if [ -e "./${tmp_snippets_dir}/list" ]; then
- cat ./${tmp_snippets_dir}/list
+ list=$(cat ./${tmp_snippets_dir}/list | prep_sed)
fi
rm -rf "${tmp_snippets_dir}"
-# Write index footer.
-printf "</ul>\n</body>\n</html>"
+# Put data into template.
+template=$(cat "$template_file")
+printf "%s" "$template" | \
+sed 's/%BLOG_TITLE%/'"$title"'/g' | \
+sed 's/%INDEX%/'"$list"'/g' | \
+tr '\a' '%'