wok-current annotate tazwikiss/stuff/var/www/wiki/plugins/wkp_Tables.sh @ rev 5859
Add tazwikiss
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Jul 18 12:02:49 2010 +0200 (2010-07-18) |
parents | |
children |
rev | line source |
---|---|
pascal@5859 | 1 plugin="Tables" |
pascal@5859 | 2 description_fr="Syntaxe de tables" |
pascal@5859 | 3 description="Table syntax" |
pascal@5859 | 4 |
pascal@5859 | 5 formatBegin() |
pascal@5859 | 6 { |
pascal@5859 | 7 CONTENT=$(sed -e 's/\[\([^]]*\)|\([^]]*\)|\([^]]*\)\]/[\1{WKP_TBL_BAR}\2{WKP_TBL_BAR}\3]/g' \ |
pascal@5859 | 8 -e 's/\[\([^]]*\)|\([^]]*\)\]/[\1{WKP_TBL_BAR}\2]/g' -e 's,|,||,g' \ |
pascal@5859 | 9 -e 's,^\( *|\)|,\1,' -e 's/|\( *\)$/\1/' <<EOT | awk ' |
pascal@5859 | 10 { |
pascal@5859 | 11 if (/^ *\|.*\|$/) { |
pascal@5859 | 12 if (in_array == 0) printf "<table class=\"wikitable\">" |
pascal@5859 | 13 in_array = 1 |
pascal@5859 | 14 s = $0 |
pascal@5859 | 15 printf "<tr>" |
pascal@5859 | 16 while (match(s,/\|[^\|]*\|/)) { |
pascal@5859 | 17 q = substr(s,RSTART+1,RLENGTH-2) |
pascal@5859 | 18 s = substr(s,RSTART+RLENGTH) |
pascal@5859 | 19 c=""; lr=""; tb="" |
pascal@5859 | 20 if (match(q,/^[hlrtb]+ /)) { |
pascal@5859 | 21 for (i = 0; i < RLENGTH; i++) { |
pascal@5859 | 22 if (q ~ /^h/) c=" class=\"em\"" |
pascal@5859 | 23 if (q ~ /^l/) lr="text-align: left; " |
pascal@5859 | 24 if (q ~ /^r/) lr="text-align: right; " |
pascal@5859 | 25 if (q ~ /^t/) tb="vertical-align: top; " |
pascal@5859 | 26 if (q ~ /^b/) tb="vertical-align: bottom; " |
pascal@5859 | 27 q = substr(q,2) |
pascal@5859 | 28 } |
pascal@5859 | 29 } |
pascal@5859 | 30 if (lr != "" || tb != "") c = c " style=\"" lr tb "\"" |
pascal@5859 | 31 if (match(q,/^[0-9]+ */)) { |
pascal@5859 | 32 n = RLENGTH |
pascal@5859 | 33 match(q,/^[0-9]+/) |
pascal@5859 | 34 c = c " colspan=\"" substr(q,1,RLENGTH) "\"" |
pascal@5859 | 35 q = substr(q,n+1) |
pascal@5859 | 36 } |
pascal@5859 | 37 if (match(q,/^,[0-9]+ */)) { |
pascal@5859 | 38 n = RLENGTH |
pascal@5859 | 39 match(q,/^,[0-9]+/) |
pascal@5859 | 40 c = c " rowspan=\"" substr(q,2,RLENGTH-1) "\"" |
pascal@5859 | 41 q = substr(q,n+1) |
pascal@5859 | 42 } |
pascal@5859 | 43 printf " <td" c ">" q "</td>" |
pascal@5859 | 44 } |
pascal@5859 | 45 printf "</tr>" |
pascal@5859 | 46 } |
pascal@5859 | 47 else { |
pascal@5859 | 48 if (in_array != 0) print "</table>" |
pascal@5859 | 49 in_array = 0 |
pascal@5859 | 50 print |
pascal@5859 | 51 } |
pascal@5859 | 52 } END { if (in_array != 0) print "</table>" }' | \ |
pascal@5859 | 53 sed -e 's/{WKP_TBL_BAR}/|/g' -e 's,||,|,g' |
pascal@5859 | 54 $CONTENT |
pascal@5859 | 55 EOT |
pascal@5859 | 56 ) |
pascal@5859 | 57 } |