Explain the table of contents script better, and simplify it a bit
This commit is contained in:
parent
9d24cc4047
commit
65e6e50bf8
1 changed files with 8 additions and 8 deletions
|
@ -19,7 +19,7 @@ toc_end_line="$(expr "$toc_start_line" + "$toc_section_size" - 2)"
|
||||||
|
|
||||||
toc_file="$(mktemp -t table-of-contents.XXXXXXXX)"
|
toc_file="$(mktemp -t table-of-contents.XXXXXXXX)"
|
||||||
heading_file="$(mktemp -t headings.XXXXXXXX)"
|
heading_file="$(mktemp -t headings.XXXXXXXX)"
|
||||||
unsorted_toc_file="$(mktemp -t ale.txt.XXXXXXXX)"
|
tagged_toc_file="$(mktemp -t ale.txt.XXXXXXXX)"
|
||||||
sorted_toc_file="$(mktemp -t sorted-ale.txt.XXXXXXXX)"
|
sorted_toc_file="$(mktemp -t sorted-ale.txt.XXXXXXXX)"
|
||||||
|
|
||||||
sed -n "$toc_start_line,$toc_end_line"p doc/ale.txt \
|
sed -n "$toc_start_line,$toc_end_line"p doc/ale.txt \
|
||||||
|
@ -43,6 +43,8 @@ exit_code=0
|
||||||
in_section=0
|
in_section=0
|
||||||
section_index=0
|
section_index=0
|
||||||
|
|
||||||
|
# Prefix numbers to table of contents entries so that sections aren't mixed up
|
||||||
|
# with sub-sections when they are sorted.
|
||||||
while read -r; do
|
while read -r; do
|
||||||
if [[ "$REPLY" =~ ^\ ]]; then
|
if [[ "$REPLY" =~ ^\ ]]; then
|
||||||
if ! ((in_section)); then
|
if ! ((in_section)); then
|
||||||
|
@ -56,17 +58,15 @@ while read -r; do
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$section_index $REPLY" >> "$unsorted_toc_file"
|
echo "$section_index $REPLY" >> "$tagged_toc_file"
|
||||||
done < "$toc_file"
|
done < "$toc_file"
|
||||||
|
|
||||||
|
# Sort the sections and sub-sections and remove the tags.
|
||||||
sort -h "$unsorted_toc_file" | sed 's/[0-9]\+//' > "$sorted_toc_file"
|
sort -h "$tagged_toc_file" | sed 's/[0-9]\+ //' > "$sorted_toc_file"
|
||||||
sed -i.bak 's/[0-9]\+//' "$unsorted_toc_file"
|
|
||||||
rm -f "$unsorted_toc_file".bak
|
|
||||||
|
|
||||||
echo 'Check for bad ToC sorting:'
|
echo 'Check for bad ToC sorting:'
|
||||||
echo
|
echo
|
||||||
diff -U2 "$sorted_toc_file" "$unsorted_toc_file" || exit_code=$?
|
diff -U2 "$sorted_toc_file" "$toc_file" || exit_code=$?
|
||||||
|
|
||||||
echo 'Check for mismatched ToC and headings:'
|
echo 'Check for mismatched ToC and headings:'
|
||||||
echo
|
echo
|
||||||
|
@ -74,7 +74,7 @@ diff -U3 "$toc_file" "$heading_file" || exit_code=$?
|
||||||
|
|
||||||
rm "$toc_file"
|
rm "$toc_file"
|
||||||
rm "$heading_file"
|
rm "$heading_file"
|
||||||
rm "$unsorted_toc_file"
|
rm "$tagged_toc_file"
|
||||||
rm "$sorted_toc_file"
|
rm "$sorted_toc_file"
|
||||||
|
|
||||||
exit "$exit_code"
|
exit "$exit_code"
|
||||||
|
|
Reference in a new issue