rack 1.4.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rack might be problematic. Click here for more details.
- data/COPYING +1 -1
- data/KNOWN-ISSUES +9 -0
- data/README.rdoc +72 -7
- data/Rakefile +18 -11
- data/SPEC +3 -1
- data/contrib/rack.png +0 -0
- data/contrib/rack.svg +150 -0
- data/contrib/rdoc.css +412 -0
- data/lib/rack/auth/basic.rb +1 -1
- data/lib/rack/auth/digest/nonce.rb +1 -1
- data/lib/rack/backports/uri/common_18.rb +14 -28
- data/lib/rack/backports/uri/common_192.rb +14 -17
- data/lib/rack/backports/uri/common_193.rb +29 -0
- data/lib/rack/body_proxy.rb +10 -0
- data/lib/rack/builder.rb +1 -1
- data/lib/rack/cascade.rb +11 -0
- data/lib/rack/commonlogger.rb +18 -5
- data/lib/rack/deflater.rb +5 -1
- data/lib/rack/directory.rb +1 -1
- data/lib/rack/etag.rb +6 -3
- data/lib/rack/file.rb +13 -4
- data/lib/rack/head.rb +1 -0
- data/lib/rack/lint.rb +3 -1
- data/lib/rack/lock.rb +3 -4
- data/lib/rack/mime.rb +1 -1
- data/lib/rack/mock.rb +3 -2
- data/lib/rack/multipart.rb +2 -2
- data/lib/rack/multipart/parser.rb +6 -4
- data/lib/rack/reloader.rb +1 -1
- data/lib/rack/request.rb +2 -4
- data/lib/rack/response.rb +2 -1
- data/lib/rack/server.rb +28 -2
- data/lib/rack/session/abstract/id.rb +5 -0
- data/lib/rack/session/cookie.rb +9 -0
- data/lib/rack/static.rb +90 -8
- data/lib/rack/utils.rb +17 -10
- data/rack.gemspec +3 -3
- data/test/builder/line.ru +1 -0
- data/test/cgi/assets/folder/test.js +1 -0
- data/test/cgi/assets/fonts/font.eot +1 -0
- data/test/cgi/assets/images/image.png +1 -0
- data/test/cgi/assets/index.html +1 -0
- data/test/cgi/assets/javascripts/app.js +1 -0
- data/test/cgi/assets/stylesheets/app.css +1 -0
- data/test/spec_auth_basic.rb +8 -0
- data/test/spec_auth_digest.rb +14 -0
- data/test/spec_body_proxy.rb +4 -0
- data/test/spec_builder.rb +7 -1
- data/test/spec_cascade.rb +8 -0
- data/test/spec_chunked.rb +6 -6
- data/test/spec_config.rb +0 -1
- data/test/spec_content_length.rb +26 -13
- data/test/spec_content_type.rb +15 -5
- data/test/spec_deflater.rb +35 -17
- data/test/spec_directory.rb +20 -1
- data/test/spec_etag.rb +29 -13
- data/test/spec_file.rb +42 -25
- data/test/spec_head.rb +25 -7
- data/test/spec_lobster.rb +20 -5
- data/test/spec_lock.rb +46 -21
- data/test/spec_logger.rb +2 -7
- data/test/spec_methodoverride.rb +21 -22
- data/test/spec_mock.rb +12 -7
- data/test/spec_multipart.rb +29 -0
- data/test/spec_nulllogger.rb +13 -2
- data/test/spec_recursive.rb +12 -9
- data/test/spec_request.rb +2 -2
- data/test/spec_response.rb +30 -0
- data/test/spec_runtime.rb +15 -5
- data/test/spec_sendfile.rb +11 -8
- data/test/spec_server.rb +47 -0
- data/test/spec_session_cookie.rb +68 -1
- data/test/spec_session_memcache.rb +10 -8
- data/test/spec_session_pool.rb +13 -10
- data/test/spec_showexceptions.rb +9 -4
- data/test/spec_showstatus.rb +10 -5
- data/test/spec_static.rb +85 -9
- data/test/spec_urlmap.rb +10 -10
- data/test/spec_utils.rb +14 -1
- data/test/static/another/index.html +1 -0
- metadata +21 -8
data/COPYING
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2007, 2008, 2009, 2010 Christian Neukirchen <purl.org/net/chneukirchen>
|
1
|
+
Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012 Christian Neukirchen <purl.org/net/chneukirchen>
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
of this software and associated documentation files (the "Software"), to
|
data/KNOWN-ISSUES
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
= Known issues with Rack and ECMA-262
|
2
|
+
|
3
|
+
* Many users expect the escape() function defined in ECMA-262 to be compatible
|
4
|
+
with URI. Confusion is especially strong because the documentation for the
|
5
|
+
escape function includes a reference to the URI specifications. ECMA-262
|
6
|
+
escape is not however a URI escape function, it is a javascript escape
|
7
|
+
function, and is not fully compatible. Most notably, for characters outside of
|
8
|
+
the BMP. Users should use the more correct encodeURI functions.
|
9
|
+
|
1
10
|
= Known issues with Rack and Web servers
|
2
11
|
|
3
12
|
* Lighttpd sets wrong SCRIPT_NAME and PATH_INFO if you mount your
|
data/README.rdoc
CHANGED
@@ -27,8 +27,11 @@ These web servers include Rack handlers in their distributions:
|
|
27
27
|
* Fuzed
|
28
28
|
* Glassfish v3
|
29
29
|
* Phusion Passenger (which is mod_rack for Apache and for nginx)
|
30
|
+
* Puma
|
30
31
|
* Rainbows!
|
31
32
|
* Unicorn
|
33
|
+
* unixrack
|
34
|
+
* uWSGI
|
32
35
|
* Zbatery
|
33
36
|
|
34
37
|
Any valid Rack app will run the same on all these handlers, without
|
@@ -132,7 +135,11 @@ at my site:
|
|
132
135
|
|
133
136
|
Testing Rack requires the bacon testing framework:
|
134
137
|
|
135
|
-
|
138
|
+
bundle install --without extra # to be able to run the fast tests
|
139
|
+
|
140
|
+
Or:
|
141
|
+
|
142
|
+
bundle install # this assumes that you have installed native extensions!
|
136
143
|
|
137
144
|
There are two rake-based test tasks:
|
138
145
|
|
@@ -355,7 +362,7 @@ run on port 11211) and memcache-client installed.
|
|
355
362
|
* July 16, 2011: Sixteenth public release 1.3.2
|
356
363
|
* Fix for Rails and rack-test, Rack::Utils#escape calls to_s
|
357
364
|
|
358
|
-
*
|
365
|
+
* September 16, 2011: Seventeenth public release 1.3.3
|
359
366
|
* Fix bug with broken query parameters in Rack::ShowExceptions
|
360
367
|
* Rack::Request#cookies no longer swallows exceptions on broken input
|
361
368
|
* Prevents XSS attacks enabled by bug in Ruby 1.8's regexp engine
|
@@ -373,6 +380,10 @@ run on port 11211) and memcache-client installed.
|
|
373
380
|
* October 17, 2011: Twentieth public release 1.3.5
|
374
381
|
* Fix annoying warnings caused by the backport in 1.3.4
|
375
382
|
|
383
|
+
* December 28th, 2011: Twenty first public release: 1.1.3.
|
384
|
+
* Security fix. http://www.ocert.org/advisories/ocert-2011-003.html
|
385
|
+
Further information here: http://jruby.org/2011/12/27/jruby-1-6-5-1
|
386
|
+
|
376
387
|
* December 28th, 2011: Twenty fourth public release 1.4.0
|
377
388
|
* Ruby 1.8.6 support has officially been dropped. Not all tests pass.
|
378
389
|
* Raise sane error messages for broken config.ru
|
@@ -394,20 +405,74 @@ run on port 11211) and memcache-client installed.
|
|
394
405
|
|
395
406
|
* January 22nd, 2012: Twenty fifth public release 1.4.1
|
396
407
|
* Alter the keyspace limit calculations to reduce issues with nested params
|
397
|
-
* Add a workaround for multipart parsing where files
|
408
|
+
* Add a workaround for multipart parsing where files contain unescaped "%"
|
398
409
|
* Added Rack::Response::Helpers#method_not_allowed? (code 405)
|
399
|
-
* Rack::File now returns 404
|
400
|
-
* Rack::File now returns 405
|
410
|
+
* Rack::File now returns 404 for illegal directory traversals
|
411
|
+
* Rack::File now returns 405 for illegal methods (non HEAD/GET)
|
401
412
|
* Rack::Cascade now catches 405 by default, as well as 404
|
402
413
|
* Cookies missing '--' no longer cause an exception to be raised
|
403
414
|
* Various style changes and documentation spelling errors
|
404
|
-
* Rack::BodyProxy always ensures to execute
|
415
|
+
* Rack::BodyProxy always ensures to execute its block
|
405
416
|
* Additional test coverage around cookies and secrets
|
406
417
|
* Rack::Session::Cookie can now be supplied either secret or old_secret
|
407
418
|
* Tests are no longer dependent on set order
|
408
419
|
* Rack::Static no longer defaults to serving index files
|
409
420
|
* Rack.release was fixed
|
410
421
|
|
422
|
+
* January 6th, 2013: Twenty sixth public release 1.1.4
|
423
|
+
* Add warnings when users do not provide a session secret
|
424
|
+
|
425
|
+
* January 6th, 2013: Twenty seventh public release 1.2.6
|
426
|
+
* Add warnings when users do not provide a session secret
|
427
|
+
* Fix parsing performance for unquoted filenames
|
428
|
+
|
429
|
+
* January 6th, 2013: Twenty eighth public release 1.3.7
|
430
|
+
* Add warnings when users do not provide a session secret
|
431
|
+
* Fix parsing performance for unquoted filenames
|
432
|
+
* Updated URI backports
|
433
|
+
* Fix URI backport version matching, and silence constant warnings
|
434
|
+
* Correct parameter parsing with empty values
|
435
|
+
* Correct rackup '-I' flag, to allow multiple uses
|
436
|
+
* Correct rackup pidfile handling
|
437
|
+
* Report rackup line numbers correctly
|
438
|
+
* Fix request loops caused by non-stale nonces with time limits
|
439
|
+
* Fix reloader on Windows
|
440
|
+
* Prevent infinite recursions from Response#to_ary
|
441
|
+
* Various middleware better conforms to the body close specification
|
442
|
+
* Updated language for the body close specification
|
443
|
+
* Additional notes regarding ECMA escape compatibility issues
|
444
|
+
* Fix the parsing of multiple ranges in range headers
|
445
|
+
|
446
|
+
* January 6th, 2013: Twenty ninth public release 1.4.2
|
447
|
+
* Add warnings when users do not provide a session secret
|
448
|
+
* Fix parsing performance for unquoted filenames
|
449
|
+
* Updated URI backports
|
450
|
+
* Fix URI backport version matching, and silence constant warnings
|
451
|
+
* Correct parameter parsing with empty values
|
452
|
+
* Correct rackup '-I' flag, to allow multiple uses
|
453
|
+
* Correct rackup pidfile handling
|
454
|
+
* Report rackup line numbers correctly
|
455
|
+
* Fix request loops caused by non-stale nonces with time limits
|
456
|
+
* Fix reloader on Windows
|
457
|
+
* Prevent infinite recursions from Response#to_ary
|
458
|
+
* Various middleware better conforms to the body close specification
|
459
|
+
* Updated language for the body close specification
|
460
|
+
* Additional notes regarding ECMA escape compatibility issues
|
461
|
+
* Fix the parsing of multiple ranges in range headers
|
462
|
+
* Prevent errors from empty parameter keys
|
463
|
+
* Added PATCH verb to Rack::Request
|
464
|
+
* Various documentation updates
|
465
|
+
* Fix session merge semantics (fixes rack-test)
|
466
|
+
* Rack::Static :index can now handle multiple directories
|
467
|
+
* All tests now utilize Rack::Lint (special thanks to Lars Gierth)
|
468
|
+
* Rack::File cache_control parameter is now deprecated, and removed by 1.5
|
469
|
+
* Correct Rack::Directory script name escaping
|
470
|
+
* Rack::Static supports header rules for sophisticated configurations
|
471
|
+
* Multipart parsing now works without a Content-Length header
|
472
|
+
* New logos courtesy of Zachary Scott!
|
473
|
+
* Rack::BodyProxy now explicitly defines #each, useful for C extensions
|
474
|
+
* Cookies that are not URI escaped no longer cause exceptions
|
475
|
+
|
411
476
|
== Contact
|
412
477
|
|
413
478
|
Please post bugs, suggestions and patches to
|
@@ -488,7 +553,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
488
553
|
|
489
554
|
== Links
|
490
555
|
|
491
|
-
Rack:: <http://rack.
|
556
|
+
Rack:: <http://rack.github.com/>
|
492
557
|
Official Rack repositories:: <http://github.com/rack>
|
493
558
|
Rack Bug Tracking:: <http://github.com/rack/rack/issues>
|
494
559
|
rack-devel mailing list:: <http://groups.google.com/group/rack-devel>
|
data/Rakefile
CHANGED
@@ -11,12 +11,12 @@ task :deps do
|
|
11
11
|
reqs = dep.requirements_list
|
12
12
|
reqs = (["-v"] * reqs.size).zip(reqs).flatten
|
13
13
|
# Use system over sh, because we want to ignore errors!
|
14
|
-
system "gem", "install", '--conservative', dep.name, *reqs
|
14
|
+
system Gem.ruby, "-S", "gem", "install", '--conservative', dep.name, *reqs
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
desc "Make an archive as .tar.gz"
|
19
|
-
task :dist => [
|
19
|
+
task :dist => %w[chmod ChangeLog SPEC rdoc] do
|
20
20
|
sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
|
21
21
|
sh "pax -waf #{release}.tar -s ':^:#{release}/:' SPEC ChangeLog doc rack.gemspec"
|
22
22
|
sh "gzip -f -9 #{release}.tar"
|
@@ -31,7 +31,7 @@ task :officialrelease do
|
|
31
31
|
sh "mv stage/#{release}.tar.gz stage/#{release}.gem ."
|
32
32
|
end
|
33
33
|
|
34
|
-
task :officialrelease_really => [
|
34
|
+
task :officialrelease_really => %w[SPEC dist gem] do
|
35
35
|
sh "sha1sum #{release}.tar.gz #{release}.gem"
|
36
36
|
end
|
37
37
|
|
@@ -46,7 +46,10 @@ task :chmod do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
desc "Generate a ChangeLog"
|
49
|
-
task :changelog
|
49
|
+
task :changelog => %w[ChangeLog]
|
50
|
+
|
51
|
+
file '.git/index'
|
52
|
+
file "ChangeLog" => '.git/index' do
|
50
53
|
File.open("ChangeLog", "w") { |out|
|
51
54
|
`git log -z`.split("\0").map { |chunk|
|
52
55
|
author = chunk[/Author: (.*)/, 1].strip
|
@@ -63,7 +66,6 @@ task :changelog do
|
|
63
66
|
}
|
64
67
|
end
|
65
68
|
|
66
|
-
|
67
69
|
file 'lib/rack/lint.rb'
|
68
70
|
desc "Generate Rack Specification"
|
69
71
|
file "SPEC" => 'lib/rack/lint.rb' do
|
@@ -99,17 +101,22 @@ task :gem => ["SPEC"] do
|
|
99
101
|
sh "gem build rack.gemspec"
|
100
102
|
end
|
101
103
|
|
104
|
+
task :doc => :rdoc
|
102
105
|
desc "Generate RDoc documentation"
|
103
|
-
task :rdoc => [
|
106
|
+
task :rdoc => %w[ChangeLog SPEC] do
|
104
107
|
sh(*%w{rdoc --line-numbers --main README.rdoc
|
105
108
|
--title 'Rack\ Documentation' --charset utf-8 -U -o doc} +
|
106
|
-
%w{README.rdoc KNOWN-ISSUES SPEC} +
|
107
|
-
|
109
|
+
%w{README.rdoc KNOWN-ISSUES SPEC ChangeLog} +
|
110
|
+
`git ls-files lib/\*\*/\*.rb`.strip.split)
|
111
|
+
cp "contrib/rdoc.css", "doc/rdoc.css"
|
112
|
+
end
|
113
|
+
|
114
|
+
task :pushdoc => %w[rdoc] do
|
115
|
+
sh "rsync -avz doc/ rack.rubyforge.org:/var/www/gforge-projects/rack/doc/"
|
108
116
|
end
|
109
117
|
|
110
|
-
task :pushsite => [
|
118
|
+
task :pushsite => %w[pushdoc] do
|
111
119
|
sh "cd site && git gc"
|
112
|
-
sh "rsync -avz
|
113
|
-
sh "rsync -avz site/ chneukirchen@rack.rubyforge.org:/var/www/gforge-projects/rack/"
|
120
|
+
sh "rsync -avz site/ rack.rubyforge.org:/var/www/gforge-projects/rack/"
|
114
121
|
sh "cd site && git push"
|
115
122
|
end
|
data/SPEC
CHANGED
@@ -156,7 +156,9 @@ The Body must respond to +each+
|
|
156
156
|
and must only yield String values.
|
157
157
|
The Body itself should not be an instance of String, as this will
|
158
158
|
break in Ruby 1.9.
|
159
|
-
If the Body responds to +close+, it will be called after iteration.
|
159
|
+
If the Body responds to +close+, it will be called after iteration. If
|
160
|
+
the body is replaced by a middleware after action, the original body
|
161
|
+
must be closed first, if it repsonds to close.
|
160
162
|
If the Body responds to +to_path+, it must return a String
|
161
163
|
identifying the location of a file whose contents are identical
|
162
164
|
to that produced by calling +each+; this may be used by the
|
data/contrib/rack.png
ADDED
Binary file
|
data/contrib/rack.svg
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
6
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
7
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
8
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
9
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
width="744.09448819"
|
14
|
+
height="1052.3622047"
|
15
|
+
id="svg2"
|
16
|
+
version="1.1"
|
17
|
+
inkscape:version="0.48.3.1 r9886"
|
18
|
+
sodipodi:docname="rack.svg">
|
19
|
+
<defs
|
20
|
+
id="defs4">
|
21
|
+
<linearGradient
|
22
|
+
id="linearGradient3837"
|
23
|
+
osb:paint="solid">
|
24
|
+
<stop
|
25
|
+
style="stop-color:#000000;stop-opacity:1;"
|
26
|
+
offset="0"
|
27
|
+
id="stop3839" />
|
28
|
+
</linearGradient>
|
29
|
+
</defs>
|
30
|
+
<sodipodi:namedview
|
31
|
+
id="base"
|
32
|
+
pagecolor="#ffffff"
|
33
|
+
bordercolor="#666666"
|
34
|
+
borderopacity="1.0"
|
35
|
+
inkscape:pageopacity="0.0"
|
36
|
+
inkscape:pageshadow="2"
|
37
|
+
inkscape:zoom="0.98994949"
|
38
|
+
inkscape:cx="230.49849"
|
39
|
+
inkscape:cy="656.46253"
|
40
|
+
inkscape:document-units="px"
|
41
|
+
inkscape:current-layer="layer1"
|
42
|
+
showgrid="false"
|
43
|
+
showguides="false"
|
44
|
+
inkscape:guide-bbox="true"
|
45
|
+
inkscape:window-width="1920"
|
46
|
+
inkscape:window-height="1056"
|
47
|
+
inkscape:window-x="1920"
|
48
|
+
inkscape:window-y="24"
|
49
|
+
inkscape:window-maximized="1">
|
50
|
+
<sodipodi:guide
|
51
|
+
orientation="1,0"
|
52
|
+
position="645.99255,757.10933"
|
53
|
+
id="guide2995" />
|
54
|
+
<sodipodi:guide
|
55
|
+
orientation="1,0"
|
56
|
+
position="488.40876,686.90373"
|
57
|
+
id="guide2997" />
|
58
|
+
<sodipodi:guide
|
59
|
+
orientation="1,0"
|
60
|
+
position="176.7767,748.52304"
|
61
|
+
id="guide2999" />
|
62
|
+
<sodipodi:guide
|
63
|
+
orientation="1,0"
|
64
|
+
position="355.71429,782.85714"
|
65
|
+
id="guide3005" />
|
66
|
+
<sodipodi:guide
|
67
|
+
orientation="0,1"
|
68
|
+
position="527.14286,642.85714"
|
69
|
+
id="guide3007" />
|
70
|
+
<sodipodi:guide
|
71
|
+
orientation="0,1"
|
72
|
+
position="431.42857,507.85714"
|
73
|
+
id="guide3009" />
|
74
|
+
<sodipodi:guide
|
75
|
+
orientation="0,1"
|
76
|
+
position="488.40876,783.57143"
|
77
|
+
id="guide3011" />
|
78
|
+
<sodipodi:guide
|
79
|
+
orientation="0,1"
|
80
|
+
position="505,372.85714"
|
81
|
+
id="guide3013" />
|
82
|
+
</sodipodi:namedview>
|
83
|
+
<metadata
|
84
|
+
id="metadata7">
|
85
|
+
<rdf:RDF>
|
86
|
+
<cc:Work
|
87
|
+
rdf:about="">
|
88
|
+
<dc:format>image/svg+xml</dc:format>
|
89
|
+
<dc:type
|
90
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
91
|
+
<dc:title></dc:title>
|
92
|
+
</cc:Work>
|
93
|
+
</rdf:RDF>
|
94
|
+
</metadata>
|
95
|
+
<g
|
96
|
+
inkscape:label="Layer 1"
|
97
|
+
inkscape:groupmode="layer"
|
98
|
+
id="layer1">
|
99
|
+
<path
|
100
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
101
|
+
d="m 176.28125,201.03125 0,0.625 0,395.125 0,0.375 0.34375,0.0937 312.34375,91.6875 0.625,0.1875 0,-0.65625 0.125,-419.09375 0,-0.40625 -0.40625,-0.0937 -312.4375,-67.71875 -0.59375,-0.125 z m 1,1.21875 311.4375,67.5 -0.125,418.0625 -311.3125,-91.375 0,-394.1875 z"
|
102
|
+
id="path2985"
|
103
|
+
inkscape:connector-curvature="0" />
|
104
|
+
<path
|
105
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
106
|
+
d="m 647.21875,206.59375 -0.6875,0.28125 -157.59375,62.21875 -0.3125,0.125 0,0.34375 0.1875,419.125 0,0.75 0.6875,-0.28125 156.0625,-63.1875 0.3125,-0.125 0,-0.34375 1.34375,-418.15625 0,-0.75 z m -1,1.4375 -1.34375,417.125 -155.0625,62.78125 -0.1875,-418.03125 156.59375,-61.875 z"
|
107
|
+
id="path2993"
|
108
|
+
inkscape:connector-curvature="0" />
|
109
|
+
<path
|
110
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
111
|
+
d="m 355.6875,137.40625 -0.15625,0.0625 L 176.96875,201.0625 177.3125,202 355.75,138.4375 646.78125,207.53125 647,206.5625 l -291.15625,-69.125 -0.15625,-0.0312 z"
|
112
|
+
id="path3003"
|
113
|
+
inkscape:connector-curvature="0" />
|
114
|
+
<path
|
115
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
116
|
+
d="m 355.71875,277.53125 -0.125,0.0312 -178.9375,47.96875 -1.8125,0.46875 1.8125,0.5 311.625,83.5 0.15625,0.0312 0.125,-0.0625 157.59375,-53.65625 1.5625,-0.53125 -1.59375,-0.4375 -290.28125,-77.78125 -0.125,-0.0312 z m 0,1.03125 L 644.3125,355.90625 488.375,409 178.71875,326 l 177,-47.4375 z"
|
117
|
+
id="path3015"
|
118
|
+
inkscape:connector-curvature="0" />
|
119
|
+
<path
|
120
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
121
|
+
d="m 355.21875,240.9375 0,37.125 1,0 0,-37.125 -1,0 z"
|
122
|
+
id="path3017"
|
123
|
+
inkscape:connector-curvature="0" />
|
124
|
+
<path
|
125
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
126
|
+
d="m 176.28125,202.65625 0,393.28125 1,0 0,-393.28125 -1,0 z"
|
127
|
+
id="path3019"
|
128
|
+
inkscape:connector-curvature="0" />
|
129
|
+
<path
|
130
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
131
|
+
d="m 355.71875,409 -0.125,0.0312 L 177,455.8125 l -1.78125,0.46875 1.78125,0.5 L 488.28125,545 l 0.15625,0.0312 0.125,-0.0625 156.71875,-56.25 1.46875,-0.53125 -1.53125,-0.40625 -289.375,-78.75 -0.125,-0.0312 z m 0,1.03125 287.6875,78.28125 L 488.375,544 179.03125,456.3125 355.71875,410.03125 z"
|
132
|
+
id="path3021"
|
133
|
+
inkscape:connector-curvature="0" />
|
134
|
+
<path
|
135
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
136
|
+
d="m 355.71875,544 -0.15625,0.0312 -178.5625,52.3125 0.28125,0.96875 178.4375,-52.28125 289.59375,80.25 0.28125,-0.96875 -289.75,-80.28125 -0.125,-0.0312 z"
|
137
|
+
id="path3023"
|
138
|
+
inkscape:connector-curvature="0" />
|
139
|
+
<path
|
140
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
141
|
+
d="m 355.21875,374.34375 0,35.15625 1,0 0,-35.15625 -1,0 z"
|
142
|
+
id="path3025"
|
143
|
+
inkscape:connector-curvature="0" />
|
144
|
+
<path
|
145
|
+
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
|
146
|
+
d="m 355.1875,507.03125 0,37.4375 1.03125,0 0,-37.4375 -1.03125,0 z"
|
147
|
+
id="path3027"
|
148
|
+
inkscape:connector-curvature="0" />
|
149
|
+
</g>
|
150
|
+
</svg>
|
data/contrib/rdoc.css
ADDED
@@ -0,0 +1,412 @@
|
|
1
|
+
/* Forked from the Darkfish templates rdoc.css file, much hacked, probably
|
2
|
+
* imperfect */
|
3
|
+
|
4
|
+
html { max-width: 960px; margin: 0 auto; }
|
5
|
+
body {
|
6
|
+
font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
|
7
|
+
}
|
8
|
+
body.file-popup {
|
9
|
+
font-size: 90%;
|
10
|
+
margin-left: 0;
|
11
|
+
}
|
12
|
+
|
13
|
+
h1 {
|
14
|
+
color: #4183C4;
|
15
|
+
}
|
16
|
+
|
17
|
+
:link,
|
18
|
+
:visited {
|
19
|
+
color: #4183C4;
|
20
|
+
text-decoration: none;
|
21
|
+
}
|
22
|
+
:link:hover,
|
23
|
+
:visited:hover {
|
24
|
+
border-bottom: 1px dotted #4183C4;
|
25
|
+
}
|
26
|
+
|
27
|
+
pre, pre.description {
|
28
|
+
font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
|
29
|
+
padding: 1em;
|
30
|
+
overflow: auto;
|
31
|
+
line-height: 1.4;
|
32
|
+
}
|
33
|
+
|
34
|
+
/* @group Generic Classes */
|
35
|
+
|
36
|
+
.initially-hidden {
|
37
|
+
display: none;
|
38
|
+
}
|
39
|
+
|
40
|
+
#search-field {
|
41
|
+
width: 98%;
|
42
|
+
}
|
43
|
+
|
44
|
+
.missing-docs {
|
45
|
+
font-size: 120%;
|
46
|
+
background: white url(images/wrench_orange.png) no-repeat 4px center;
|
47
|
+
color: #ccc;
|
48
|
+
line-height: 2em;
|
49
|
+
border: 1px solid #d00;
|
50
|
+
opacity: 1;
|
51
|
+
text-indent: 24px;
|
52
|
+
letter-spacing: 3px;
|
53
|
+
font-weight: bold;
|
54
|
+
-webkit-border-radius: 5px;
|
55
|
+
-moz-border-radius: 5px;
|
56
|
+
}
|
57
|
+
|
58
|
+
.target-section {
|
59
|
+
border: 2px solid #dcce90;
|
60
|
+
border-left-width: 8px;
|
61
|
+
background: #fff3c2;
|
62
|
+
}
|
63
|
+
|
64
|
+
/* @end */
|
65
|
+
|
66
|
+
/* @group Index Page, Standalone file pages */
|
67
|
+
.indexpage ul {
|
68
|
+
line-height: 160%;
|
69
|
+
list-style: none;
|
70
|
+
}
|
71
|
+
.indexpage ul :link,
|
72
|
+
.indexpage ul :visited {
|
73
|
+
font-size: 16px;
|
74
|
+
}
|
75
|
+
|
76
|
+
.indexpage li {
|
77
|
+
padding-left: 20px;
|
78
|
+
}
|
79
|
+
|
80
|
+
.indexpage ul > li {
|
81
|
+
background: url(images/bullet_black.png) no-repeat left 4px;
|
82
|
+
}
|
83
|
+
.indexpage li.method {
|
84
|
+
background: url(images/plugin.png) no-repeat left 4px;
|
85
|
+
}
|
86
|
+
.indexpage li.module {
|
87
|
+
background: url(images/package.png) no-repeat left 4px;
|
88
|
+
}
|
89
|
+
.indexpage li.class {
|
90
|
+
background: url(images/ruby.png) no-repeat left 4px;
|
91
|
+
}
|
92
|
+
.indexpage li.file {
|
93
|
+
background: url(images/page_white_text.png) no-repeat left 4px;
|
94
|
+
}
|
95
|
+
.indexpage li li {
|
96
|
+
background: url(images/tag_blue.png) no-repeat left 4px;
|
97
|
+
}
|
98
|
+
.indexpage li .toc-toggle {
|
99
|
+
width: 16px;
|
100
|
+
height: 16px;
|
101
|
+
background: url(images/add.png) no-repeat;
|
102
|
+
}
|
103
|
+
|
104
|
+
.indexpage li .toc-toggle.open {
|
105
|
+
background: url(images/delete.png) no-repeat;
|
106
|
+
}
|
107
|
+
|
108
|
+
/* @end */
|
109
|
+
|
110
|
+
/* @group Top-Level Structure */
|
111
|
+
|
112
|
+
.project-section, #file-metadata, #class-metadata {
|
113
|
+
display: block;
|
114
|
+
background: #f5f5f5;
|
115
|
+
margin-bottom: 1em;
|
116
|
+
padding: 0.5em;
|
117
|
+
}
|
118
|
+
.project-section h3, #file-metadata h3, #class-metadata h3 {
|
119
|
+
margin: 0;
|
120
|
+
}
|
121
|
+
|
122
|
+
#metadata {
|
123
|
+
float: left;
|
124
|
+
width: 280px;
|
125
|
+
}
|
126
|
+
|
127
|
+
#documentation {
|
128
|
+
margin: 2em 1em 2em 300px;
|
129
|
+
}
|
130
|
+
|
131
|
+
#validator-badges {
|
132
|
+
clear: both;
|
133
|
+
margin: 1em 1em 2em;
|
134
|
+
font-size: smaller;
|
135
|
+
}
|
136
|
+
|
137
|
+
/* @end */
|
138
|
+
|
139
|
+
/* @group Metadata Section */
|
140
|
+
|
141
|
+
#metadata ul,
|
142
|
+
#metadata dl,
|
143
|
+
#metadata p {
|
144
|
+
padding: 0px;
|
145
|
+
list-style: none;
|
146
|
+
}
|
147
|
+
|
148
|
+
dl.svninfo {
|
149
|
+
color: #666;
|
150
|
+
margin: 0;
|
151
|
+
}
|
152
|
+
dl.svninfo dt {
|
153
|
+
font-weight: bold;
|
154
|
+
}
|
155
|
+
|
156
|
+
ul.link-list li {
|
157
|
+
white-space: nowrap;
|
158
|
+
}
|
159
|
+
ul.link-list .type {
|
160
|
+
font-size: 8px;
|
161
|
+
text-transform: uppercase;
|
162
|
+
color: white;
|
163
|
+
background: #969696;
|
164
|
+
}
|
165
|
+
|
166
|
+
/* @end */
|
167
|
+
|
168
|
+
/* @group Documentation Section */
|
169
|
+
|
170
|
+
.note-list {
|
171
|
+
margin: 8px 0;
|
172
|
+
}
|
173
|
+
|
174
|
+
.label-list {
|
175
|
+
margin: 8px 1.5em;
|
176
|
+
border: 1px solid #ccc;
|
177
|
+
}
|
178
|
+
.description .label-list {
|
179
|
+
font-size: 14px;
|
180
|
+
}
|
181
|
+
|
182
|
+
.note-list dt {
|
183
|
+
font-weight: bold;
|
184
|
+
}
|
185
|
+
.note-list dd {
|
186
|
+
}
|
187
|
+
|
188
|
+
.label-list dt {
|
189
|
+
font-weight: bold;
|
190
|
+
background: #ddd;
|
191
|
+
}
|
192
|
+
.label-list dd {
|
193
|
+
}
|
194
|
+
.label-list dd + dt,
|
195
|
+
.note-list dd + dt {
|
196
|
+
margin-top: 0.7em;
|
197
|
+
}
|
198
|
+
|
199
|
+
#documentation .section {
|
200
|
+
font-size: 90%;
|
201
|
+
}
|
202
|
+
|
203
|
+
#documentation h2.section-header {
|
204
|
+
color: #333;
|
205
|
+
font-size: 175%;
|
206
|
+
}
|
207
|
+
|
208
|
+
.documentation-section-title {
|
209
|
+
position: relative;
|
210
|
+
}
|
211
|
+
.documentation-section-title .section-click-top {
|
212
|
+
position: absolute;
|
213
|
+
top: 6px;
|
214
|
+
right: 12px;
|
215
|
+
font-size: 10px;
|
216
|
+
visibility: hidden;
|
217
|
+
}
|
218
|
+
|
219
|
+
.documentation-section-title:hover .section-click-top {
|
220
|
+
visibility: visible;
|
221
|
+
}
|
222
|
+
|
223
|
+
#documentation h3.section-header {
|
224
|
+
color: #333;
|
225
|
+
font-size: 150%;
|
226
|
+
}
|
227
|
+
|
228
|
+
#constants-list > dl,
|
229
|
+
#attributes-list > dl {
|
230
|
+
margin: 1em 0 2em;
|
231
|
+
border: 0;
|
232
|
+
}
|
233
|
+
#constants-list > dl dt,
|
234
|
+
#attributes-list > dl dt {
|
235
|
+
font-weight: bold;
|
236
|
+
font-family: Monaco, "Andale Mono";
|
237
|
+
background: inherit;
|
238
|
+
}
|
239
|
+
#constants-list > dl dt a,
|
240
|
+
#attributes-list > dl dt a {
|
241
|
+
color: inherit;
|
242
|
+
}
|
243
|
+
#constants-list > dl dd,
|
244
|
+
#attributes-list > dl dd {
|
245
|
+
margin: 0 0 1em 0;
|
246
|
+
color: #666;
|
247
|
+
}
|
248
|
+
|
249
|
+
.documentation-section h2 {
|
250
|
+
position: relative;
|
251
|
+
}
|
252
|
+
|
253
|
+
.documentation-section h2 a {
|
254
|
+
position: absolute;
|
255
|
+
top: 8px;
|
256
|
+
right: 10px;
|
257
|
+
font-size: 12px;
|
258
|
+
color: #9b9877;
|
259
|
+
visibility: hidden;
|
260
|
+
}
|
261
|
+
|
262
|
+
.documentation-section h2:hover a {
|
263
|
+
visibility: visible;
|
264
|
+
}
|
265
|
+
|
266
|
+
/* @group Method Details */
|
267
|
+
|
268
|
+
#documentation .method-source-code {
|
269
|
+
display: none;
|
270
|
+
}
|
271
|
+
|
272
|
+
#documentation .method-detail {
|
273
|
+
margin: 0.2em 0.2em;
|
274
|
+
padding: 0.5em;
|
275
|
+
}
|
276
|
+
#documentation .method-detail:hover {
|
277
|
+
background-color: #f5f5f5;
|
278
|
+
}
|
279
|
+
#documentation .method-heading {
|
280
|
+
cursor: pointer;
|
281
|
+
position: relative;
|
282
|
+
font-size: 125%;
|
283
|
+
line-height: 125%;
|
284
|
+
font-weight: bold;
|
285
|
+
color: #333;
|
286
|
+
background: url(images/brick.png) no-repeat left bottom;
|
287
|
+
padding-left: 20px;
|
288
|
+
}
|
289
|
+
#documentation .method-heading :link,
|
290
|
+
#documentation .method-heading :visited {
|
291
|
+
color: inherit;
|
292
|
+
}
|
293
|
+
#documentation .method-click-advice {
|
294
|
+
position: absolute;
|
295
|
+
right: 5px;
|
296
|
+
font-size: 10px;
|
297
|
+
color: #aaa;
|
298
|
+
visibility: hidden;
|
299
|
+
background: url(images/zoom.png) no-repeat right 5px;
|
300
|
+
padding-right: 20px;
|
301
|
+
overflow: show;
|
302
|
+
}
|
303
|
+
#documentation .method-heading:hover .method-click-advice {
|
304
|
+
visibility: visible;
|
305
|
+
}
|
306
|
+
|
307
|
+
#documentation .method-alias .method-heading {
|
308
|
+
color: #666;
|
309
|
+
background: url(images/brick_link.png) no-repeat left bottom;
|
310
|
+
}
|
311
|
+
|
312
|
+
#documentation .method-description,
|
313
|
+
#documentation .aliases {
|
314
|
+
margin: 0 20px;
|
315
|
+
color: #666;
|
316
|
+
}
|
317
|
+
|
318
|
+
#documentation .method-description p,
|
319
|
+
#documentation .aliases p {
|
320
|
+
line-height: 1.2em;
|
321
|
+
}
|
322
|
+
|
323
|
+
#documentation .aliases {
|
324
|
+
font-style: italic;
|
325
|
+
cursor: default;
|
326
|
+
}
|
327
|
+
#documentation .method-description p {
|
328
|
+
margin-bottom: 0.5em;
|
329
|
+
}
|
330
|
+
#documentation .method-description ul {
|
331
|
+
margin-left: 1.5em;
|
332
|
+
}
|
333
|
+
|
334
|
+
#documentation .attribute-method-heading {
|
335
|
+
background: url(images/tag_green.png) no-repeat left bottom;
|
336
|
+
}
|
337
|
+
#documentation #attribute-method-details .method-detail:hover {
|
338
|
+
background-color: transparent;
|
339
|
+
cursor: default;
|
340
|
+
}
|
341
|
+
#documentation .attribute-access-type {
|
342
|
+
font-size: 60%;
|
343
|
+
text-transform: uppercase;
|
344
|
+
vertical-align: super;
|
345
|
+
}
|
346
|
+
|
347
|
+
.method-section .method-source-code {
|
348
|
+
background: white;
|
349
|
+
}
|
350
|
+
|
351
|
+
/* @group Source Code */
|
352
|
+
|
353
|
+
.ruby-constant .ruby-keyword .ruby-ivar .ruby-operator .ruby-identifier
|
354
|
+
.ruby-node .ruby-comment .ruby-regexp .ruby-value {
|
355
|
+
background: transparent;
|
356
|
+
}
|
357
|
+
|
358
|
+
/* Thanks GitHub!!! */
|
359
|
+
.ruby-constant { color: #458; font-weight: bold; }
|
360
|
+
.ruby-keyword { color: black; font-weight: bold; }
|
361
|
+
.ruby-ivar { color: teal; }
|
362
|
+
.ruby-operator { color: #000; }
|
363
|
+
.ruby-identifier { color: black; }
|
364
|
+
.ruby-node { color: red; }
|
365
|
+
.ruby-comment { color: #998; font-weight: bold; }
|
366
|
+
.ruby-regexp { color: #009926; }
|
367
|
+
.ruby-value { color: #099; }
|
368
|
+
.ruby-string { color: red; }
|
369
|
+
|
370
|
+
/* @group search results */
|
371
|
+
|
372
|
+
#search-section .section-header {
|
373
|
+
margin: 0;
|
374
|
+
padding: 0;
|
375
|
+
}
|
376
|
+
|
377
|
+
#search-results {
|
378
|
+
width: 100%;
|
379
|
+
list-style: none;
|
380
|
+
margin: 0;
|
381
|
+
padding: 0;
|
382
|
+
}
|
383
|
+
|
384
|
+
#search-results h1 {
|
385
|
+
font-size: 1em;
|
386
|
+
font-weight: normal;
|
387
|
+
text-shadow: none;
|
388
|
+
}
|
389
|
+
|
390
|
+
#search-results .current {
|
391
|
+
background: #eee;
|
392
|
+
}
|
393
|
+
|
394
|
+
#search-results li {
|
395
|
+
list-style: none;
|
396
|
+
line-height: 1em;
|
397
|
+
padding: 0.5em;
|
398
|
+
border-bottom: 1px solid black;
|
399
|
+
}
|
400
|
+
|
401
|
+
#search-results .search-namespace {
|
402
|
+
font-weight: bold;
|
403
|
+
}
|
404
|
+
|
405
|
+
#search-results li em {
|
406
|
+
background: yellow;
|
407
|
+
font-style: normal;
|
408
|
+
}
|
409
|
+
|
410
|
+
#search-results pre {
|
411
|
+
margin: 0.5em;
|
412
|
+
}
|