rdoc 6.17.0 → 7.2.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 +4 -4
- data/CONTRIBUTING.md +196 -0
- data/LEGAL.rdoc +6 -0
- data/README.md +90 -7
- data/doc/markup_reference/markdown.md +558 -0
- data/doc/markup_reference/rdoc.rdoc +1169 -0
- data/lib/rdoc/code_object/any_method.rb +15 -7
- data/lib/rdoc/code_object/attr.rb +2 -1
- data/lib/rdoc/code_object/class_module.rb +62 -11
- data/lib/rdoc/code_object/constant.rb +9 -0
- data/lib/rdoc/code_object/context/section.rb +46 -9
- data/lib/rdoc/code_object/context.rb +15 -4
- data/lib/rdoc/code_object/method_attr.rb +13 -1
- data/lib/rdoc/code_object/mixin.rb +3 -0
- data/lib/rdoc/code_object/top_level.rb +15 -1
- data/lib/rdoc/comment.rb +1 -1
- data/lib/rdoc/cross_reference.rb +31 -24
- data/lib/rdoc/generator/aliki.rb +141 -0
- data/lib/rdoc/generator/darkfish.rb +3 -1
- data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_head.rhtml +9 -4
- data/lib/rdoc/generator/template/aliki/_header.rhtml +4 -4
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +3 -3
- data/lib/rdoc/generator/template/aliki/class.rhtml +17 -17
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +278 -60
- data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/js/aliki.js +51 -23
- data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
- data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +1 -1
- data/lib/rdoc/generator/template/aliki/js/{search.js → search_controller.js} +16 -7
- data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
- data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
- data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/class.rhtml +11 -11
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +19 -0
- data/lib/rdoc/markdown.kpeg +22 -12
- data/lib/rdoc/markdown.rb +36 -26
- data/lib/rdoc/markup/blank_line.rb +25 -23
- data/lib/rdoc/markup/element.rb +21 -0
- data/lib/rdoc/markup/formatter.rb +129 -106
- data/lib/rdoc/markup/hard_break.rb +30 -27
- data/lib/rdoc/markup/heading.rb +166 -77
- data/lib/rdoc/markup/inline_parser.rb +312 -0
- data/lib/rdoc/markup/parser.rb +1 -1
- data/lib/rdoc/markup/raw.rb +52 -55
- data/lib/rdoc/markup/table.rb +48 -40
- data/lib/rdoc/markup/to_ansi.rb +51 -4
- data/lib/rdoc/markup/to_bs.rb +22 -42
- data/lib/rdoc/markup/to_html.rb +178 -183
- data/lib/rdoc/markup/to_html_crossref.rb +58 -79
- data/lib/rdoc/markup/to_html_snippet.rb +62 -62
- data/lib/rdoc/markup/to_label.rb +29 -20
- data/lib/rdoc/markup/to_markdown.rb +61 -37
- data/lib/rdoc/markup/to_rdoc.rb +86 -26
- data/lib/rdoc/markup/to_test.rb +9 -1
- data/lib/rdoc/markup/to_tt_only.rb +10 -16
- data/lib/rdoc/markup/verbatim.rb +1 -1
- data/lib/rdoc/markup.rb +11 -32
- data/lib/rdoc/options.rb +1 -1
- data/lib/rdoc/parser/changelog.rb +29 -0
- data/lib/rdoc/parser/prism_ruby.rb +44 -32
- data/lib/rdoc/parser/ruby.rb +1 -1
- data/lib/rdoc/rubygems_hook.rb +3 -3
- data/lib/rdoc/text.rb +44 -5
- data/lib/rdoc/token_stream.rb +4 -8
- data/lib/rdoc/version.rb +1 -1
- data/rdoc.gemspec +3 -3
- metadata +13 -15
- data/CONTRIBUTING.rdoc +0 -219
- data/ExampleMarkdown.md +0 -39
- data/ExampleRDoc.rdoc +0 -210
- data/lib/rdoc/markup/attr_changer.rb +0 -22
- data/lib/rdoc/markup/attr_span.rb +0 -35
- data/lib/rdoc/markup/attribute_manager.rb +0 -405
- data/lib/rdoc/markup/attributes.rb +0 -70
- data/lib/rdoc/markup/regexp_handling.rb +0 -40
data/lib/rdoc/markup/table.rb
CHANGED
|
@@ -1,52 +1,60 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
##
|
|
3
|
-
# A section of table
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
module RDoc
|
|
4
|
+
class Markup
|
|
5
|
+
# A section of table
|
|
6
|
+
class Table < Element
|
|
7
|
+
# Headers of each column
|
|
8
|
+
#: Array[String]
|
|
9
|
+
attr_accessor :header
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
# Alignments of each column
|
|
12
|
+
#: Array[Symbol?]
|
|
13
|
+
attr_accessor :align
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
# Body texts of each column
|
|
16
|
+
#: Array[String]
|
|
17
|
+
attr_accessor :body
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
# :stopdoc:
|
|
21
|
-
def ==(other)
|
|
22
|
-
self.class == other.class and
|
|
23
|
-
@header == other.header and
|
|
24
|
-
@align == other.align and
|
|
25
|
-
@body == other.body
|
|
26
|
-
end
|
|
19
|
+
#: (Array[String], Array[Symbol?], Array[String]) -> void
|
|
20
|
+
def initialize(header, align, body)
|
|
21
|
+
@header, @align, @body = header, align, body
|
|
22
|
+
end
|
|
27
23
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
#: (Object) -> bool
|
|
25
|
+
def ==(other)
|
|
26
|
+
self.class == other.class && @header == other.header &&
|
|
27
|
+
@align == other.align && @body == other.body
|
|
28
|
+
end
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
q.pp text
|
|
37
|
-
if align
|
|
38
|
-
q.text ":"
|
|
39
|
-
q.breakable
|
|
40
|
-
q.text align.to_s
|
|
41
|
-
end
|
|
42
|
-
end
|
|
30
|
+
# @override
|
|
31
|
+
#: (untyped) -> void
|
|
32
|
+
def accept(visitor)
|
|
33
|
+
visitor.accept_table(@header, @body, @align)
|
|
43
34
|
end
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
|
|
36
|
+
# @override
|
|
37
|
+
#: (untyped) -> String
|
|
38
|
+
def pretty_print(q)
|
|
39
|
+
q.group 2, '[Table: ', ']' do
|
|
40
|
+
q.group 2, '[Head: ', ']' do
|
|
41
|
+
q.seplist @header.zip(@align) do |text, align|
|
|
49
42
|
q.pp text
|
|
43
|
+
if align
|
|
44
|
+
q.text ":"
|
|
45
|
+
q.breakable
|
|
46
|
+
q.text align.to_s
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
q.breakable
|
|
51
|
+
q.group 2, '[Body: ', ']' do
|
|
52
|
+
q.seplist @body do |body|
|
|
53
|
+
q.group 2, '[', ']' do
|
|
54
|
+
q.seplist body do |text|
|
|
55
|
+
q.pp text
|
|
56
|
+
end
|
|
57
|
+
end
|
|
50
58
|
end
|
|
51
59
|
end
|
|
52
60
|
end
|
data/lib/rdoc/markup/to_ansi.rb
CHANGED
|
@@ -19,10 +19,57 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
|
|
|
19
19
|
##
|
|
20
20
|
# Maps attributes to ANSI sequences
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
ANSI_STYLE_CODES_ON = {
|
|
23
|
+
BOLD: 1,
|
|
24
|
+
TT: 7,
|
|
25
|
+
EM: 4,
|
|
26
|
+
STRIKE: 9
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
ANSI_STYLE_CODES_OFF = {
|
|
30
|
+
BOLD: 22,
|
|
31
|
+
TT: 27,
|
|
32
|
+
EM: 24,
|
|
33
|
+
STRIKE: 29
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# Apply the given attributes by emitting ANSI sequences.
|
|
37
|
+
# Emitting attribute changes are deferred until new text is added and applied in batch.
|
|
38
|
+
# This method computes the necessary ANSI codes to transition from the
|
|
39
|
+
# current set of applied attributes to the new set of +attributes+.
|
|
40
|
+
|
|
41
|
+
def apply_attributes(attributes)
|
|
42
|
+
before = @applied_attributes
|
|
43
|
+
after = attributes.sort
|
|
44
|
+
return if before == after
|
|
45
|
+
|
|
46
|
+
if after.empty?
|
|
47
|
+
emit_inline("\e[m")
|
|
48
|
+
elsif !before.empty? && before.size > (before & after).size + 1
|
|
49
|
+
codes = after.map {|attr| ANSI_STYLE_CODES_ON[attr] }.compact
|
|
50
|
+
emit_inline("\e[#{[0, *codes].join(';')}m")
|
|
51
|
+
else
|
|
52
|
+
off_codes = (before - after).map {|attr| ANSI_STYLE_CODES_OFF[attr] }.compact
|
|
53
|
+
on_codes = (after - before).map {|attr| ANSI_STYLE_CODES_ON[attr] }.compact
|
|
54
|
+
emit_inline("\e[#{(off_codes + on_codes).join(';')}m")
|
|
55
|
+
end
|
|
56
|
+
@applied_attributes = attributes
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def add_text(text)
|
|
60
|
+
attrs = @attributes.keys
|
|
61
|
+
if @applied_attributes != attrs
|
|
62
|
+
apply_attributes(attrs)
|
|
63
|
+
end
|
|
64
|
+
emit_inline(text)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def handle_inline(text)
|
|
68
|
+
@applied_attributes = []
|
|
69
|
+
res = super
|
|
70
|
+
res << "\e[m" unless @applied_attributes.empty?
|
|
71
|
+
@applied_attributes = []
|
|
72
|
+
res
|
|
26
73
|
end
|
|
27
74
|
|
|
28
75
|
##
|
data/lib/rdoc/markup/to_bs.rb
CHANGED
|
@@ -17,14 +17,29 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
|
17
17
|
@in_em = false
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
def handle_inline(text)
|
|
21
|
+
initial_style = []
|
|
22
|
+
initial_style << :BOLD if @in_b
|
|
23
|
+
initial_style << :EM if @in_em
|
|
24
|
+
super(text, initial_style)
|
|
25
|
+
end
|
|
23
26
|
|
|
24
|
-
def
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
def add_text(text)
|
|
28
|
+
attrs = @attributes.keys
|
|
29
|
+
if attrs.include? :BOLD
|
|
30
|
+
styled = +''
|
|
31
|
+
text.chars.each do |c|
|
|
32
|
+
styled << "#{c}\b#{c}"
|
|
33
|
+
end
|
|
34
|
+
text = styled
|
|
35
|
+
elsif attrs.include? :EM
|
|
36
|
+
styled = +''
|
|
37
|
+
text.chars.each do |c|
|
|
38
|
+
styled << "_\b#{c}"
|
|
39
|
+
end
|
|
40
|
+
text = styled
|
|
41
|
+
end
|
|
42
|
+
emit_inline(text)
|
|
28
43
|
end
|
|
29
44
|
|
|
30
45
|
##
|
|
@@ -68,39 +83,4 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
|
68
83
|
def calculate_text_width(text)
|
|
69
84
|
text.gsub(/_\x08/, '').gsub(/\x08./, '').size
|
|
70
85
|
end
|
|
71
|
-
|
|
72
|
-
##
|
|
73
|
-
# Turns on or off regexp handling for +convert_string+
|
|
74
|
-
|
|
75
|
-
def annotate(tag)
|
|
76
|
-
case tag
|
|
77
|
-
when '+b' then @in_b = true
|
|
78
|
-
when '-b' then @in_b = false
|
|
79
|
-
when '+_' then @in_em = true
|
|
80
|
-
when '-_' then @in_em = false
|
|
81
|
-
end
|
|
82
|
-
''
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
##
|
|
86
|
-
# Calls convert_string on the result of convert_regexp_handling
|
|
87
|
-
|
|
88
|
-
def convert_regexp_handling(target)
|
|
89
|
-
convert_string super
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
##
|
|
93
|
-
# Adds bold or underline mixed with backspaces
|
|
94
|
-
|
|
95
|
-
def convert_string(string)
|
|
96
|
-
return string unless @in_b or @in_em
|
|
97
|
-
chars = if @in_b then
|
|
98
|
-
string.chars.map do |char| "#{char}\b#{char}" end
|
|
99
|
-
elsif @in_em then
|
|
100
|
-
string.chars.map do |char| "_\b#{char}" end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
chars.join
|
|
104
|
-
end
|
|
105
|
-
|
|
106
86
|
end
|