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