1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
<html>
<head><meta name="Generator" content="sedsed --htmlize">
<title>Colorized html_uc.gnu.sed</title></head>
<body bgcolor="#000000" text="#ffffff"
link="#ff00ff" alink="#ff00ff" vlink="#ff00ff">
<pre>
<font color="#00ffff"><b>#! /bin/sed -f</b></font>
<font color="#00ffff"><b># html_uc.sed -- turn html tags to uppercase</b></font>
<font color="#00ffff"><b># Just to be sure</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>°</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>&</b></font>deg;<font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>g</b></font>
<font color="#00ffff"><b># Multiple lines are handled by storing a flag in hold space</b></font>
<font color="#00ffff"><b># Fool the regexps below by adding a leading < (we'll remove</b></font>
<font color="#00ffff"><b># it later)</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^j</b></font><font color="#ff6060"><b>/</b></font> <font color="#ff6060"><b>{</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^</b></font><font color="#ff6060"><b>/</b></font><<font color="#ff6060"><b>/</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ff6060"><b>}</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#00ffff"><b># put ° before each tag name</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b><[ ]*</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>&</b></font>°<font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>g</b></font>
<font color="#00ffff"><b># put ° before each attribute name</b></font>
<font color="#ffff00"><b>t</b></font> <a href="#attr">attr</a>
<font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="attr">attr</a></b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>\<font color="#ff00ff"><b>(</b></font><[^>]*[ ]\+\)\<font color="#ff00ff"><b>(</b></font>[A-Za-z/]\+=[^> ]\+\)</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>\1</b></font>°<font color="#00ff00"><b>\2</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>g</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>\<font color="#ff00ff"><b>(</b></font><[^>]*[ ]\+\)\<font color="#ff00ff"><b>(</b></font>[A-Za-z/]\+="[^"]*"\)</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>\1</b></font>°<font color="#00ff00"><b>\2</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>g</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>\<font color="#ff00ff"><b>(</b></font><[^>]*[ ]\+\)\<font color="#ff00ff"><b>(</b></font>[A-Za-z/]\+\)</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>\1</b></font>°<font color="#00ff00"><b>\2</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>g</b></font>
<font color="#ffff00"><b>t</b></font> <a href="#attr">attr</a>
<font color="#00ffff"><b># add conversion table: °° table</b></font>
<font color="#00ffff"><b># table format: <to-char> <from-char></b></font>
<font color="#00ffff"><b># characters not in the table stop the conversion</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>,</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>,</b></font>°°//AAaBBbCCcDDdEEeFFfGGgHHhIIiJJjKKkLLlMMmNNnOOoPPpQQqRRrSSsTTtUUuVVvWWwXXxYYyZZz<font color="#ff6060"><b>,</b></font>
<font color="#00ffff"><b># substitute every char that's part of a tag or attribute and which follows a °</b></font>
<font color="#00ffff"><b># also moves ° after the char</b></font>
<font color="#ffff00"><b>t</b></font> <a href="#a">a</a>
<font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="a">a</a></b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>°\<font color="#ff00ff"><b>(</b></font>.\)\<font color="#ff00ff"><b>(</b></font>.*°°.*\)\<font color="#ff00ff"><b>(</b></font>.\)\1</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>\3</b></font>°<font color="#00ff00"><b>\2</b></font><font color="#00ff00"><b>\3</b></font><font color="#00ff00"><b>\1</b></font><font color="#ff6060"><b>/</b></font>
<font color="#ffff00"><b>t</b></font> <a href="#a">a</a>
<font color="#00ffff"><b># cleanup...</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>°°.*</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>°</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>g</b></font>
<font color="#00ffff"><b># Check if the hold space flag is to be set:</b></font>
<font color="#00ffff"><b># j = this line continued the previous one</b></font>
<font color="#00ffff"><b># J = this line will be continued by the next one</b></font>
<font color="#00ffff"><b># jJ = both things</b></font>
<font color="#ff6060"><b>/</b></font><font color="#8080ff"><b><[^>]*$</b></font><font color="#ff6060"><b>/</b></font> <font color="#ff6060"><b>{</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>J<font color="#ff6060"><b>/</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ff6060"><b>}</b></font>
<font color="#00ffff"><b># If the hold space `j' flag was set, remove it, and also delete</b></font>
<font color="#00ffff"><b># the leading < from pattern space</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^j</b></font><font color="#ff6060"><b>/</b></font> <font color="#ff6060"><b>{</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^.</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>j</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
<font color="#ff6060"><b>}</b></font>
<font color="#00ffff"><b># Change the `J' flag to `j' and go on with the next line</b></font>
<font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>J</b></font><font color="#ff6060"><b>/</b></font>j<font color="#ff6060"><b>/</b></font>
<font color="#ffff00"><b>x</b></font>
<font color="#00ffff"><b>### colorized by <a href="https://aurelio.net/projects/sedsed/">sedsed</a>, a debugger and code formatter for sed scripts</b></font>
</pre></body></html>
|