From: paul Date: Sat, 12 May 2018 23:39:10 +0000 (+0000) Subject: shorthand html X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=1a1d111199b770c092e1b16a7e03568d3d911b79;p=shcgi shorthand html svn path=/trunk/; revision=66 --- diff --git a/html-sh.sed b/html-sh.sed new file mode 100755 index 0000000..2d96275 --- /dev/null +++ b/html-sh.sed @@ -0,0 +1,37 @@ +#!/bin/sed -nrf + +s;\[checkbox[ \t]+"([^"]*)"[ \t]+"([^"]*)";[input type="checkbox" name="\1" value="\2";g; +s;\[radio[ \t]+"([^"]*)"[ \t]+"([^"]*)";[input type="radio" name="\1" value="\2";g; +s;\[submit[ \t]+"([^"]*)"[ \t]+"([^"]*)";[button type="submit" name="\1" value="\2";g; +s;\[a[ \t]+"([^"]*)";[a href="\1";g; +s;\[img[ \t]+"([^"]*)"[ \t]+"([^"]*)";[img src="\1" alt="\2";g; + +s;\[!([^]\[]*)\];;g; + +:tags +s;\[([^]\[< \t]+)([^]\[]*)\];<\1>\2;g; +t tags; + +G; +:tagclose +s;^([^]\n]*)\]([^\n]*)\n([^\n]+);\1\3\2; +t tagclose; +h; s;^([^\n]*)\n;;; x; s;\n.*$;;; + +:tagopen +s;^([^\[\n]*)\[([^]\[< \t\n]+)([^\n]*);\1<\2>\3\n; +t tagopen; +G; h; s;^[^\n]*\n+;;; x; s;\n.*$;;; + +:attribs +s;class="([^>]+)>[ \t]+\.([^ \t]+);class="\2 \1>;g; t attribs; +s;>[ \t]+\.([^ \t]+); class="\1">;g; +s;>[ \t]+#([^ \t]+); id="\1">;g; +s;>[ \t]+([^ \t=<]+=("[^"]*"|'[^']*'|[^ \t]*)); \1>;g; +s;(]+)>[ \t]+checked;\1 checked="checked">;g; +t attribs; + +s;(<[^/][^>]*>) ;\1;g; +s;(<[^/][^>]*)>[ \t]*]+>;\1/>;g; + +p; ${g; s;\n+;;g; p;}