-
Notifications
You must be signed in to change notification settings - Fork 669
/
makeover
executable file
·45 lines (40 loc) · 1.46 KB
/
makeover
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env bash
# Extract table of contents from index.html and delete preface link.
BOOKDIR=book-$1
TITLE="Git Magic"
case $1 in
ru)
TITLE="Волшебство Git"
;;
esac
# Older AsciiDoc versions put newlines in their output.
# To get them to work with the following, first minify the HTML output.
cat $BOOKDIR/index.html \
| grep -o '<div class="toc">.*' \
| sed 's!</div>.*!</div>!' \
| sed 's!<pr01.html\>!index.html!g' \
| sed 's!<li>!<li><b>'"$TITLE"'</b></li>&!' \
> toc.tmp
# For every file except the index...
for FILE in $BOOKDIR/*.html
do
sed '/<title>/a <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">' -i $FILE
if [ $FILE != "$BOOKDIR/index.html" ]
then
# Prepend "Git Magic - " to titles of all pages.
sed '/<title>/ s/<title>/&'"$TITLE"' - /' -i $FILE
sed 's/pr01\.html/index.html/g' -i $FILE
# Insert newline after `body` tag.
sed 's/<body[^>]*>/&\n/' -i $FILE
# Paste ToC into beginning and add div section with class content for CSS.
sed '/<body/{r toc.tmp
a <div class="content">
}' -i $FILE
sed 's!</body>!</div>&!' -i $FILE
fi
done
# Originally this link was "My Homepage". Since it appears on translations of
# the guide, I changed it to my name so it doesn't have to be translated.
sed '/^<\/body/i </div><div class="footer"><a href="/~blynn/">Ben Lynn</a></div>' -i $BOOKDIR/*.html
cp $BOOKDIR/pr01.html $BOOKDIR/index.html
rm toc.tmp