forked from alema/rivet
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
3deaa11a76 | |||
0101078c5e | |||
|
8b6f300189 | ||
f830437dfb | |||
|
a03113d112 | ||
2a8437d7a7 | |||
6b49f03e02 | |||
|
52b4b836f2 | ||
|
4536162c42 | ||
|
5538ba5c59 |
65
rivet.sh
Normal file → Executable file
65
rivet.sh
Normal file → Executable file
@ -169,11 +169,8 @@ cp -r "$srcdir"/* "$destdir"
|
|||||||
rm -f "$destdir"/_header.html "$destdir"/_footer.html "$destdir"/_metadata.html
|
rm -f "$destdir"/_header.html "$destdir"/_footer.html "$destdir"/_metadata.html
|
||||||
|
|
||||||
# Generate an ordered (by open time) file list
|
# Generate an ordered (by open time) file list
|
||||||
find "$srcdir" -type f -exec ls -1t {} + | awk '/^.*\/[^_].+\.(md|html)$/' > "$objlist"
|
find "$srcdir" -type f -not -iname "__*" -exec ls -1t {} + | awk '/^.*\/[^_].+\.(md|html)$/' > "$objlist"
|
||||||
rm -f "$objdate"
|
|
||||||
while IFS="" read -r file; do
|
|
||||||
stat -c '%y' "$file" >> "$objdate"
|
|
||||||
done < "$objlist"
|
|
||||||
sed -e "s,^\/*[^\/]*\/,$destdir/," "$objlist" > "$tmpsed"
|
sed -e "s,^\/*[^\/]*\/,$destdir/," "$objlist" > "$tmpsed"
|
||||||
mv "$tmpsed" "$objlist"
|
mv "$tmpsed" "$objlist"
|
||||||
|
|
||||||
@ -201,13 +198,48 @@ if ! [ "$SKIP_META" ]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prepare index file list
|
# For every file named "index.html", prepare index file list
|
||||||
if ! [ "$SKIP_LIST" ]; then
|
if ! [ "$SKIP_LIST" ]; then
|
||||||
|
lobjlist=$(mktemp)
|
||||||
|
lobjdate=$(mktemp)
|
||||||
|
llinklist=$(mktemp)
|
||||||
|
lmdlist=$(mktemp)
|
||||||
|
|
||||||
|
for indexf in $(find "$destdir" -mindepth 1 -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
|
||||||
|
# Filter global list
|
||||||
|
grep "$outdir" "$objlist" > "$lobjlist"
|
||||||
|
sed -e "s,^\/*[^\/]*\/,$destdir/," "$lobjlist" > "$tmpsed"
|
||||||
|
mv "$tmpsed" "$lobjlist"
|
||||||
|
|
||||||
|
# Get the corresponding .md source file for every .html file, so that the file date is referring to
|
||||||
|
# the source and not to the output
|
||||||
|
sed -e 's/\.html$/\.md/' "$lobjlist" > "$tmpsed"
|
||||||
|
sed -e "s/$destdir/$srcdir/" "$tmpsed" > "$lmdlist"
|
||||||
|
|
||||||
|
# Generate the list of dates for each file (open time)
|
||||||
|
rm -f "$lobjdate"
|
||||||
|
while IFS="" read -r file; do
|
||||||
|
stat -c '%y' "$file" >> "$lobjdate"
|
||||||
|
done < "$lmdlist"
|
||||||
|
|
||||||
|
grep "$outdir" "$linklist" > "$llinklist"
|
||||||
|
|
||||||
|
# Modify "Pages" header to show the current section
|
||||||
|
if [ "$indexf" = "$destdir/index.html" ]; then
|
||||||
|
llinksec=$linksec
|
||||||
|
else
|
||||||
|
title="$(sed -E -n 's/.*<title>\s*(.+)\s*<\/title>.*/\1/p' "$indexf")"
|
||||||
|
llinksec="$linksec in $title"
|
||||||
|
fi
|
||||||
|
|
||||||
tmpfile="$(mktemp)"
|
tmpfile="$(mktemp)"
|
||||||
rm -f "$tmpfile"
|
rm -f "$tmpfile"
|
||||||
cat << EOF >> "$tmpfile"
|
cat << EOF >> "$tmpfile"
|
||||||
<div id="map">
|
<div id="map">
|
||||||
<h2 id="Pages">$linksec</h2>
|
<h2 id="Pages">$llinksec</h2>
|
||||||
EOF
|
EOF
|
||||||
count='0'
|
count='0'
|
||||||
while IFS="" read -r line; do
|
while IFS="" read -r line; do
|
||||||
@ -215,22 +247,23 @@ EOF
|
|||||||
if echo "$line" | grep -q 'index\.html'; then
|
if echo "$line" | grep -q 'index\.html'; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
tfile="$(awk "NR==$count" "$objlist")"
|
tfile="$(awk "NR==$count" "$lobjlist")"
|
||||||
title="$(sed -E -n 's/.*<title>\s*(.+)\s*<\/title>.*/\1/p' "$tfile")"
|
title="$(sed -E -n 's/.*<title>\s*(.+)\s*<\/title>.*/\1/p' "$tfile")"
|
||||||
if [ -z "$title" ]; then
|
if [ -z "$title" ]; then
|
||||||
title="${tfile##*/}"
|
title="${tfile##*/}"
|
||||||
fi
|
fi
|
||||||
ldate="$(awk "NR==$count" "$objdate" | sed 's/\s.*$//')"
|
ldate="$(awk "NR==$count" "$lobjdate" | sed 's/\s.*$//')"
|
||||||
printf "<p><a href=\"%s\">%s - %s</a></p>\n" "$line" "$ldate" "$title" >> "$tmpfile"
|
printf "<p><a href=\"%s\">%s - %s</a></p>\n" "$line" "$ldate" "$title" >> "$tmpfile"
|
||||||
done < "$linklist"
|
done < "$llinklist"
|
||||||
echo '</div>' >> "$tmpfile"
|
echo '</div>' >> "$tmpfile"
|
||||||
sed '/<\/body>/i REPLACE' "$destdir"/index.html > "$tmpsed"
|
sed '/<\/body>/i REPLACE' $indexf > "$tmpsed"
|
||||||
mv "$tmpsed" "$destdir"/index.html
|
mv "$tmpsed" $indexf
|
||||||
sed "/^REPLACE/r $tmpfile" "$destdir"/index.html > "$tmpsed"
|
sed "/^REPLACE/r $tmpfile" $indexf > "$tmpsed"
|
||||||
mv "$tmpsed" "$destdir"/index.html
|
mv "$tmpsed" $indexf
|
||||||
sed 's/^REPLACE//' "$destdir"/index.html > "$tmpsed"
|
sed 's/^REPLACE//' $indexf > "$tmpsed"
|
||||||
mv "$tmpsed" "$destdir"/index.html
|
mv "$tmpsed" $indexf
|
||||||
rm -f "$tmpfile"
|
rm -f "$tmpfile"
|
||||||
|
done;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# enclose article inside <article></article>
|
# enclose article inside <article></article>
|
||||||
|
Loading…
Reference in New Issue
Block a user