annotate help/generate.sh @ 633:db62a0cb3037

* Added setting to specify that diff command should be run once for each selected file, rather than passing all file names to diff command (p4merge doesn't like being given many files)
author Sam Izzo <sam@humbug.net>
date Mon, 27 Aug 2012 01:26:57 +1000
parents 21aa41b62c3a
children
rev   line source
Chris@494 1 #!/bin/bash
Chris@494 2
Chris@494 3 css='<link rel="stylesheet" type="text/css" href="help.css"/>'
Chris@494 4
Chris@494 5 echo "$css" > topics.html
Chris@494 6 cat intro.html >> topics.html
Chris@494 7
Chris@494 8 pcat=""
Chris@494 9
Chris@494 10 for x in topics/*.txt ; do
Chris@494 11
Chris@494 12 b=`basename "$x" .txt`
Chris@494 13 out="a-$b.html"
Chris@494 14
Chris@494 15 echo "$css" > "$out"
Chris@494 16
Chris@494 17 cat "$x" | perl -e '
Chris@494 18 $_ = join "", <>;
Chris@494 19 s/^{[\w\s]+}//s;
Chris@494 20 s/^(\s*)([A-Za-z][^\n]*)/$1<h2>$2<\/h2>/s;
Chris@494 21 s/^\s+\*\s+(.*)$/<ul><li>$1<\/li><\/ul>/gm;
Chris@496 22 s/\*([\w"][^\*]+)\*/<b>$1<\/b>/gs;
Chris@494 23 s/"([\w])/&ldquo;$1/gs;
Chris@494 24 s/([\w])"/$1&rdquo;/gs;
Chris@495 25 s/^\#([^\s]+)$/<center><img src="images\/$1.png"><\/center>/gm;
Chris@494 26 s/\n-+\n/\n/gs;
Chris@494 27 s/\n\n([^\n])/\n\n<p>$1/gs;
Chris@494 28 s/^\n*([^<\n])/\n<p>$1/gs;
Chris@494 29 s/^\n*(<[^p])/\n<p>$1/gs;
Chris@494 30 s/([^\n])\n\n/$1<\/p>\n\n/gs;
Chris@494 31 s/([^>\n])\n*$/$1<\/p>\n\n/gs;
Chris@496 32 s/\[\[([^\|]*)\|([^\]]*)\]\]/<a href="a-$1.html">$2<\/a>/gs;
Chris@494 33 s/\[\[([^\|\]]*)\]\]/<a href="$1">$1<\/a>/gs;
Chris@494 34 s/\b_([^_]+)_\b/<i>$1<\/i>/gs;
Chris@494 35 s/@(\w[^@]+)@/<code>$1<\/code>/gs;
Chris@494 36 s/---/&mdash;/gs;
Chris@494 37 s/--/&ndash;/gs;
Chris@494 38 s/<p><h2>/<h2>/gs;
Chris@494 39 s/<\/h2><\/p>/<\/h2>/gs;
Chris@494 40 print;
Chris@494 41 ' >> "$out"
Chris@494 42
Chris@494 43 category=`grep '^{.*}$' "$x" | sed 's/[{}]//g'`
Chris@494 44
Chris@494 45 if [ "$category" != "$pcat" ]; then
Chris@494 46 echo "<h3>$category</h3>" >> topics.html
Chris@495 47 pcat="$category"
Chris@494 48 fi
Chris@494 49
Chris@494 50 grep '<h2>' "$out" | sed "s|<h2>|<p><a href=\"$out\">|" | sed 's/<\/h2>/<\/a><\/p>/' >> topics.html
Chris@494 51
Chris@494 52 done
Chris@494 53