mu/update_html

100 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# Regenerate html files.
set -e
( cd linkify; build; )
# generate html/$1.html using /tmp/tags
process() {
rm -f html/$1.html
convert_html $1
linkify/linkify /tmp/tags html/$1.html
mv html/$1.html.out html/$1.html
}
URL_BASE='https://github.com/akkartik/mu/blob/master'
convert_html() {
vim -c "set number" -c TOhtml -c write -c qall $1
sed -i 's,<title>.*/mu/,<title>Mu - ,' $1.html
sed -i 's,\.html</title>,</title>,' $1.html
sed -i "/^<body/a <a href='$URL_BASE/$1'>$URL_BASE/$1</a>" $1.html
sed -i 's/^\* { \(.*\) }/* { font-size:12pt; \1 }/g' $1.html
sed -i 's/^body { \(.*\) }/body { font-size:12pt; \1 }/g' $1.html
sed -i '/^body {/a a { color:inherit; }' $1.html
# switch unicode characters around in the rendered html
# the ones we have in the source files render double-wide in html
# the ones we want in the html cause iTerm2 to slow down in alt-tabbing for some reason
# the following commands give us the best of both worlds
sed -i -e 's/┈/╌/g' -e 's/┊/╎/g' $1.html
mv -i $1.html html/`dirname $1`
}
ctags -x *.cc |grep -v "^operator \| member \| variable " > /tmp/tags
for f in *.cc
do
process $f
done
ctags -x [0-9]*.mu > /tmp/tags
for f in [0-9]*.mu
do
process $f
done
for f in [a-zA-Z]*.mu
do
ctags -x [0-9]*.mu $f > /tmp/tags
process $f
done
( cd edit
ctags -x ../[0-9]*.mu *.mu > /tmp/tags
)
for f in edit/*.mu
do
process $f
done
( cd subx
ctags -x *.cc |grep -v '^. ' > /tmp/tags # don't hyperlink every 'i' to the integer register variant
)
for f in subx/*.cc
do
process $f
done
for f in subx/examples/*.subx
do
( cd subx/examples
ctags -x `basename $f` > /tmp/tags
)
process $f
done
( cd subx
ctags -x *.subx > /tmp/tags
)
for f in subx/*.subx
do
process $f
done
for f in subx/apps/*.subx
do
( cd subx/apps
ctags -x ../*.subx `basename $f` > /tmp/tags
)
process $f
done
rm /tmp/tags
( cd linkify; clean; )