]> git.immae.eu Git - github/wallabag/wallabag.git/blame - inc/3rdparty/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php
remove autoload section in composer.json
[github/wallabag/wallabag.git] / inc / 3rdparty / htmlpurifier / HTMLPurifier / HTMLModule / Tidy / XHTMLAndHTML4.php
CommitLineData
d4949327
NL
1<?php\r
2\r
3class HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4 extends HTMLPurifier_HTMLModule_Tidy\r
4{\r
5\r
6 /**\r
7 * @return array\r
8 */\r
9 public function makeFixes()\r
10 {\r
11 $r = array();\r
12\r
13 // == deprecated tag transforms ===================================\r
14\r
15 $r['font'] = new HTMLPurifier_TagTransform_Font();\r
16 $r['menu'] = new HTMLPurifier_TagTransform_Simple('ul');\r
17 $r['dir'] = new HTMLPurifier_TagTransform_Simple('ul');\r
18 $r['center'] = new HTMLPurifier_TagTransform_Simple('div', 'text-align:center;');\r
19 $r['u'] = new HTMLPurifier_TagTransform_Simple('span', 'text-decoration:underline;');\r
20 $r['s'] = new HTMLPurifier_TagTransform_Simple('span', 'text-decoration:line-through;');\r
21 $r['strike'] = new HTMLPurifier_TagTransform_Simple('span', 'text-decoration:line-through;');\r
22\r
23 // == deprecated attribute transforms =============================\r
24\r
25 $r['caption@align'] =\r
26 new HTMLPurifier_AttrTransform_EnumToCSS(\r
27 'align',\r
28 array(\r
29 // we're following IE's behavior, not Firefox's, due\r
30 // to the fact that no one supports caption-side:right,\r
31 // W3C included (with CSS 2.1). This is a slightly\r
32 // unreasonable attribute!\r
33 'left' => 'text-align:left;',\r
34 'right' => 'text-align:right;',\r
35 'top' => 'caption-side:top;',\r
36 'bottom' => 'caption-side:bottom;' // not supported by IE\r
37 )\r
38 );\r
39\r
40 // @align for img -------------------------------------------------\r
41 $r['img@align'] =\r
42 new HTMLPurifier_AttrTransform_EnumToCSS(\r
43 'align',\r
44 array(\r
45 'left' => 'float:left;',\r
46 'right' => 'float:right;',\r
47 'top' => 'vertical-align:top;',\r
48 'middle' => 'vertical-align:middle;',\r
49 'bottom' => 'vertical-align:baseline;',\r
50 )\r
51 );\r
52\r
53 // @align for table -----------------------------------------------\r
54 $r['table@align'] =\r
55 new HTMLPurifier_AttrTransform_EnumToCSS(\r
56 'align',\r
57 array(\r
58 'left' => 'float:left;',\r
59 'center' => 'margin-left:auto;margin-right:auto;',\r
60 'right' => 'float:right;'\r
61 )\r
62 );\r
63\r
64 // @align for hr -----------------------------------------------\r
65 $r['hr@align'] =\r
66 new HTMLPurifier_AttrTransform_EnumToCSS(\r
67 'align',\r
68 array(\r
69 // we use both text-align and margin because these work\r
70 // for different browsers (IE and Firefox, respectively)\r
71 // and the melange makes for a pretty cross-compatible\r
72 // solution\r
73 'left' => 'margin-left:0;margin-right:auto;text-align:left;',\r
74 'center' => 'margin-left:auto;margin-right:auto;text-align:center;',\r
75 'right' => 'margin-left:auto;margin-right:0;text-align:right;'\r
76 )\r
77 );\r
78\r
79 // @align for h1, h2, h3, h4, h5, h6, p, div ----------------------\r
80 // {{{\r
81 $align_lookup = array();\r
82 $align_values = array('left', 'right', 'center', 'justify');\r
83 foreach ($align_values as $v) {\r
84 $align_lookup[$v] = "text-align:$v;";\r
85 }\r
86 // }}}\r
87 $r['h1@align'] =\r
88 $r['h2@align'] =\r
89 $r['h3@align'] =\r
90 $r['h4@align'] =\r
91 $r['h5@align'] =\r
92 $r['h6@align'] =\r
93 $r['p@align'] =\r
94 $r['div@align'] =\r
95 new HTMLPurifier_AttrTransform_EnumToCSS('align', $align_lookup);\r
96\r
97 // @bgcolor for table, tr, td, th ---------------------------------\r
98 $r['table@bgcolor'] =\r
99 $r['td@bgcolor'] =\r
100 $r['th@bgcolor'] =\r
101 new HTMLPurifier_AttrTransform_BgColor();\r
102\r
103 // @border for img ------------------------------------------------\r
104 $r['img@border'] = new HTMLPurifier_AttrTransform_Border();\r
105\r
106 // @clear for br --------------------------------------------------\r
107 $r['br@clear'] =\r
108 new HTMLPurifier_AttrTransform_EnumToCSS(\r
109 'clear',\r
110 array(\r
111 'left' => 'clear:left;',\r
112 'right' => 'clear:right;',\r
113 'all' => 'clear:both;',\r
114 'none' => 'clear:none;',\r
115 )\r
116 );\r
117\r
118 // @height for td, th ---------------------------------------------\r
119 $r['td@height'] =\r
120 $r['th@height'] =\r
121 new HTMLPurifier_AttrTransform_Length('height');\r
122\r
123 // @hspace for img ------------------------------------------------\r
124 $r['img@hspace'] = new HTMLPurifier_AttrTransform_ImgSpace('hspace');\r
125\r
126 // @noshade for hr ------------------------------------------------\r
127 // this transformation is not precise but often good enough.\r
128 // different browsers use different styles to designate noshade\r
129 $r['hr@noshade'] =\r
130 new HTMLPurifier_AttrTransform_BoolToCSS(\r
131 'noshade',\r
132 'color:#808080;background-color:#808080;border:0;'\r
133 );\r
134\r
135 // @nowrap for td, th ---------------------------------------------\r
136 $r['td@nowrap'] =\r
137 $r['th@nowrap'] =\r
138 new HTMLPurifier_AttrTransform_BoolToCSS(\r
139 'nowrap',\r
140 'white-space:nowrap;'\r
141 );\r
142\r
143 // @size for hr --------------------------------------------------\r
144 $r['hr@size'] = new HTMLPurifier_AttrTransform_Length('size', 'height');\r
145\r
146 // @type for li, ol, ul -------------------------------------------\r
147 // {{{\r
148 $ul_types = array(\r
149 'disc' => 'list-style-type:disc;',\r
150 'square' => 'list-style-type:square;',\r
151 'circle' => 'list-style-type:circle;'\r
152 );\r
153 $ol_types = array(\r
154 '1' => 'list-style-type:decimal;',\r
155 'i' => 'list-style-type:lower-roman;',\r
156 'I' => 'list-style-type:upper-roman;',\r
157 'a' => 'list-style-type:lower-alpha;',\r
158 'A' => 'list-style-type:upper-alpha;'\r
159 );\r
160 $li_types = $ul_types + $ol_types;\r
161 // }}}\r
162\r
163 $r['ul@type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $ul_types);\r
164 $r['ol@type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $ol_types, true);\r
165 $r['li@type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $li_types, true);\r
166\r
167 // @vspace for img ------------------------------------------------\r
168 $r['img@vspace'] = new HTMLPurifier_AttrTransform_ImgSpace('vspace');\r
169\r
170 // @width for hr, td, th ------------------------------------------\r
171 $r['td@width'] =\r
172 $r['th@width'] =\r
173 $r['hr@width'] = new HTMLPurifier_AttrTransform_Length('width');\r
174\r
175 return $r;\r
176 }\r
177}\r
178\r
179// vim: et sw=4 sts=4\r