shorthand html
[cgilite] / html-sh.sed
1 #!/bin/sed -nrf
2
3 s;\[checkbox[ \t]+"([^"]*)"[ \t]+"([^"]*)";[input type="checkbox" name="\1" value="\2";g;
4 s;\[radio[ \t]+"([^"]*)"[ \t]+"([^"]*)";[input type="radio" name="\1" value="\2";g;
5 s;\[submit[ \t]+"([^"]*)"[ \t]+"([^"]*)";[button type="submit" name="\1" value="\2";g;
6 s;\[a[ \t]+"([^"]*)";[a href="\1";g;
7 s;\[img[ \t]+"([^"]*)"[ \t]+"([^"]*)";[img src="\1" alt="\2";g;
8
9 s;\[!([^]\[]*)\];<!\1>;g;
10
11 :tags
12 s;\[([^]\[< \t]+)([^]\[]*)\];<\1>\2</\1>;g;
13 t tags;
14
15 G;
16 :tagclose
17 s;^([^]\n]*)\]([^\n]*)\n([^\n]+);\1\3\2;
18 t tagclose;
19 h; s;^([^\n]*)\n;;; x; s;\n.*$;;;
20
21 :tagopen
22 s;^([^\[\n]*)\[([^]\[< \t\n]+)([^\n]*);\1<\2>\3\n</\2>;
23 t tagopen;
24 G; h; s;^[^\n]*\n+;;; x; s;\n.*$;;;
25
26 :attribs
27 s;class="([^>]+)>[ \t]+\.([^ \t]+);class="\2 \1>;g; t attribs;
28 s;>[ \t]+\.([^ \t]+); class="\1">;g;
29 s;>[ \t]+#([^ \t]+); id="\1">;g;
30 s;>[ \t]+([^ \t=<]+=("[^"]*"|'[^']*'|[^ \t]*)); \1>;g;
31 s;(<input type="(checkbox|radio)" [^>]+)>[ \t]+checked;\1 checked="checked">;g;
32 t attribs;
33
34 s;(<[^/][^>]*>) ;\1;g;
35 s;(<[^/][^>]*)>[ \t]*</[^>]+>;\1/>;g;
36
37 p; ${g; s;\n+;;g; p;}