From f45bd5fbf8d1fe440b1855d93b387755d63ac8f0 Mon Sep 17 00:00:00 2001 From: José Bollo Date: Sun, 29 May 2016 10:11:06 +0200 Subject: improves documentation formatting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I819dfdc98dab5fc75c8858b2afb1484e8d6b3b5a Signed-off-by: José Bollo --- doc/updt.sh | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) (limited to 'doc/updt.sh') diff --git a/doc/updt.sh b/doc/updt.sh index a6292c8..1c9d023 100755 --- a/doc/updt.sh +++ b/doc/updt.sh @@ -1,25 +1,47 @@ -#!/bin/sh +#!/bin/bash -fmd() { -cat << EOC - +# the HTML template +main=' -$(cat) +GENERATED-MARKDOWN-HERE - -EOC +' + +# 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) + local d=$(LANG= date -d @$t +"%d %B %Y") + sed -i "s/^\( Date: *\).*/\1$d/" $x } +# 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.* +} +# apply for x in *.md; do - t=$(stat -c %Y $x) - t=$(git log -n 1 --format=%ct $x) - d=$(LANG= date -d @$t +"%d %B %Y") - sed -i "s/^\( Date: *\).*/\1$d/" $x - markdown -f toc,autolink $x | fmd > ${x%%.md}.html + updadate $x + mkhtml $x done -- cgit 1.2.3-korg