X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/tasks?a=blobdiff_plain;f=processor%2Findex.html.do;h=725bccb243670cacf9a5ced56d5e1d7ad93968fc;hb=54220bdf43b8a1269dc54ae19dad9038b11e9981;hp=8bf675139c2bad3907e924c726b5a3084dd7ed2c;hpb=dfdd193cf3f2f215fd26bae06ada013a14422581;p=redo-blog
diff --git a/processor/index.html.do b/processor/index.html.do
index 8bf6751..725bccb 100644
--- a/processor/index.html.do
+++ b/processor/index.html.do
@@ -2,36 +2,46 @@
# Pull in global dependencies.
. ./helpers.sh
-redo-ifchange title
+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
-
-
-
-EOF
-blog_title=`read_and_escape_file title | head -1`
-printf "%s\n\n\n" "$blog_title"
-printf "%s
\n\n" "$blog_title"
+# Build blog title.
+title=$(read_and_escape_file "$title_file" | head -1 | prep_sed)
-# Iterate through entries sorted by lastmod of their source files, write entry
-# list.
-first_run=0
-files=`ls -1t *.rst *.md | tr '\n' $'\0'`
-oldIFS="$IFS"
-IFS=$'\0'
-for file in $files; do
- if [ "$first_run" -lt "1" ]; then
- IFS="$oldIFS"
- first_run=1
+# 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
+ 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}"
fi
- intermediate_file="${file%.*}.intermediate"
- html_file="${file%.*}.html"
- redo-ifchange "$intermediate_file"
- redo-ifchange "$html_file"
- title_html=`cat "$intermediate_file" | head -1`
- html_file_escaped=`escape_url "$html_file"`
- printf "- %s
\n" "$html_file_escaped" "$title_html"
done
-printf "
\n\n"
+# Write link list.
+for file in ./${tmp_snippets_dir}/*; do
+ 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
+ list=$(cat ./${tmp_snippets_dir}/list | prep_sed)
+fi
+rm -rf "${tmp_snippets_dir}"
+
+# Put data into template.
+template=$(cat "$template_file")
+printf "%s" "$template" | \
+sed 's/%BLOG_TITLE%/'"$title"'/g' | \
+sed 's/%INDEX%/'"$list"'/g' | \
+tr '\a' '%'