File: html_uc.gnu.sed.html

package info (click to toggle)
sedsed 2.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,008 kB
  • sloc: sed: 37,239; ansic: 2,395; python: 815; sh: 624; makefile: 95
file content (79 lines) | stat: -rw-r--r-- 7,330 bytes parent folder | download | duplicates (2)
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>&amp;</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 &lt; (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>&lt;<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>&lt;[ 	]*</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>&amp;</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>&lt;[^&gt;]*[ 	]\+\)\<font color="#ff00ff"><b>(</b></font>[A-Za-z/]\+=[^&gt; 	]\+\)</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>&lt;[^&gt;]*[ 	]\+\)\<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>&lt;[^&gt;]*[ 	]\+\)\<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: &lt;to-char&gt; &lt;from-char&gt;</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>&lt;[^&gt;]*$</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 &lt; 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>