polites 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.rubocop.yml +18 -0
- data/.tool-versions +1 -0
- data/.travis.yml +6 -0
- data/.yardopts +1 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +128 -0
- data/LICENSE.txt +21 -0
- data/README.md +70 -0
- data/Rakefile +9 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/exe/polites +8 -0
- data/lib/polites.rb +33 -0
- data/lib/polites/block.rb +65 -0
- data/lib/polites/block/blockquote.rb +8 -0
- data/lib/polites/block/code_block.rb +18 -0
- data/lib/polites/block/divider.rb +8 -0
- data/lib/polites/block/heading.rb +8 -0
- data/lib/polites/block/heading1.rb +8 -0
- data/lib/polites/block/heading2.rb +8 -0
- data/lib/polites/block/heading3.rb +8 -0
- data/lib/polites/block/heading4.rb +8 -0
- data/lib/polites/block/heading5.rb +8 -0
- data/lib/polites/block/heading6.rb +8 -0
- data/lib/polites/block/list.rb +14 -0
- data/lib/polites/block/ordered_list.rb +8 -0
- data/lib/polites/block/paragraph.rb +8 -0
- data/lib/polites/block/unordered_list.rb +8 -0
- data/lib/polites/cli.rb +52 -0
- data/lib/polites/convert.rb +29 -0
- data/lib/polites/doc/_index.html +85 -0
- data/lib/polites/doc/class_list.html +51 -0
- data/lib/polites/doc/css/common.css +1 -0
- data/lib/polites/doc/css/full_list.css +58 -0
- data/lib/polites/doc/css/style.css +496 -0
- data/lib/polites/doc/file_list.html +51 -0
- data/lib/polites/doc/frames.html +17 -0
- data/lib/polites/doc/index.html +85 -0
- data/lib/polites/doc/js/app.js +314 -0
- data/lib/polites/doc/js/full_list.js +216 -0
- data/lib/polites/doc/js/jquery.js +4 -0
- data/lib/polites/doc/method_list.html +51 -0
- data/lib/polites/doc/top-level-namespace.html +100 -0
- data/lib/polites/file.rb +67 -0
- data/lib/polites/html_formatter.rb +119 -0
- data/lib/polites/list_indenter.rb +34 -0
- data/lib/polites/markup.rb +31 -0
- data/lib/polites/nanoc.rb +46 -0
- data/lib/polites/nanoc/data_source.rb +93 -0
- data/lib/polites/nanoc/embedded_images_filter.rb +22 -0
- data/lib/polites/nanoc/extract_file_filter.rb +21 -0
- data/lib/polites/node.rb +28 -0
- data/lib/polites/parser.rb +174 -0
- data/lib/polites/plist.rb +28 -0
- data/lib/polites/range_tag.rb +29 -0
- data/lib/polites/settings.rb +35 -0
- data/lib/polites/sheet.rb +63 -0
- data/lib/polites/simple_tag.rb +22 -0
- data/lib/polites/span.rb +60 -0
- data/lib/polites/span/annotation.rb +18 -0
- data/lib/polites/span/code.rb +8 -0
- data/lib/polites/span/delete.rb +8 -0
- data/lib/polites/span/emph.rb +8 -0
- data/lib/polites/span/footnote.rb +18 -0
- data/lib/polites/span/image.rb +29 -0
- data/lib/polites/span/link.rb +21 -0
- data/lib/polites/span/mark.rb +8 -0
- data/lib/polites/span/strong.rb +8 -0
- data/lib/polites/tag.rb +20 -0
- data/lib/polites/text.rb +20 -0
- data/lib/polites/version.rb +5 -0
- data/polites-nanoc.gemspec +31 -0
- data/polites.gemspec +33 -0
- metadata +153 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../polites'
|
4
|
+
require_relative './node'
|
5
|
+
|
6
|
+
module Polites
|
7
|
+
# A block represents a structural element in a Polites document, mapping to
|
8
|
+
# block-level elements in HTML. Examples include paragraphs and headings.
|
9
|
+
#
|
10
|
+
# Blocks may technically contain other blocks, as well as {Text} and {Span}
|
11
|
+
# elements.
|
12
|
+
class Block < Node
|
13
|
+
# Build the proper kind of span from the given arguments.
|
14
|
+
#
|
15
|
+
# @param [Array<Node>] children
|
16
|
+
# @param [String] kind the type Polites has given to this node.
|
17
|
+
# @param [Fixnum] level the indentation level used by list items.
|
18
|
+
# @param [String] syntax the syntax attribute used in code blocks.
|
19
|
+
# @raise [ParseError] when encountering unexpected `kind`
|
20
|
+
# @return [Span]
|
21
|
+
def self.build(children = [], kind: 'paragraph', level: 0, syntax: nil)
|
22
|
+
case kind
|
23
|
+
when 'heading1'
|
24
|
+
Heading1.new(children)
|
25
|
+
when 'heading2'
|
26
|
+
Heading2.new(children)
|
27
|
+
when 'heading3'
|
28
|
+
Heading3.new(children)
|
29
|
+
when 'heading4'
|
30
|
+
Heading4.new(children)
|
31
|
+
when 'heading5'
|
32
|
+
Heading5.new(children)
|
33
|
+
when 'heading6'
|
34
|
+
Heading6.new(children)
|
35
|
+
when 'paragraph'
|
36
|
+
Paragraph.new(children)
|
37
|
+
when 'unorderedList'
|
38
|
+
UnorderedList.new(children, level)
|
39
|
+
when 'orderedList'
|
40
|
+
OrderedList.new(children, level)
|
41
|
+
when 'blockquote'
|
42
|
+
Blockquote.new(children)
|
43
|
+
when 'divider'
|
44
|
+
Divider.new(children)
|
45
|
+
when 'codeblock'
|
46
|
+
CodeBlock.new(children, syntax)
|
47
|
+
else
|
48
|
+
raise ParseError, "unknown block type #{kind.inspect}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
require_relative './block/heading1'
|
55
|
+
require_relative './block/heading2'
|
56
|
+
require_relative './block/heading3'
|
57
|
+
require_relative './block/heading4'
|
58
|
+
require_relative './block/heading5'
|
59
|
+
require_relative './block/heading6'
|
60
|
+
require_relative './block/paragraph'
|
61
|
+
require_relative './block/ordered_list'
|
62
|
+
require_relative './block/unordered_list'
|
63
|
+
require_relative './block/blockquote'
|
64
|
+
require_relative './block/divider'
|
65
|
+
require_relative './block/code_block'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../block'
|
4
|
+
|
5
|
+
module Polites
|
6
|
+
class Block::CodeBlock < Block
|
7
|
+
attr_reader :syntax
|
8
|
+
|
9
|
+
def initialize(children, syntax)
|
10
|
+
@syntax = syntax
|
11
|
+
super(children)
|
12
|
+
end
|
13
|
+
|
14
|
+
def eql?(other)
|
15
|
+
super && syntax == other.syntax
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/polites/cli.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require_relative './convert'
|
5
|
+
require_relative './version'
|
6
|
+
|
7
|
+
module Polites
|
8
|
+
# Provides the implentation of the command-line interface, exposing functions
|
9
|
+
# to be called from a shell or other programs.
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Cli.new(stdin: $stdin, $stdout: stdout).call(ARGV)
|
13
|
+
class Cli
|
14
|
+
# @param [IO] stdin to read input from
|
15
|
+
# @param [IO] stdout to write output to
|
16
|
+
# @param [Hash] options default options
|
17
|
+
def initialize(stdin:, stdout:, options: {})
|
18
|
+
@stdin = stdin
|
19
|
+
@stdout = stdout
|
20
|
+
@options = options
|
21
|
+
end
|
22
|
+
|
23
|
+
# Invoke the program with some options.
|
24
|
+
#
|
25
|
+
# @param [Array<String>] args arguments given to the program invocation.
|
26
|
+
# @return [nil]
|
27
|
+
def call(args)
|
28
|
+
filenames = option_parser.parse(args, into: @options)
|
29
|
+
if @options[:help]
|
30
|
+
@stdout.puts option_parser
|
31
|
+
elsif @options[:version]
|
32
|
+
@stdout.puts Polites::VERSION
|
33
|
+
elsif filenames.any?
|
34
|
+
filenames.each do |filename|
|
35
|
+
@stdout.puts Convert.new.call(filename)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def option_parser
|
44
|
+
@option_parser ||=
|
45
|
+
OptionParser.new do |o|
|
46
|
+
o.banner = 'Usage: polites [options] FILE'
|
47
|
+
o.on_tail '-v', '--version', 'Show current version'
|
48
|
+
o.on_tail '-h', '--help', 'Show this message'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative './parser'
|
4
|
+
require_relative './html_formatter'
|
5
|
+
require_relative './file'
|
6
|
+
|
7
|
+
module Polites
|
8
|
+
# Convert a Polites file to another format.
|
9
|
+
class Convert
|
10
|
+
# @param [Polites::Parser] parser
|
11
|
+
# @param [Polites::HtmlFormatter] formatter
|
12
|
+
def initialize(parser: Polites::Parser.new, formatter: Polites::HtmlFormatter.new)
|
13
|
+
@parser = parser
|
14
|
+
@formatter = formatter
|
15
|
+
end
|
16
|
+
|
17
|
+
# Convert the contents of `filename` to HTML and return the result as a String.
|
18
|
+
#
|
19
|
+
# @param [#to_s, #to_path] filename
|
20
|
+
# @return [String]
|
21
|
+
def call(filename)
|
22
|
+
File.open(filename) do |f|
|
23
|
+
f.content
|
24
|
+
.then { |c| @parser.parse_sheet(c) }
|
25
|
+
.then { |c| @formatter.call(c) }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Documentation by YARD 0.9.25
|
8
|
+
|
9
|
+
</title>
|
10
|
+
|
11
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
14
|
+
|
15
|
+
<script type="text/javascript">
|
16
|
+
pathId = null;
|
17
|
+
relpath = '';
|
18
|
+
</script>
|
19
|
+
|
20
|
+
|
21
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
24
|
+
|
25
|
+
|
26
|
+
</head>
|
27
|
+
<body>
|
28
|
+
<div class="nav_wrap">
|
29
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
30
|
+
<div id="resizer"></div>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div id="main" tabindex="-1">
|
34
|
+
<div id="header">
|
35
|
+
<div id="menu">
|
36
|
+
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div id="search">
|
40
|
+
|
41
|
+
<a class="full_list_link" id="class_list_link"
|
42
|
+
href="class_list.html">
|
43
|
+
|
44
|
+
<svg width="24" height="24">
|
45
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
46
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
47
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
48
|
+
</svg>
|
49
|
+
</a>
|
50
|
+
|
51
|
+
</div>
|
52
|
+
<div class="clear"></div>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<div id="content"><h1 class="noborder title">Documentation by YARD 0.9.25</h1>
|
56
|
+
<div id="listing">
|
57
|
+
<h1 class="alphaindex">Alphabetic Index</h1>
|
58
|
+
|
59
|
+
<div class="clear"></div>
|
60
|
+
<h2>Namespace Listing A-Z</h2>
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
<table>
|
66
|
+
<tr>
|
67
|
+
<td valign='top' width="33%">
|
68
|
+
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
</table>
|
72
|
+
|
73
|
+
</div>
|
74
|
+
|
75
|
+
</div>
|
76
|
+
|
77
|
+
<div id="footer">
|
78
|
+
Generated on Mon Nov 30 11:14:54 2020 by
|
79
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
80
|
+
0.9.25 (ruby-2.7.2).
|
81
|
+
</div>
|
82
|
+
|
83
|
+
</div>
|
84
|
+
</body>
|
85
|
+
</html>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
5
|
+
<meta charset="utf-8" />
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" />
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" />
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
|
16
|
+
|
17
|
+
|
18
|
+
<title>Class List</title>
|
19
|
+
<base id="base_target" target="_parent" />
|
20
|
+
</head>
|
21
|
+
<body>
|
22
|
+
<div id="content">
|
23
|
+
<div class="fixed_header">
|
24
|
+
<h1 id="full_list_header">Class List</h1>
|
25
|
+
<div id="full_list_nav">
|
26
|
+
|
27
|
+
<span><a target="_self" href="class_list.html">
|
28
|
+
Classes
|
29
|
+
</a></span>
|
30
|
+
|
31
|
+
<span><a target="_self" href="method_list.html">
|
32
|
+
Methods
|
33
|
+
</a></span>
|
34
|
+
|
35
|
+
<span><a target="_self" href="file_list.html">
|
36
|
+
Files
|
37
|
+
</a></span>
|
38
|
+
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div id="search">Search: <input type="text" /></div>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<ul id="full_list" class="class">
|
45
|
+
<li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
|
46
|
+
|
47
|
+
|
48
|
+
</ul>
|
49
|
+
</div>
|
50
|
+
</body>
|
51
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
/* Override this file with custom rules */
|
@@ -0,0 +1,58 @@
|
|
1
|
+
body {
|
2
|
+
margin: 0;
|
3
|
+
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
4
|
+
font-size: 13px;
|
5
|
+
height: 101%;
|
6
|
+
overflow-x: hidden;
|
7
|
+
background: #fafafa;
|
8
|
+
}
|
9
|
+
|
10
|
+
h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
|
11
|
+
.clear { clear: both; }
|
12
|
+
.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; }
|
13
|
+
#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
|
14
|
+
#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
|
15
|
+
#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; }
|
16
|
+
#full_list ul { padding: 0; }
|
17
|
+
#full_list li { padding: 0; margin: 0; list-style: none; }
|
18
|
+
#full_list li .item { padding: 5px 5px 5px 12px; }
|
19
|
+
#noresults { padding: 7px 12px; background: #fff; }
|
20
|
+
#content.insearch #noresults { margin-left: 7px; }
|
21
|
+
li.collapsed ul { display: none; }
|
22
|
+
li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
|
23
|
+
li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
|
24
|
+
li { color: #888; cursor: pointer; }
|
25
|
+
li.deprecated { text-decoration: line-through; font-style: italic; }
|
26
|
+
li.odd { background: #f0f0f0; }
|
27
|
+
li.even { background: #fafafa; }
|
28
|
+
.item:hover { background: #ddd; }
|
29
|
+
li small:before { content: "("; }
|
30
|
+
li small:after { content: ")"; }
|
31
|
+
li small.search_info { display: none; }
|
32
|
+
a, a:visited { text-decoration: none; color: #05a; }
|
33
|
+
li.clicked > .item { background: #05a; color: #ccc; }
|
34
|
+
li.clicked > .item a, li.clicked > .item a:visited { color: #eee; }
|
35
|
+
li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; }
|
36
|
+
li.collapsed.clicked a.toggle { background-position: top right; }
|
37
|
+
#search input { border: 1px solid #bbb; border-radius: 3px; }
|
38
|
+
#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; }
|
39
|
+
#full_list_nav a, #nav a:visited { color: #358; }
|
40
|
+
#full_list_nav a:hover { background: transparent; color: #5af; }
|
41
|
+
#full_list_nav span:after { content: ' | '; }
|
42
|
+
#full_list_nav span:last-child:after { content: ''; }
|
43
|
+
|
44
|
+
#content h1 { margin-top: 0; }
|
45
|
+
li { white-space: nowrap; cursor: normal; }
|
46
|
+
li small { display: block; font-size: 0.8em; }
|
47
|
+
li small:before { content: ""; }
|
48
|
+
li small:after { content: ""; }
|
49
|
+
li small.search_info { display: none; }
|
50
|
+
#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
|
51
|
+
#content.insearch #search { background-position: center right; }
|
52
|
+
#search input { width: 110px; }
|
53
|
+
|
54
|
+
#full_list.insearch ul { display: block; }
|
55
|
+
#full_list.insearch .item { display: none; }
|
56
|
+
#full_list.insearch .found { display: block; padding-left: 11px !important; }
|
57
|
+
#full_list.insearch li a.toggle { display: none; }
|
58
|
+
#full_list.insearch li small.search_info { display: block; }
|