diff options
Diffstat (limited to 'doc/updt.sh')
-rwxr-xr-x | doc/updt.sh | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/doc/updt.sh b/doc/updt.sh index cd978e22..af64e31e 100755 --- a/doc/updt.sh +++ b/doc/updt.sh @@ -1,9 +1,6 @@ -#!/bin/sh - -subst() { - awk -v pat="$1" -v rep="$(sed 's:\\:\\\\:g' $2)" '{gsub(pat,rep);gsub(pat,"\\&");print}' -} +#!/bin/bash +# the HTML template main='<html> <head> <link rel="stylesheet" type="text/css" href="doc.css"> @@ -14,18 +11,37 @@ GENERATED-MARKDOWN-HERE </body> </html>' -for x in *.md; do - t=$(git log -n 1 --format=%ct $x) +# substitute the pattern $1 by the content of the file $2 +subst() { + awk -v pat="$1" -v rep="$(sed 's:\\:\\\\:g' $2)" '{gsub(pat,rep);gsub(pat,"\\&");print}' +} + +# update the date field of file $1 +updadate() { + local x=$1 + local t=$(git log -n 1 --format=%ct $x) [[ -n "$t" ]] || t=$(stat -c %Y $x) - d=$(LANG= date -d @$t +"%d %B %Y") + local d=$(LANG= date -d @$t +"%d %B %Y") sed -i "s/^\( Date: *\).*/\1$d/" $x - h=${x%%.md}.html - markdown -f toc,autolink $x > $h.toc.no - markdown -Tf toc,autolink $x > $h.toc.yes +} + +# make the html file for $1 +mkhtml() { + local x=$1 + local h=${x%%.md}.html + expand -i $x | sed 's: : :' > $h.pre + markdown -f toc,autolink $h.pre > $h.toc.no + markdown -Tf toc,autolink $h.pre > $h.toc.yes head --bytes=-$(stat -c %s $h.toc.no) $h.toc.yes > $h.toc echo "$main" | subst GENERATED-MARKDOWN-HERE $h.toc.no | subst TABLE-OF-CONTENT-HERE $h.toc > $h -# rm $h.toc* + rm $h.* +} + +# apply +for x in *.md; do + updadate $x + mkhtml $x done |