##// END OF EJS Templates
Fixed TOC positionning in wiki pages....
Jean-Philippe Lang -
r780:48fb20f5407c
parent child
Show More
@@ -1,121 +1,122
1 1 require 'redcloth'
2 2 require 'coderay'
3 3 require 'pp'
4 4 module Redmine
5 5 module WikiFormatting
6 6
7 7 private
8 8
9 9 class TextileFormatter < RedCloth
10 10 RULES = [:inline_auto_link, :inline_auto_mailto, :textile, :inline_toc]
11 11
12 12 def initialize(*args)
13 13 super
14 14 self.hard_breaks=true
15 15 self.no_span_caps=true
16 16 end
17 17
18 18 def to_html
19 19 @toc = []
20 20 super(*RULES).to_s
21 21 end
22 22
23 23 private
24 24
25 25 # Patch for RedCloth. Fixed in RedCloth r128 but _why hasn't released it yet.
26 26 # <a href="http://code.whytheluckystiff.net/redcloth/changeset/128">http://code.whytheluckystiff.net/redcloth/changeset/128</a>
27 27 def hard_break( text )
28 28 text.gsub!( /(.)\n(?!\n|\Z| *([#*=]+(\s|$)|[{|]))/, "\\1<br />" ) if hard_breaks
29 29 end
30 30
31 31 # Patch to add code highlighting support to RedCloth
32 32 def smooth_offtags( text )
33 33 unless @pre_list.empty?
34 34 ## replace <pre> content
35 35 text.gsub!(/<redpre#(\d+)>/) do
36 36 content = @pre_list[$1.to_i]
37 37 if content.match(/<code\s+class="(\w+)">\s?(.+)/m)
38 38 content = "<code class=\"#{$1} CodeRay\">" +
39 39 CodeRay.scan($2, $1).html(:escape => false, :line_numbers => :inline)
40 40 end
41 41 content
42 42 end
43 43 end
44 44 end
45 45
46 46 # Patch to add 'table of content' support to RedCloth
47 47 def textile_p_withtoc(tag, atts, cite, content)
48 48 if tag =~ /^h(\d)$/
49 49 @toc << [$1.to_i, content]
50 50 end
51 51 content = "<a name=\"#{@toc.length}\" class=\"wiki-page\"></a>" + content
52 52 textile_p(tag, atts, cite, content)
53 53 end
54 54
55 55 alias :textile_h1 :textile_p_withtoc
56 56 alias :textile_h2 :textile_p_withtoc
57 57 alias :textile_h3 :textile_p_withtoc
58 58
59 59 def inline_toc(text)
60 60 text.gsub!(/<p>\{\{([<>]?)toc\}\}<\/p>/i) do
61 61 div_class = 'toc'
62 62 div_class << ' right' if $1 == '>'
63 div_class << ' left' if $1 == '<'
63 64 out = "<div class=\"#{div_class}\">"
64 65 @toc.each_with_index do |heading, index|
65 66 # remove wiki links from the item
66 67 toc_item = heading.last.gsub(/(\[\[|\]\])/, '')
67 68 out << "<a href=\"##{index+1}\" class=\"heading#{heading.first}\">#{toc_item}</a>"
68 69 end
69 70 out << '</div>'
70 71 out
71 72 end
72 73 end
73 74
74 75 AUTO_LINK_RE = %r{
75 76 ( # leading text
76 77 <\w+.*?>| # leading HTML tag, or
77 78 [^=<>!:'"/]| # leading punctuation, or
78 79 ^ # beginning of line
79 80 )
80 81 (
81 82 (?:https?://)| # protocol spec, or
82 83 (?:www\.) # www.*
83 84 )
84 85 (
85 86 (\S+?) # url
86 87 (\/)? # slash
87 88 )
88 89 ([^\w\=\/;]*?) # post
89 90 (?=<|\s|$)
90 91 }x unless const_defined?(:AUTO_LINK_RE)
91 92
92 93 # Turns all urls into clickable links (code from Rails).
93 94 def inline_auto_link(text)
94 95 text.gsub!(AUTO_LINK_RE) do
95 96 all, leading, proto, url, post = $&, $1, $2, $3, $6
96 97 if leading =~ /<a\s/i || leading =~ /![<>=]?/
97 98 # don't replace URL's that are already linked
98 99 # and URL's prefixed with ! !> !< != (textile images)
99 100 all
100 101 else
101 102 %(#{leading}<a href="#{proto=="www."?"http://www.":proto}#{url}">#{proto + url}</a>#{post})
102 103 end
103 104 end
104 105 end
105 106
106 107 # Turns all email addresses into clickable links (code from Rails).
107 108 def inline_auto_mailto(text)
108 109 text.gsub!(/([\w\.!#\$%\-+.]+@[A-Za-z0-9\-]+(\.[A-Za-z0-9\-]+)+)/) do
109 110 text = $1
110 111 %{<a href="mailto:#{$1}" class="email">#{text}</a>}
111 112 end
112 113 end
113 114 end
114 115
115 116 public
116 117
117 118 def self.to_html(text, options = {})
118 119 TextileFormatter.new(text).to_html
119 120 end
120 121 end
121 122 end
@@ -1,464 +1,462
1 1 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
2 2
3 3 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
4 4 h1 {margin:0; padding:0; font-size: 24px;}
5 5 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
6 6 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
7 7 h4, .wiki h3 {font-size: 12px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
8 8
9 9 /***** Layout *****/
10 10 #top-menu {background: #2C4056;color: #fff;height:1.5em; padding: 2px 6px 0px 6px;}
11 11 #top-menu a {color: #fff; padding-right: 4px;}
12 12 #account {float:right;}
13 13
14 14 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px;}
15 15 #header a {color:#f8f8f8;}
16 16 #quick-search {float:right;}
17 17
18 18 #main-menu {position: absolute; top: 5.5em; left:6px;}
19 19 #main-menu ul {margin: 0; padding: 0;}
20 20 #main-menu li {
21 21 float:left;
22 22 list-style-type:none;
23 23 margin: 0px 10px 0px 0px;
24 24 padding: 0px 0px 0px 0px;
25 25 white-space:nowrap;
26 26 }
27 27 #main-menu li a {
28 28 display: block;
29 29 color: #fff;
30 30 text-decoration: none;
31 31 margin: 0;
32 32 padding: 4px 4px 4px 4px;
33 33 background: #2C4056;
34 34 }
35 35 #main-menu li a:hover {background:#759FCF;}
36 36
37 37 #main {background: url(../images/mainbg.png) repeat-x; background-color:#EEEEEE;}
38 38
39 39 #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
40 40 * html #sidebar{ width: 17%; }
41 41 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
42 42 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
43 43 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
44 44
45 45 #content { width: 80%; background: url(../images/contentbg.png) repeat-x; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; position: relative; z-index: 10; height:600px; min-height: 600px;}
46 46 * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
47 47 html>body #content {
48 48 height: auto;
49 49 min-height: 600px;
50 50 }
51 51
52 52 #main.nosidebar #sidebar{ display: none; }
53 53 #main.nosidebar #content{ width: auto; border-right: 0; }
54 54
55 55 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
56 56
57 57 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
58 58 #login-form table td {padding: 6px;}
59 59 #login-form label {font-weight: bold;}
60 60
61 61 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
62 62
63 63 /***** Links *****/
64 64 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
65 65 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
66 66 a img{ border: 0; }
67 67
68 68 /***** Tables *****/
69 69 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
70 70 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
71 71 table.list tbody th { padding: 0px; }
72 72 table.list td { overflow: hidden; text-overflow: ellipsis; vertical-align: top;}
73 73 table.list tbody tr:hover { background-color:#ffffdd; }
74 74 table td {padding:2px;}
75 75 table p {margin:0;}
76 76 .odd {background-color:#f6f7f8;}
77 77 .even {background-color: #fff;}
78 78
79 79 .highlight { background-color: #FCFD8D;}
80 80
81 81 .box{
82 82 padding:6px;
83 83 margin-bottom: 10px;
84 84 background-color:#f6f6f6;
85 85 color:#505050;
86 86 line-height:1.5em;
87 87 border: 1px solid #e4e4e4;
88 88 }
89 89
90 90 div.square {
91 91 border: 1px solid #999;
92 92 float: left;
93 93 margin: .3em .4em 0 .4em;
94 94 overflow: hidden;
95 95 width: .6em; height: .6em;
96 96 }
97 97
98 98 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px;font-size:0.9em;}
99 99 .splitcontentleft{float:left; width:49%;}
100 100 .splitcontentright{float:right; width:49%;}
101 101 form {display: inline;}
102 102 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
103 103 fieldset {border: 1px solid #e4e4e4; margin:0;}
104 104 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
105 105 textarea.wiki-edit { width: 99%; }
106 106 li p {margin-top: 0;}
107 107 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
108 108 .autoscroll {overflow-x: auto; padding:1px; width:100%;}
109 109
110 110 /***** Tabular forms ******/
111 111 .tabular p{
112 112 margin: 0;
113 113 padding: 5px 0 8px 0;
114 114 padding-left: 180px; /*width of left column containing the label elements*/
115 115 height: 1%;
116 116 clear:left;
117 117 }
118 118
119 119 .tabular label{
120 120 font-weight: bold;
121 121 float: left;
122 122 text-align: right;
123 123 margin-left: -180px; /*width of left column*/
124 124 width: 175px; /*width of labels. Should be smaller than left column to create some right
125 125 margin*/
126 126 }
127 127
128 128 #settings .tabular p{ padding-left: 300px; }
129 129 #settings .tabular label{ margin-left: -300px; width: 295px; }
130 130
131 131 .required {color: #bb0000;}
132 132 .summary {font-style: italic;}
133 133
134 134 div.attachments p { margin:4px 0 2px 0; }
135 135
136 136 /***** Issue list ****/
137 137 tr.issue { text-align: center; white-space: nowrap; }
138 138 tr.issue th.checkbox { width: 15px; }
139 139 tr.issue td.subject, tr.issue td.category { white-space: normal; }
140 140 tr.issue td.subject { text-align: left; }
141 141
142 142 /***** Flash & error messages ****/
143 143 #flash div, #errorExplanation, .nodata {
144 144 padding: 4px 4px 4px 30px;
145 145 margin-bottom: 12px;
146 146 font-size: 1.1em;
147 147 border: 2px solid;
148 148 }
149 149
150 150 #flash div {margin-top: 6px;}
151 151
152 152 #flash div.error, #errorExplanation {
153 153 background: url(../images/false.png) 8px 5px no-repeat;
154 154 background-color: #ffe3e3;
155 155 border-color: #dd0000;
156 156 color: #550000;
157 157 }
158 158
159 159 #flash div.notice {
160 160 background: url(../images/true.png) 8px 5px no-repeat;
161 161 background-color: #dfffdf;
162 162 border-color: #9fcf9f;
163 163 color: #005f00;
164 164 }
165 165
166 166 .nodata {
167 167 text-align: center;
168 168 background-color: #FFEBC1;
169 169 border-color: #FDBF3B;
170 170 color: #A6750C;
171 171 }
172 172
173 173 #errorExplanation ul { font-size: 0.9em;}
174 174
175 175 /***** Ajax indicator ******/
176 176 #ajax-indicator {
177 177 position: absolute; /* fixed not supported by IE */
178 178 background-color:#eee;
179 179 border: 1px solid #bbb;
180 180 top:35%;
181 181 left:40%;
182 182 width:20%;
183 183 font-weight:bold;
184 184 text-align:center;
185 185 padding:0.6em;
186 186 z-index:100;
187 187 filter:alpha(opacity=50);
188 188 -moz-opacity:0.5;
189 189 opacity: 0.5;
190 190 -khtml-opacity: 0.5;
191 191 }
192 192
193 193 html>body #ajax-indicator { position: fixed; }
194 194
195 195 #ajax-indicator span {
196 196 background-position: 0% 40%;
197 197 background-repeat: no-repeat;
198 198 background-image: url(../images/loading.gif);
199 199 padding-left: 26px;
200 200 vertical-align: bottom;
201 201 }
202 202
203 203 /***** Calendar *****/
204 204 table.cal {border-collapse: collapse; width: 100%; margin: 8px 0 6px 0;border: 1px solid #d7d7d7;}
205 205 table.cal th { background-color:#EEEEEE; padding: 4px; }
206 206 table.cal td {border: 1px solid #d7d7d7;}
207 207 table.cal td.today {background:#ffffdd;}
208 208
209 209 /***** Tooltips ******/
210 210 .tooltip{position:relative;z-index:24;}
211 211 .tooltip:hover{z-index:25;color:#000;}
212 212 .tooltip span.tip{display: none; text-align:left;}
213 213
214 214 div.tooltip:hover span.tip{
215 215 display:block;
216 216 position:absolute;
217 217 top:12px; left:24px; width:270px;
218 218 border:1px solid #555;
219 219 background-color:#fff;
220 220 padding: 4px;
221 221 font-size: 0.8em;
222 222 color:#505050;
223 223 }
224 224
225 225 /***** Progress bar *****/
226 226 .progress {
227 227 border: 1px solid #D7D7D7;
228 228 border-collapse: collapse;
229 229 border-spacing: 0pt;
230 230 empty-cells: show;
231 231 padding: 3px;
232 232 width: 40em;
233 233 text-align: center;
234 234 }
235 235
236 236 .progress td { height: 1em; }
237 237 .progress .closed { background: #BAE0BA none repeat scroll 0%; }
238 238 .progress .open { background: #FFF none repeat scroll 0%; }
239 239
240 240 /***** Tabs *****/
241 241 #content .tabs{height: 2.6em;}
242 242 #content .tabs ul{margin:0;}
243 243 #content .tabs ul li{
244 244 float:left;
245 245 list-style-type:none;
246 246 white-space:nowrap;
247 247 margin-right:8px;
248 248 background:#fff;
249 249 }
250 250 #content .tabs ul li a{
251 251 display:block;
252 252 font-size: 0.9em;
253 253 text-decoration:none;
254 254 line-height:1em;
255 255 padding:4px;
256 256 border: 1px solid #c0c0c0;
257 257 }
258 258
259 259 #content .tabs ul li a.selected, #content .tabs ul li a:hover{
260 260 background-color: #507AAA;
261 261 border: 1px solid #507AAA;
262 262 color: #fff;
263 263 text-decoration:none;
264 264 }
265 265
266 266 /***** Diff *****/
267 267 .diff_out { background: #fcc; }
268 268 .diff_in { background: #cfc; }
269 269
270 270 /***** Wiki *****/
271 271 div.wiki table {
272 272 border: 1px solid #505050;
273 273 border-collapse: collapse;
274 274 }
275 275
276 276 div.wiki table, div.wiki td, div.wiki th {
277 277 border: 1px solid #bbb;
278 278 padding: 4px;
279 279 }
280 280
281 281 div.wiki a {
282 282 background-position: 0% 60%;
283 283 background-repeat: no-repeat;
284 284 padding-left: 12px;
285 285 background-image: url(../images/external.png);
286 286 }
287 287
288 288 div.wiki a.wiki-page, div.wiki a.issue, div.wiki a.changeset, div.wiki a.email, div.wiki div.toc a {
289 289 padding-left: 0;
290 290 background-image: none;
291 291 }
292 292
293 293 div.wiki a.new {
294 294 color: #b73535;
295 295 }
296 296
297 297 div.wiki pre {
298 298 margin: 1em 1em 1em 1.6em;
299 299 padding: 2px;
300 300 background-color: #fafafa;
301 301 border: 1px solid #dadada;
302 302 width:95%;
303 303 overflow-x: auto;
304 304 }
305 305
306 306 div.wiki div.toc {
307 307 background-color: #ffffdd;
308 308 border: 1px solid #e4e4e4;
309 309 padding: 4px;
310 310 line-height: 1.2em;
311 311 margin-bottom: 12px;
312 312 margin-right: 12px;
313 float: left;
313 display: table
314 314 }
315 * html div.wiki div.toc { width: 50%; } /* IE6 doesn't autosize div */
315 316
316 div.wiki div.toc.right {
317 float: right;
318 margin-left: 12px;
319 margin-right: 0;
320 }
317 div.wiki div.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
318 div.wiki div.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
321 319
322 320 div.wiki div.toc a {
323 321 display: block;
324 322 font-size: 0.9em;
325 323 font-weight: normal;
326 324 text-decoration: none;
327 325 color: #606060;
328 326 }
329 327 div.wiki div.toc a:hover { color: #c61a1a; text-decoration: underline;}
330 328
331 329 div.wiki div.toc a.heading2 { margin-left: 6px; }
332 330 div.wiki div.toc a.heading3 { margin-left: 12px; font-size: 0.8em; }
333 331
334 332 /***** My page layout *****/
335 333 .block-receiver {
336 334 border:1px dashed #c0c0c0;
337 335 margin-bottom: 20px;
338 336 padding: 15px 0 15px 0;
339 337 }
340 338
341 339 .mypage-box {
342 340 margin:0 0 20px 0;
343 341 color:#505050;
344 342 line-height:1.5em;
345 343 }
346 344
347 345 .handle {
348 346 cursor: move;
349 347 }
350 348
351 349 a.close-icon {
352 350 display:block;
353 351 margin-top:3px;
354 352 overflow:hidden;
355 353 width:12px;
356 354 height:12px;
357 355 background-repeat: no-repeat;
358 356 cursor:pointer;
359 357 background-image:url('../images/close.png');
360 358 }
361 359
362 360 a.close-icon:hover {
363 361 background-image:url('../images/close_hl.png');
364 362 }
365 363
366 364 /***** Gantt chart *****/
367 365 .gantt_hdr {
368 366 position:absolute;
369 367 top:0;
370 368 height:16px;
371 369 border-top: 1px solid #c0c0c0;
372 370 border-bottom: 1px solid #c0c0c0;
373 371 border-right: 1px solid #c0c0c0;
374 372 text-align: center;
375 373 overflow: hidden;
376 374 }
377 375
378 376 .task {
379 377 position: absolute;
380 378 height:8px;
381 379 font-size:0.8em;
382 380 color:#888;
383 381 padding:0;
384 382 margin:0;
385 383 line-height:0.8em;
386 384 }
387 385
388 386 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
389 387 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
390 388 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
391 389 .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
392 390
393 391 /***** Icons *****/
394 392 .icon {
395 393 background-position: 0% 40%;
396 394 background-repeat: no-repeat;
397 395 padding-left: 20px;
398 396 padding-top: 2px;
399 397 padding-bottom: 3px;
400 398 }
401 399
402 400 .icon22 {
403 401 background-position: 0% 40%;
404 402 background-repeat: no-repeat;
405 403 padding-left: 26px;
406 404 line-height: 22px;
407 405 vertical-align: middle;
408 406 }
409 407
410 408 .icon-add { background-image: url(../images/add.png); }
411 409 .icon-edit { background-image: url(../images/edit.png); }
412 410 .icon-del { background-image: url(../images/delete.png); }
413 411 .icon-move { background-image: url(../images/move.png); }
414 412 .icon-save { background-image: url(../images/save.png); }
415 413 .icon-cancel { background-image: url(../images/cancel.png); }
416 414 .icon-pdf { background-image: url(../images/pdf.png); }
417 415 .icon-csv { background-image: url(../images/csv.png); }
418 416 .icon-html { background-image: url(../images/html.png); }
419 417 .icon-image { background-image: url(../images/image.png); }
420 418 .icon-txt { background-image: url(../images/txt.png); }
421 419 .icon-file { background-image: url(../images/file.png); }
422 420 .icon-folder { background-image: url(../images/folder.png); }
423 421 .icon-package { background-image: url(../images/package.png); }
424 422 .icon-home { background-image: url(../images/home.png); }
425 423 .icon-user { background-image: url(../images/user.png); }
426 424 .icon-mypage { background-image: url(../images/user_page.png); }
427 425 .icon-admin { background-image: url(../images/admin.png); }
428 426 .icon-projects { background-image: url(../images/projects.png); }
429 427 .icon-logout { background-image: url(../images/logout.png); }
430 428 .icon-help { background-image: url(../images/help.png); }
431 429 .icon-attachment { background-image: url(../images/attachment.png); }
432 430 .icon-index { background-image: url(../images/index.png); }
433 431 .icon-history { background-image: url(../images/history.png); }
434 432 .icon-feed { background-image: url(../images/feed.png); }
435 433 .icon-time { background-image: url(../images/time.png); }
436 434 .icon-stats { background-image: url(../images/stats.png); }
437 435 .icon-warning { background-image: url(../images/warning.png); }
438 436 .icon-fav { background-image: url(../images/fav.png); }
439 437 .icon-fav-off { background-image: url(../images/fav_off.png); }
440 438 .icon-reload { background-image: url(../images/reload.png); }
441 439 .icon-lock { background-image: url(../images/locked.png); }
442 440 .icon-unlock { background-image: url(../images/unlock.png); }
443 441 .icon-note { background-image: url(../images/note.png); }
444 442
445 443 .icon22-projects { background-image: url(../images/22x22/projects.png); }
446 444 .icon22-users { background-image: url(../images/22x22/users.png); }
447 445 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
448 446 .icon22-role { background-image: url(../images/22x22/role.png); }
449 447 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
450 448 .icon22-options { background-image: url(../images/22x22/options.png); }
451 449 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
452 450 .icon22-authent { background-image: url(../images/22x22/authent.png); }
453 451 .icon22-info { background-image: url(../images/22x22/info.png); }
454 452 .icon22-comment { background-image: url(../images/22x22/comment.png); }
455 453 .icon22-package { background-image: url(../images/22x22/package.png); }
456 454 .icon22-settings { background-image: url(../images/22x22/settings.png); }
457 455 .icon22-plugin { background-image: url(../images/22x22/plugin.png); }
458 456
459 457 /***** Media print specific styles *****/
460 458 @media print {
461 459 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual { display:none; }
462 460 #main { background: #fff; }
463 461 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; }
464 462 }
General Comments 0
You need to be logged in to leave comments. Login now