X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/copy_structured?a=blobdiff_plain;f=processor%2Findex.html.do;h=dca7c33bacc4795c5e727f2bdd2dd6e3f2e062c1;hb=6138fd7efef3873fa3f48b92f2275f86eb76e329;hp=e436a4a67beaeb577738cf3d3e5c0ca1366516f3;hpb=eb9cbfe0b76e217743a18950693d90ebd3a20690;p=redo-blog
diff --git a/processor/index.html.do b/processor/index.html.do
index e436a4a..dca7c33 100644
--- a/processor/index.html.do
+++ b/processor/index.html.do
@@ -15,25 +15,34 @@ blog_title=`read_and_escape_file "$title_file" | head -1`
printf "
%s\n\n\n" "$blog_title"
printf "%s
\n\n" "$blog_title"
-# Iterate through entries sorted by lastmod of their source files, write entry.
-# FIXME: This ls parsing is a bad way to loop through the sorted files. Besides,
-# $('\0') is a bashism.
-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.
+mkdir -p index_snippets
+for file in ./*.rst ./*.md; do
+ if [ -e "$file" ]; then
+ uuid_file="${file%.*}.uuid"
+ redo-ifchange "$uuid_file"
+ published=`stat -c%y "${uuid_file}"`
+ published_unix=$(date -u "+%s%N" -d "${published}")
+ 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" > ./index_snippets/${published_unix}
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
+# Write link list.
+for file in ./index_snippets/*; do
+ touch ./index_snippets/list
+ cat "$file" ./index_snippets/list > ./index_snippets/tmp
+ mv ./index_snippets/tmp ./index_snippets/list
+done
+if [ -e "./index_snippets/list" ]; then
+ cat ./index_snippets/list
+fi
+rm -rf index_snippets
+
+# Write index footer.
printf "
\n\n