diff --git a/rivet.sh b/rivet.sh
old mode 100644
new mode 100755
index 969995d..69c58d9
--- a/rivet.sh
+++ b/rivet.sh
@@ -201,13 +201,37 @@ if ! [ "$SKIP_META" ]; then
done
fi
-# Prepare index file list
+# For every file named "index.html", prepare index file list
if ! [ "$SKIP_LIST" ]; then
+ lobjlist=$(mktemp)
+ lobjdate=$(mktemp)
+ llinklist=$(mktemp)
+ for indexf in $(find "$destdir" -type f -iname "index.html"); do
+ outdir=$(echo $(dirname "$indexf") | sed "s/$destdir//g")
+
+# Generate an ordered (by open time) list of files in the subdirectory by filtering the global list
+ grep "$outdir" "$objlist" > "$lobjlist"
+ sed -e "s,^\/*[^\/]*\/,$destdir/," "$lobjlist" > "$tmpsed"
+ rm -f "$lobjdate"
+ while IFS="" read -r file; do
+ stat -c '%y' "$file" >> "$lobjdate"
+ done < "$lobjlist"
+ mv "$tmpsed" "$lobjlist"
+
+ grep "$outdir" "$linklist" > "$llinklist"
+
+# Modify "Pages" header to show the current section
+ if [ "$indexf" = "$destdir/index.html" ]; then
+ llinksec=$linksec
+ else
+ llinksec="$linksec in $title"
+ fi
+
tmpfile="$(mktemp)"
rm -f "$tmpfile"
cat << EOF >> "$tmpfile"
-
$linksec
+
$llinksec
EOF
count='0'
while IFS="" read -r line; do
@@ -215,22 +239,23 @@ EOF
if echo "$line" | grep -q 'index\.html'; then
continue
fi
- tfile="$(awk "NR==$count" "$objlist")"
+ tfile="$(awk "NR==$count" "$lobjlist")"
title="$(sed -E -n 's/.*
\s*(.+)\s*<\/title>.*/\1/p' "$tfile")"
if [ -z "$title" ]; then
title="${tfile##*/}"
fi
- ldate="$(awk "NR==$count" "$objdate" | sed 's/\s.*$//')"
- printf "%s - %s
\n" "$line" "$ldate" "$title" >> "$tmpfile"
- done < "$linklist"
+ldate="$(awk "NR==$count" "$lobjdate" | sed 's/\s.*$//')"
+ printf "%s - %s
\n" "$line" "$ldate" "$title" >> "$tmpfile"
+ done < "$llinklist"
echo ' ' >> "$tmpfile"
- sed '/<\/body>/i REPLACE' "$destdir"/index.html > "$tmpsed"
- mv "$tmpsed" "$destdir"/index.html
- sed "/^REPLACE/r $tmpfile" "$destdir"/index.html > "$tmpsed"
- mv "$tmpsed" "$destdir"/index.html
- sed 's/^REPLACE//' "$destdir"/index.html > "$tmpsed"
- mv "$tmpsed" "$destdir"/index.html
+ sed '/<\/body>/i REPLACE' $indexf > "$tmpsed"
+ mv "$tmpsed" $indexf
+ sed "/^REPLACE/r $tmpfile" $indexf > "$tmpsed"
+ mv "$tmpsed" $indexf
+ sed 's/^REPLACE//' $indexf > "$tmpsed"
+ mv "$tmpsed" $indexf
rm -f "$tmpfile"
+ done;
fi
# enclose article inside