polites 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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; }
|