rdoc 6.12.0 → 6.14.1
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 +4 -4
- data/README.rdoc +3 -1
- data/lib/rdoc/code_object/alias.rb +2 -9
- data/lib/rdoc/code_object/any_method.rb +9 -14
- data/lib/rdoc/code_object/attr.rb +6 -9
- data/lib/rdoc/code_object/class_module.rb +40 -23
- data/lib/rdoc/code_object/constant.rb +5 -5
- data/lib/rdoc/code_object/context/section.rb +8 -7
- data/lib/rdoc/code_object/context.rb +23 -65
- data/lib/rdoc/code_object/method_attr.rb +9 -28
- data/lib/rdoc/code_object/mixin.rb +3 -3
- data/lib/rdoc/code_object/normal_class.rb +1 -1
- data/lib/rdoc/code_object/normal_module.rb +1 -1
- data/lib/rdoc/code_object/require.rb +1 -1
- data/lib/rdoc/code_object/single_class.rb +1 -1
- data/lib/rdoc/code_object/top_level.rb +12 -30
- data/lib/rdoc/code_object.rb +6 -37
- data/lib/rdoc/comment.rb +7 -10
- data/lib/rdoc/cross_reference.rb +3 -3
- data/lib/rdoc/encoding.rb +4 -4
- data/lib/rdoc/erb_partial.rb +1 -1
- data/lib/rdoc/erbio.rb +2 -2
- data/lib/rdoc/generator/darkfish.rb +97 -109
- data/lib/rdoc/generator/json_index.rb +4 -20
- data/lib/rdoc/generator/markup.rb +14 -2
- data/lib/rdoc/generator/pot/message_extractor.rb +6 -6
- data/lib/rdoc/generator/pot/po.rb +1 -1
- data/lib/rdoc/generator/pot/po_entry.rb +7 -7
- data/lib/rdoc/generator/pot.rb +1 -6
- data/lib/rdoc/generator/ri.rb +1 -1
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +5 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -30
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/class.rhtml +15 -0
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +15 -0
- data/lib/rdoc/markdown.kpeg +7 -5
- data/lib/rdoc/markdown.rb +34 -21
- data/lib/rdoc/markup/attribute_manager.rb +5 -5
- data/lib/rdoc/markup/attributes.rb +3 -3
- data/lib/rdoc/markup/blank_line.rb +2 -2
- data/lib/rdoc/markup/block_quote.rb +1 -1
- data/lib/rdoc/markup/document.rb +8 -8
- data/lib/rdoc/markup/formatter.rb +12 -12
- data/lib/rdoc/markup/hard_break.rb +3 -3
- data/lib/rdoc/markup/heading.rb +11 -5
- data/lib/rdoc/markup/include.rb +3 -3
- data/lib/rdoc/markup/indented_paragraph.rb +3 -3
- data/lib/rdoc/markup/list.rb +4 -4
- data/lib/rdoc/markup/list_item.rb +4 -4
- data/lib/rdoc/markup/paragraph.rb +2 -2
- data/lib/rdoc/markup/parser.rb +11 -11
- data/lib/rdoc/markup/pre_process.rb +6 -6
- data/lib/rdoc/markup/raw.rb +5 -5
- data/lib/rdoc/markup/rule.rb +2 -2
- data/lib/rdoc/markup/table.rb +4 -4
- data/lib/rdoc/markup/to_ansi.rb +3 -3
- data/lib/rdoc/markup/to_bs.rb +6 -6
- data/lib/rdoc/markup/to_html.rb +25 -16
- data/lib/rdoc/markup/to_html_crossref.rb +5 -5
- data/lib/rdoc/markup/to_html_snippet.rb +17 -17
- data/lib/rdoc/markup/to_joined_paragraph.rb +1 -1
- data/lib/rdoc/markup/to_label.rb +6 -5
- data/lib/rdoc/markup/to_markdown.rb +12 -12
- data/lib/rdoc/markup/to_rdoc.rb +29 -28
- data/lib/rdoc/markup/to_table_of_contents.rb +3 -3
- data/lib/rdoc/markup/to_test.rb +1 -1
- data/lib/rdoc/markup/to_tt_only.rb +8 -8
- data/lib/rdoc/markup/verbatim.rb +3 -3
- data/lib/rdoc/markup.rb +3 -3
- data/lib/rdoc/options.rb +31 -12
- data/lib/rdoc/parser/c.rb +20 -23
- data/lib/rdoc/parser/changelog.rb +9 -9
- data/lib/rdoc/parser/prism_ruby.rb +9 -16
- data/lib/rdoc/parser/ruby.rb +50 -53
- data/lib/rdoc/parser/simple.rb +2 -2
- data/lib/rdoc/parser.rb +8 -8
- data/lib/rdoc/rd/inline.rb +4 -4
- data/lib/rdoc/rd.rb +1 -1
- data/lib/rdoc/rdoc.rb +11 -26
- data/lib/rdoc/ri/driver.rb +60 -52
- data/lib/rdoc/ri/paths.rb +2 -2
- data/lib/rdoc/ri/task.rb +1 -1
- data/lib/rdoc/rubygems_hook.rb +14 -17
- data/lib/rdoc/servlet.rb +23 -22
- data/lib/rdoc/stats/normal.rb +1 -1
- data/lib/rdoc/stats/quiet.rb +1 -1
- data/lib/rdoc/stats/verbose.rb +3 -3
- data/lib/rdoc/stats.rb +14 -14
- data/lib/rdoc/store.rb +39 -43
- data/lib/rdoc/task.rb +2 -2
- data/lib/rdoc/text.rb +13 -13
- data/lib/rdoc/token_stream.rb +1 -1
- data/lib/rdoc/tom_doc.rb +7 -7
- data/lib/rdoc/version.rb +1 -1
- data/man/ri.1 +2 -0
- data/rdoc.gemspec +69 -0
- metadata +18 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +0 -19
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +0 -9
data/lib/rdoc/markup/heading.rb
CHANGED
@@ -27,7 +27,7 @@ RDoc::Markup::Heading =
|
|
27
27
|
|
28
28
|
@to_html = RDoc::Markup::ToHtml.new nil
|
29
29
|
|
30
|
-
def @to_html.handle_regexp_CROSSREF
|
30
|
+
def @to_html.handle_regexp_CROSSREF(target)
|
31
31
|
target.text.sub(/^\\/, '')
|
32
32
|
end
|
33
33
|
|
@@ -37,7 +37,7 @@ RDoc::Markup::Heading =
|
|
37
37
|
##
|
38
38
|
# Calls #accept_heading on +visitor+
|
39
39
|
|
40
|
-
def accept
|
40
|
+
def accept(visitor)
|
41
41
|
visitor.accept_heading self
|
42
42
|
end
|
43
43
|
|
@@ -52,7 +52,7 @@ RDoc::Markup::Heading =
|
|
52
52
|
# Creates a fully-qualified label which will include the label from
|
53
53
|
# +context+. This helps keep ids unique in HTML.
|
54
54
|
|
55
|
-
def label
|
55
|
+
def label(context = nil)
|
56
56
|
label = aref
|
57
57
|
|
58
58
|
label = [context.aref, label].compact.join '-' if
|
@@ -66,10 +66,16 @@ RDoc::Markup::Heading =
|
|
66
66
|
# element.
|
67
67
|
|
68
68
|
def plain_html
|
69
|
-
self.
|
69
|
+
text = self.text.dup
|
70
|
+
|
71
|
+
if matched = text.match(/rdoc-image:[^:]+:(.*)/)
|
72
|
+
text = matched[1]
|
73
|
+
end
|
74
|
+
|
75
|
+
self.class.to_html.to_html(text)
|
70
76
|
end
|
71
77
|
|
72
|
-
def pretty_print
|
78
|
+
def pretty_print(q) # :nodoc:
|
73
79
|
q.group 2, "[head: #{level} ", ']' do
|
74
80
|
q.pp text
|
75
81
|
end
|
data/lib/rdoc/markup/include.rb
CHANGED
@@ -20,17 +20,17 @@ class RDoc::Markup::Include
|
|
20
20
|
##
|
21
21
|
# Creates a new include that will import +file+ from +include_path+
|
22
22
|
|
23
|
-
def initialize
|
23
|
+
def initialize(file, include_path)
|
24
24
|
@file = file
|
25
25
|
@include_path = include_path
|
26
26
|
end
|
27
27
|
|
28
|
-
def ==
|
28
|
+
def ==(other) # :nodoc:
|
29
29
|
self.class === other and
|
30
30
|
@file == other.file and @include_path == other.include_path
|
31
31
|
end
|
32
32
|
|
33
|
-
def pretty_print
|
33
|
+
def pretty_print(q) # :nodoc:
|
34
34
|
q.group 2, '[incl ', ']' do
|
35
35
|
q.text file
|
36
36
|
q.breakable
|
@@ -19,14 +19,14 @@ class RDoc::Markup::IndentedParagraph < RDoc::Markup::Raw
|
|
19
19
|
super(*parts)
|
20
20
|
end
|
21
21
|
|
22
|
-
def ==
|
22
|
+
def ==(other) # :nodoc:
|
23
23
|
super and indent == other.indent
|
24
24
|
end
|
25
25
|
|
26
26
|
##
|
27
27
|
# Calls #accept_indented_paragraph on +visitor+
|
28
28
|
|
29
|
-
def accept
|
29
|
+
def accept(visitor)
|
30
30
|
visitor.accept_indented_paragraph self
|
31
31
|
end
|
32
32
|
|
@@ -34,7 +34,7 @@ class RDoc::Markup::IndentedParagraph < RDoc::Markup::Raw
|
|
34
34
|
# Joins the raw paragraph text and converts inline HardBreaks to the
|
35
35
|
# +hard_break+ text followed by the indent.
|
36
36
|
|
37
|
-
def text
|
37
|
+
def text(hard_break = nil)
|
38
38
|
@parts.map do |part|
|
39
39
|
if RDoc::Markup::HardBreak === part then
|
40
40
|
'%1$s%3$*2$s' % [hard_break, @indent, ' '] if hard_break
|
data/lib/rdoc/markup/list.rb
CHANGED
@@ -46,11 +46,11 @@ class RDoc::Markup::List
|
|
46
46
|
##
|
47
47
|
# Appends +item+ to the list
|
48
48
|
|
49
|
-
def <<
|
49
|
+
def <<(item)
|
50
50
|
@items << item
|
51
51
|
end
|
52
52
|
|
53
|
-
def ==
|
53
|
+
def ==(other) # :nodoc:
|
54
54
|
self.class == other.class and
|
55
55
|
@type == other.type and
|
56
56
|
@items == other.items
|
@@ -59,7 +59,7 @@ class RDoc::Markup::List
|
|
59
59
|
##
|
60
60
|
# Runs this list and all its #items through +visitor+
|
61
61
|
|
62
|
-
def accept
|
62
|
+
def accept(visitor)
|
63
63
|
visitor.accept_list_start self
|
64
64
|
|
65
65
|
@items.each do |item|
|
@@ -83,7 +83,7 @@ class RDoc::Markup::List
|
|
83
83
|
@items.last
|
84
84
|
end
|
85
85
|
|
86
|
-
def pretty_print
|
86
|
+
def pretty_print(q) # :nodoc:
|
87
87
|
q.group 2, "[list: #{@type} ", ']' do
|
88
88
|
q.seplist @items do |item|
|
89
89
|
q.pp item
|
@@ -33,11 +33,11 @@ class RDoc::Markup::ListItem
|
|
33
33
|
##
|
34
34
|
# Appends +part+ to the ListItem
|
35
35
|
|
36
|
-
def <<
|
36
|
+
def <<(part)
|
37
37
|
@parts << part
|
38
38
|
end
|
39
39
|
|
40
|
-
def ==
|
40
|
+
def ==(other) # :nodoc:
|
41
41
|
self.class == other.class and
|
42
42
|
@label == other.label and
|
43
43
|
@parts == other.parts
|
@@ -46,7 +46,7 @@ class RDoc::Markup::ListItem
|
|
46
46
|
##
|
47
47
|
# Runs this list item and all its #parts through +visitor+
|
48
48
|
|
49
|
-
def accept
|
49
|
+
def accept(visitor)
|
50
50
|
visitor.accept_list_item_start self
|
51
51
|
|
52
52
|
@parts.each do |part|
|
@@ -70,7 +70,7 @@ class RDoc::Markup::ListItem
|
|
70
70
|
@parts.length
|
71
71
|
end
|
72
72
|
|
73
|
-
def pretty_print
|
73
|
+
def pretty_print(q) # :nodoc:
|
74
74
|
q.group 2, '[item: ', ']' do
|
75
75
|
case @label
|
76
76
|
when Array then
|
@@ -7,7 +7,7 @@ class RDoc::Markup::Paragraph < RDoc::Markup::Raw
|
|
7
7
|
##
|
8
8
|
# Calls #accept_paragraph on +visitor+
|
9
9
|
|
10
|
-
def accept
|
10
|
+
def accept(visitor)
|
11
11
|
visitor.accept_paragraph self
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ class RDoc::Markup::Paragraph < RDoc::Markup::Raw
|
|
15
15
|
# Joins the raw paragraph text and converts inline HardBreaks to the
|
16
16
|
# +hard_break+ text.
|
17
17
|
|
18
|
-
def text
|
18
|
+
def text(hard_break = '')
|
19
19
|
@parts.map do |part|
|
20
20
|
if RDoc::Markup::HardBreak === part then
|
21
21
|
hard_break
|
data/lib/rdoc/markup/parser.rb
CHANGED
@@ -57,7 +57,7 @@ class RDoc::Markup::Parser
|
|
57
57
|
#
|
58
58
|
# Use RDoc::Markup#parse instead of this method.
|
59
59
|
|
60
|
-
def self.parse
|
60
|
+
def self.parse(str)
|
61
61
|
parser = new
|
62
62
|
parser.tokenize str
|
63
63
|
doc = RDoc::Markup::Document.new
|
@@ -67,7 +67,7 @@ class RDoc::Markup::Parser
|
|
67
67
|
##
|
68
68
|
# Returns a token stream for +str+, for testing
|
69
69
|
|
70
|
-
def self.tokenize
|
70
|
+
def self.tokenize(str)
|
71
71
|
parser = new
|
72
72
|
parser.tokenize str
|
73
73
|
parser.tokens
|
@@ -87,7 +87,7 @@ class RDoc::Markup::Parser
|
|
87
87
|
##
|
88
88
|
# Builds a Heading of +level+
|
89
89
|
|
90
|
-
def build_heading
|
90
|
+
def build_heading(level)
|
91
91
|
type, text, = get
|
92
92
|
|
93
93
|
text = case type
|
@@ -105,7 +105,7 @@ class RDoc::Markup::Parser
|
|
105
105
|
##
|
106
106
|
# Builds a List flush to +margin+
|
107
107
|
|
108
|
-
def build_list
|
108
|
+
def build_list(margin)
|
109
109
|
p :list_start => margin if @debug
|
110
110
|
|
111
111
|
list = RDoc::Markup::List.new
|
@@ -205,7 +205,7 @@ class RDoc::Markup::Parser
|
|
205
205
|
##
|
206
206
|
# Builds a Paragraph that is flush to +margin+
|
207
207
|
|
208
|
-
def build_paragraph
|
208
|
+
def build_paragraph(margin)
|
209
209
|
p :paragraph_start => margin if @debug
|
210
210
|
|
211
211
|
paragraph = RDoc::Markup::Paragraph.new
|
@@ -240,7 +240,7 @@ class RDoc::Markup::Parser
|
|
240
240
|
# terminated by a newline. Blank lines always consist of a single newline
|
241
241
|
# character, and there is never a single newline at the end of the verbatim.
|
242
242
|
|
243
|
-
def build_verbatim
|
243
|
+
def build_verbatim(margin)
|
244
244
|
p :verbatim_begin => margin if @debug
|
245
245
|
verbatim = RDoc::Markup::Verbatim.new
|
246
246
|
|
@@ -339,7 +339,7 @@ class RDoc::Markup::Parser
|
|
339
339
|
#
|
340
340
|
# Returns +parent+.
|
341
341
|
|
342
|
-
def parse
|
342
|
+
def parse(parent, indent = 0)
|
343
343
|
p :parse_start => indent if @debug
|
344
344
|
|
345
345
|
until @tokens.empty? do
|
@@ -403,7 +403,7 @@ class RDoc::Markup::Parser
|
|
403
403
|
##
|
404
404
|
# Small hook that is overridden by RDoc::TomDoc
|
405
405
|
|
406
|
-
def parse_text
|
406
|
+
def parse_text(parent, indent) # :nodoc:
|
407
407
|
parent << build_paragraph(indent)
|
408
408
|
end
|
409
409
|
|
@@ -465,7 +465,7 @@ class RDoc::Markup::Parser
|
|
465
465
|
##
|
466
466
|
# Creates the StringScanner
|
467
467
|
|
468
|
-
def setup_scanner
|
468
|
+
def setup_scanner(input)
|
469
469
|
@s = MyStringScanner.new input
|
470
470
|
end
|
471
471
|
|
@@ -474,7 +474,7 @@ class RDoc::Markup::Parser
|
|
474
474
|
#
|
475
475
|
# Optionally raises an error if the next token is not of the expected type.
|
476
476
|
|
477
|
-
def skip
|
477
|
+
def skip(token_type, error = true)
|
478
478
|
type, = get
|
479
479
|
return unless type # end of stream
|
480
480
|
return @current_token if token_type == type
|
@@ -485,7 +485,7 @@ class RDoc::Markup::Parser
|
|
485
485
|
##
|
486
486
|
# Turns text +input+ into a stream of tokens
|
487
487
|
|
488
|
-
def tokenize
|
488
|
+
def tokenize(input)
|
489
489
|
setup_scanner input
|
490
490
|
|
491
491
|
until @s.eos? do
|
@@ -27,7 +27,7 @@ class RDoc::Markup::PreProcess
|
|
27
27
|
# with the result RDoc::Comment (or text String) and the code object for the
|
28
28
|
# comment (if any).
|
29
29
|
|
30
|
-
def self.post_process
|
30
|
+
def self.post_process(&block)
|
31
31
|
@post_processors << block
|
32
32
|
end
|
33
33
|
|
@@ -50,7 +50,7 @@ class RDoc::Markup::PreProcess
|
|
50
50
|
# # replace text, etc.
|
51
51
|
# end
|
52
52
|
|
53
|
-
def self.register
|
53
|
+
def self.register(directive, &block)
|
54
54
|
@registered[directive] = block
|
55
55
|
end
|
56
56
|
|
@@ -96,7 +96,7 @@ class RDoc::Markup::PreProcess
|
|
96
96
|
# directive's parameter is set as metadata on the +code_object+. See
|
97
97
|
# RDoc::CodeObject#metadata for details.
|
98
98
|
|
99
|
-
def handle
|
99
|
+
def handle(text, code_object = nil, &block)
|
100
100
|
first_line = 1
|
101
101
|
if RDoc::Comment === text then
|
102
102
|
comment = text
|
@@ -150,8 +150,8 @@ class RDoc::Markup::PreProcess
|
|
150
150
|
#--
|
151
151
|
# When 1.8.7 support is ditched prefix can be defaulted to ''
|
152
152
|
|
153
|
-
def handle_directive
|
154
|
-
encoding = nil, line = nil
|
153
|
+
def handle_directive(prefix, directive, param, code_object = nil,
|
154
|
+
encoding = nil, line = nil)
|
155
155
|
blankline = "#{prefix.strip}\n"
|
156
156
|
directive = directive.downcase
|
157
157
|
|
@@ -279,7 +279,7 @@ class RDoc::Markup::PreProcess
|
|
279
279
|
# TODO shift left the whole file content in that case
|
280
280
|
# TODO comment stop/start #-- and #++ in included file must be processed here
|
281
281
|
|
282
|
-
def include_file
|
282
|
+
def include_file(name, indent, encoding)
|
283
283
|
full_name = find_include_file name
|
284
284
|
|
285
285
|
unless full_name then
|
data/lib/rdoc/markup/raw.rb
CHANGED
@@ -20,29 +20,29 @@ class RDoc::Markup::Raw
|
|
20
20
|
##
|
21
21
|
# Appends +text+
|
22
22
|
|
23
|
-
def <<
|
23
|
+
def <<(text)
|
24
24
|
@parts << text
|
25
25
|
end
|
26
26
|
|
27
|
-
def ==
|
27
|
+
def ==(other) # :nodoc:
|
28
28
|
self.class == other.class and @parts == other.parts
|
29
29
|
end
|
30
30
|
|
31
31
|
##
|
32
32
|
# Calls #accept_raw+ on +visitor+
|
33
33
|
|
34
|
-
def accept
|
34
|
+
def accept(visitor)
|
35
35
|
visitor.accept_raw self
|
36
36
|
end
|
37
37
|
|
38
38
|
##
|
39
39
|
# Appends +other+'s parts
|
40
40
|
|
41
|
-
def merge
|
41
|
+
def merge(other)
|
42
42
|
@parts.concat other.parts
|
43
43
|
end
|
44
44
|
|
45
|
-
def pretty_print
|
45
|
+
def pretty_print(q) # :nodoc:
|
46
46
|
self.class.name =~ /.*::(\w{1,4})/i
|
47
47
|
|
48
48
|
q.group 2, "[#{$1.downcase}: ", ']' do
|
data/lib/rdoc/markup/rule.rb
CHANGED
@@ -7,11 +7,11 @@ class RDoc::Markup::Rule < Struct.new :weight
|
|
7
7
|
##
|
8
8
|
# Calls #accept_rule on +visitor+
|
9
9
|
|
10
|
-
def accept
|
10
|
+
def accept(visitor)
|
11
11
|
visitor.accept_rule self
|
12
12
|
end
|
13
13
|
|
14
|
-
def pretty_print
|
14
|
+
def pretty_print(q) # :nodoc:
|
15
15
|
q.group 2, '[rule:', ']' do
|
16
16
|
q.pp weight
|
17
17
|
end
|
data/lib/rdoc/markup/table.rb
CHANGED
@@ -13,23 +13,23 @@ class RDoc::Markup::Table
|
|
13
13
|
attr_accessor :body
|
14
14
|
|
15
15
|
# Creates new instance
|
16
|
-
def initialize
|
16
|
+
def initialize(header, align, body)
|
17
17
|
@header, @align, @body = header, align, body
|
18
18
|
end
|
19
19
|
|
20
20
|
# :stopdoc:
|
21
|
-
def ==
|
21
|
+
def ==(other)
|
22
22
|
self.class == other.class and
|
23
23
|
@header == other.header and
|
24
24
|
@align == other.align and
|
25
25
|
@body == other.body
|
26
26
|
end
|
27
27
|
|
28
|
-
def accept
|
28
|
+
def accept(visitor)
|
29
29
|
visitor.accept_table @header, @body, @align
|
30
30
|
end
|
31
31
|
|
32
|
-
def pretty_print
|
32
|
+
def pretty_print(q)
|
33
33
|
q.group 2, '[Table: ', ']' do
|
34
34
|
q.group 2, '[Head: ', ']' do
|
35
35
|
q.seplist @header.zip(@align) do |text, align|
|
data/lib/rdoc/markup/to_ansi.rb
CHANGED
@@ -7,7 +7,7 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
|
|
7
7
|
##
|
8
8
|
# Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!
|
9
9
|
|
10
|
-
def initialize
|
10
|
+
def initialize(markup = nil)
|
11
11
|
super
|
12
12
|
|
13
13
|
@headings.clear
|
@@ -28,7 +28,7 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
|
|
28
28
|
##
|
29
29
|
# Overrides indent width to ensure output lines up correctly.
|
30
30
|
|
31
|
-
def accept_list_item_end
|
31
|
+
def accept_list_item_end(list_item)
|
32
32
|
width = case @list_type.last
|
33
33
|
when :BULLET then
|
34
34
|
2
|
@@ -52,7 +52,7 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
|
|
52
52
|
##
|
53
53
|
# Adds coloring to note and label list items
|
54
54
|
|
55
|
-
def accept_list_item_start
|
55
|
+
def accept_list_item_start(list_item)
|
56
56
|
bullet = case @list_type.last
|
57
57
|
when :BULLET then
|
58
58
|
'*'
|
data/lib/rdoc/markup/to_bs.rb
CHANGED
@@ -10,7 +10,7 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
10
10
|
##
|
11
11
|
# Returns a new ToBs that is ready for hot backspace action!
|
12
12
|
|
13
|
-
def initialize
|
13
|
+
def initialize(markup = nil)
|
14
14
|
super
|
15
15
|
|
16
16
|
@in_b = false
|
@@ -30,7 +30,7 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
30
30
|
##
|
31
31
|
# Makes heading text bold.
|
32
32
|
|
33
|
-
def accept_heading
|
33
|
+
def accept_heading(heading)
|
34
34
|
use_prefix or @res << ' ' * @indent
|
35
35
|
@res << @headings[heading.level][0]
|
36
36
|
@in_b = true
|
@@ -43,7 +43,7 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
43
43
|
##
|
44
44
|
# Prepares the visitor for consuming +list_item+
|
45
45
|
|
46
|
-
def accept_list_item_start
|
46
|
+
def accept_list_item_start(list_item)
|
47
47
|
type = @list_type.last
|
48
48
|
|
49
49
|
case type
|
@@ -68,7 +68,7 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
68
68
|
##
|
69
69
|
# Turns on or off regexp handling for +convert_string+
|
70
70
|
|
71
|
-
def annotate
|
71
|
+
def annotate(tag)
|
72
72
|
case tag
|
73
73
|
when '+b' then @in_b = true
|
74
74
|
when '-b' then @in_b = false
|
@@ -81,14 +81,14 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
81
81
|
##
|
82
82
|
# Calls convert_string on the result of convert_regexp_handling
|
83
83
|
|
84
|
-
def convert_regexp_handling
|
84
|
+
def convert_regexp_handling(target)
|
85
85
|
convert_string super
|
86
86
|
end
|
87
87
|
|
88
88
|
##
|
89
89
|
# Adds bold or underline mixed with backspaces
|
90
90
|
|
91
|
-
def convert_string
|
91
|
+
def convert_string(string)
|
92
92
|
return string unless @in_b or @in_em
|
93
93
|
chars = if @in_b then
|
94
94
|
string.chars.map do |char| "#{char}\b#{char}" end
|
data/lib/rdoc/markup/to_html.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'cgi/
|
2
|
+
require 'cgi/escape'
|
3
|
+
require 'cgi/util' unless defined?(CGI::EscapeExt)
|
3
4
|
|
4
5
|
##
|
5
6
|
# Outputs RDoc markup as HTML.
|
@@ -42,7 +43,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
42
43
|
##
|
43
44
|
# Creates a new formatter that will output HTML
|
44
45
|
|
45
|
-
def initialize
|
46
|
+
def initialize(options, markup = nil)
|
46
47
|
super
|
47
48
|
|
48
49
|
@code_object = nil
|
@@ -82,7 +83,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
82
83
|
add_regexp_handling_TIDYLINK
|
83
84
|
end
|
84
85
|
|
85
|
-
def handle_RDOCLINK
|
86
|
+
def handle_RDOCLINK(url) # :nodoc:
|
86
87
|
case url
|
87
88
|
when /^rdoc-ref:/
|
88
89
|
CGI.escapeHTML($')
|
@@ -98,7 +99,15 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
98
99
|
|
99
100
|
gen_url CGI.escapeHTML(url), CGI.escapeHTML(text)
|
100
101
|
when /^rdoc-image:/
|
101
|
-
|
102
|
+
# Split the string after "rdoc-image:" into url and alt.
|
103
|
+
# "path/to/image.jpg:alt text" => ["path/to/image.jpg", "alt text"]
|
104
|
+
# "http://example.com/path/to/image.jpg:alt text" => ["http://example.com/path/to/image.jpg", "alt text"]
|
105
|
+
url, alt = $'.split(/:(?!\/)/, 2)
|
106
|
+
if alt && !alt.empty?
|
107
|
+
%[<img src="#{CGI.escapeHTML(url)}" alt="#{CGI.escapeHTML(alt)}">]
|
108
|
+
else
|
109
|
+
%[<img src="#{CGI.escapeHTML(url)}">]
|
110
|
+
end
|
102
111
|
when /\Ardoc-[a-z]+:/
|
103
112
|
CGI.escapeHTML($')
|
104
113
|
end
|
@@ -107,7 +116,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
107
116
|
##
|
108
117
|
# +target+ is a <code><br></code>
|
109
118
|
|
110
|
-
def handle_regexp_HARD_BREAK
|
119
|
+
def handle_regexp_HARD_BREAK(target)
|
111
120
|
'<br>'
|
112
121
|
end
|
113
122
|
|
@@ -138,7 +147,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
138
147
|
# For the +rdoc-label+ scheme the footnote and label prefixes are stripped
|
139
148
|
# when creating a link. All other contents will be linked verbatim.
|
140
149
|
|
141
|
-
def handle_regexp_RDOCLINK
|
150
|
+
def handle_regexp_RDOCLINK(target)
|
142
151
|
handle_RDOCLINK target.text
|
143
152
|
end
|
144
153
|
|
@@ -187,7 +196,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
187
196
|
##
|
188
197
|
# Adds +block_quote+ to the output
|
189
198
|
|
190
|
-
def accept_block_quote
|
199
|
+
def accept_block_quote(block_quote)
|
191
200
|
@res << "\n<blockquote>"
|
192
201
|
|
193
202
|
block_quote.parts.each do |part|
|
@@ -200,7 +209,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
200
209
|
##
|
201
210
|
# Adds +paragraph+ to the output
|
202
211
|
|
203
|
-
def accept_paragraph
|
212
|
+
def accept_paragraph(paragraph)
|
204
213
|
@res << "\n<p>"
|
205
214
|
text = paragraph.text @hard_break
|
206
215
|
text = text.gsub(/(#{SPACE_SEPARATED_LETTER_CLASS})?\K\r?\n(?=(?(1)(#{SPACE_SEPARATED_LETTER_CLASS})?))/o) {
|
@@ -213,7 +222,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
213
222
|
##
|
214
223
|
# Adds +verbatim+ to the output
|
215
224
|
|
216
|
-
def accept_verbatim
|
225
|
+
def accept_verbatim(verbatim)
|
217
226
|
text = verbatim.text.rstrip
|
218
227
|
|
219
228
|
klass = nil
|
@@ -243,7 +252,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
243
252
|
##
|
244
253
|
# Adds +rule+ to the output
|
245
254
|
|
246
|
-
def accept_rule
|
255
|
+
def accept_rule(rule)
|
247
256
|
@res << "<hr>\n"
|
248
257
|
end
|
249
258
|
|
@@ -296,7 +305,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
296
305
|
# Adds +heading+ to the output. The headings greater than 6 are trimmed to
|
297
306
|
# level 6.
|
298
307
|
|
299
|
-
def accept_heading
|
308
|
+
def accept_heading(heading)
|
300
309
|
level = [6, heading.level].min
|
301
310
|
|
302
311
|
label = heading.label @code_object
|
@@ -317,14 +326,14 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
317
326
|
##
|
318
327
|
# Adds +raw+ to the output
|
319
328
|
|
320
|
-
def accept_raw
|
329
|
+
def accept_raw(raw)
|
321
330
|
@res << raw.parts.join("\n")
|
322
331
|
end
|
323
332
|
|
324
333
|
##
|
325
334
|
# Adds +table+ to the output
|
326
335
|
|
327
|
-
def accept_table
|
336
|
+
def accept_table(header, body, aligns)
|
328
337
|
@res << "\n<table role=\"table\">\n<thead>\n<tr>\n"
|
329
338
|
header.zip(aligns) do |text, align|
|
330
339
|
@res << '<th'
|
@@ -357,7 +366,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
357
366
|
# Generate a link to +url+ with content +text+. Handles the special cases
|
358
367
|
# for img: and link: described under handle_regexp_HYPERLINK
|
359
368
|
|
360
|
-
def gen_url
|
369
|
+
def gen_url(url, text)
|
361
370
|
scheme, url, id = parse_url url
|
362
371
|
|
363
372
|
if %w[http https link].include?(scheme) and
|
@@ -431,7 +440,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
431
440
|
##
|
432
441
|
# Returns true if text is valid ruby syntax
|
433
442
|
|
434
|
-
def parseable?
|
443
|
+
def parseable?(text)
|
435
444
|
verbose, $VERBOSE = $VERBOSE, nil
|
436
445
|
catch(:valid) do
|
437
446
|
eval("BEGIN { throw :valid, true }\n#{text}")
|
@@ -445,7 +454,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
|
445
454
|
##
|
446
455
|
# Converts +item+ to HTML using RDoc::Text#to_html
|
447
456
|
|
448
|
-
def to_html
|
457
|
+
def to_html(item)
|
449
458
|
super convert_flow @am.flow item
|
450
459
|
end
|
451
460
|
|
@@ -58,7 +58,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
58
58
|
# Creates a link to the reference +name+ if the name exists. If +text+ is
|
59
59
|
# given it is used as the link text, otherwise +name+ is used.
|
60
60
|
|
61
|
-
def cross_reference
|
61
|
+
def cross_reference(name, text = nil, code = true, rdoc_ref: false)
|
62
62
|
lookup = name
|
63
63
|
|
64
64
|
name = name[1..-1] unless @show_hash if name[0, 1] == '#'
|
@@ -101,7 +101,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
101
101
|
# Handles <tt>rdoc-ref:</tt> scheme links and allows RDoc::Markup::ToHtml to
|
102
102
|
# handle other schemes.
|
103
103
|
|
104
|
-
def handle_regexp_HYPERLINK
|
104
|
+
def handle_regexp_HYPERLINK(target)
|
105
105
|
url = target.text
|
106
106
|
|
107
107
|
case url
|
@@ -120,7 +120,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
120
120
|
# All other contents are handled by
|
121
121
|
# {the superclass}[rdoc-ref:RDoc::Markup::ToHtml#handle_regexp_RDOCLINK]
|
122
122
|
|
123
|
-
def handle_regexp_RDOCLINK
|
123
|
+
def handle_regexp_RDOCLINK(target)
|
124
124
|
url = target.text
|
125
125
|
|
126
126
|
case url
|
@@ -135,7 +135,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
135
135
|
# Generates links for <tt>rdoc-ref:</tt> scheme URLs and allows
|
136
136
|
# RDoc::Markup::ToHtml to handle other schemes.
|
137
137
|
|
138
|
-
def gen_url
|
138
|
+
def gen_url(url, text)
|
139
139
|
if url =~ /\Ardoc-ref:/
|
140
140
|
name = $'
|
141
141
|
cross_reference name, text, name == text, rdoc_ref: true
|
@@ -147,7 +147,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
147
147
|
##
|
148
148
|
# Creates an HTML link to +name+ with the given +text+.
|
149
149
|
|
150
|
-
def link
|
150
|
+
def link(name, text, code = true, rdoc_ref: false)
|
151
151
|
if !(name.end_with?('+@', '-@')) and name =~ /(.*[^#:])?@/
|
152
152
|
name = $1
|
153
153
|
label = $'
|