documentation: switch to pandoc
[src/app-framework-binder.git] / doc / updt.sh
1 #!/bin/bash
2
3 meta() {
4         awk '
5                 NR == 1 { t = $0; next }
6                 NR == 2 && $1 ~ "======" { next }
7                 NR == 2 { exit }
8                 $1 == "Date:" { d = $2; for(i = 3 ; i <= NF ; i++) d = d " " $i; next }
9                 $1 == "Author:" { a = $2; for(i = 3 ; i <= NF ; i++) a = a " " $i; next }
10                 $1 == "version" || $1 == "Version" {next}
11                 /^[ \t]*$/ { printf "%% %s\n%% %s\n%% %s\n", t, a, d; exit }
12         ' "$1"
13 }
14
15 # update the date field of file $1
16 updadate() {
17   local x=$1
18   local t=$(git log -n 1 --format=%ct $x)
19   [[ -n "$t" ]] || t=$(stat -c %Y $x)
20   local d=$(LANG= date -d @$t +"%d %B %Y")
21   sed -i "s/^\(    Date: *\).*/\1$d/" $x
22 }
23
24 # make the html file for $1
25 mkhtml() {
26   local x=$1
27   local h=${x%%.md}.html
28   { meta "$x"; sed 's/TABLE-OF-CONTENT-HERE//' "$x"; } |
29   pandoc --css doc.css -f markdown -t html5 --toc > "$h"
30 }
31
32 # apply
33 for x in *.md; do
34   updadate $x
35   mkhtml $x
36 done
37