rdoc 7.1.0 → 8.0.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 +3 -4
- data/LICENSE.rdoc +4 -0
- data/README.md +43 -2
- data/doc/markup_reference/markdown.md +104 -3
- data/lib/rdoc/code_object/alias.rb +2 -8
- data/lib/rdoc/code_object/any_method.rb +11 -6
- data/lib/rdoc/code_object/attr.rb +12 -6
- data/lib/rdoc/code_object/class_module.rb +62 -32
- data/lib/rdoc/code_object/constant.rb +29 -3
- data/lib/rdoc/code_object/context/section.rb +30 -43
- data/lib/rdoc/code_object/context.rb +53 -37
- data/lib/rdoc/code_object/method_attr.rb +9 -15
- data/lib/rdoc/code_object/mixin.rb +3 -0
- data/lib/rdoc/code_object/top_level.rb +11 -3
- data/lib/rdoc/code_object.rb +2 -4
- data/lib/rdoc/comment.rb +1 -66
- data/lib/rdoc/cross_reference.rb +8 -30
- data/lib/rdoc/encoding.rb +3 -3
- data/lib/rdoc/generator/aliki.rb +17 -0
- data/lib/rdoc/generator/darkfish.rb +12 -6
- data/lib/rdoc/generator/json_index.rb +2 -2
- data/lib/rdoc/generator/markup.rb +56 -31
- data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
- data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_head.rhtml +6 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
- data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
- data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
- data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/class.rhtml +61 -51
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +365 -147
- data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/js/aliki.js +28 -20
- data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
- data/lib/rdoc/generator/template/aliki/js/search_controller.js +1 -1
- 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 +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
- data/lib/rdoc/i18n/text.rb +3 -3
- data/lib/rdoc/markdown.kpeg +36 -17
- data/lib/rdoc/markdown.rb +324 -125
- data/lib/rdoc/markup/document.rb +2 -2
- data/lib/rdoc/markup/formatter.rb +128 -115
- data/lib/rdoc/markup/heading.rb +3 -6
- data/lib/rdoc/markup/indented_paragraph.rb +1 -1
- data/lib/rdoc/markup/inline_parser.rb +312 -0
- data/lib/rdoc/markup/list.rb +2 -2
- data/lib/rdoc/markup/list_item.rb +2 -2
- data/lib/rdoc/markup/parser.rb +1 -1
- data/lib/rdoc/markup/pre_process.rb +0 -25
- data/lib/rdoc/markup/to_ansi.rb +52 -5
- data/lib/rdoc/markup/to_bs.rb +23 -43
- data/lib/rdoc/markup/to_html.rb +279 -226
- data/lib/rdoc/markup/to_html_crossref.rb +122 -136
- data/lib/rdoc/markup/to_html_snippet.rb +65 -65
- data/lib/rdoc/markup/to_joined_paragraph.rb +0 -5
- data/lib/rdoc/markup/to_label.rb +22 -23
- data/lib/rdoc/markup/to_markdown.rb +62 -38
- data/lib/rdoc/markup/to_rdoc.rb +88 -28
- data/lib/rdoc/markup/to_table_of_contents.rb +1 -1
- data/lib/rdoc/markup/to_test.rb +9 -1
- data/lib/rdoc/markup/to_tt_only.rb +10 -23
- data/lib/rdoc/markup/verbatim.rb +1 -1
- data/lib/rdoc/markup.rb +8 -30
- data/lib/rdoc/options.rb +36 -51
- data/lib/rdoc/parser/c.rb +7 -6
- data/lib/rdoc/parser/changelog.rb +21 -0
- data/lib/rdoc/parser/rbs.rb +275 -0
- data/lib/rdoc/parser/ruby.rb +955 -2067
- data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
- data/lib/rdoc/parser.rb +3 -2
- data/lib/rdoc/rbs_helper.rb +186 -0
- data/lib/rdoc/rdoc.rb +196 -24
- data/lib/rdoc/ri/driver.rb +8 -2
- data/lib/rdoc/ri/paths.rb +1 -1
- data/lib/rdoc/{servlet.rb → ri/servlet.rb} +5 -5
- data/lib/rdoc/ri.rb +4 -3
- data/lib/rdoc/rubygems_hook.rb +11 -11
- data/lib/rdoc/server.rb +460 -0
- data/lib/rdoc/stats.rb +147 -124
- data/lib/rdoc/store.rb +212 -4
- data/lib/rdoc/task.rb +16 -15
- data/lib/rdoc/text.rb +24 -117
- data/lib/rdoc/token_stream.rb +11 -33
- data/lib/rdoc/version.rb +1 -1
- data/lib/rdoc.rb +35 -7
- data/lib/rubygems_plugin.rb +2 -11
- data/rdoc-logo.svg +43 -0
- data/rdoc.gemspec +6 -4
- metadata +37 -23
- data/lib/rdoc/code_object/anon_class.rb +0 -10
- data/lib/rdoc/code_object/ghost_method.rb +0 -6
- data/lib/rdoc/code_object/meta_method.rb +0 -6
- 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 -432
- data/lib/rdoc/markup/attributes.rb +0 -70
- data/lib/rdoc/markup/regexp_handling.rb +0 -40
- data/lib/rdoc/parser/prism_ruby.rb +0 -1100
- data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
- data/lib/rdoc/parser/ruby_tools.rb +0 -163
|
@@ -24,7 +24,7 @@ class RDoc::Markup::ListItem
|
|
|
24
24
|
##
|
|
25
25
|
# Creates a new ListItem with an optional +label+ containing +parts+
|
|
26
26
|
|
|
27
|
-
def initialize
|
|
27
|
+
def initialize(label = nil, *parts)
|
|
28
28
|
@label = label
|
|
29
29
|
@parts = []
|
|
30
30
|
@parts.concat parts
|
|
@@ -92,7 +92,7 @@ class RDoc::Markup::ListItem
|
|
|
92
92
|
##
|
|
93
93
|
# Adds +parts+ to the ListItem
|
|
94
94
|
|
|
95
|
-
def push
|
|
95
|
+
def push(*parts)
|
|
96
96
|
@parts.concat parts
|
|
97
97
|
end
|
|
98
98
|
|
data/lib/rdoc/markup/parser.rb
CHANGED
|
@@ -11,7 +11,7 @@ require 'strscan'
|
|
|
11
11
|
# The parser only handles the block-level constructs Paragraph, List,
|
|
12
12
|
# ListItem, Heading, Verbatim, BlankLine, Rule and BlockQuote.
|
|
13
13
|
# Inline markup such as <tt>\+blah\+</tt> is handled separately by
|
|
14
|
-
# RDoc::Markup::
|
|
14
|
+
# RDoc::Markup::InlineParser.
|
|
15
15
|
#
|
|
16
16
|
# To see what markup the Parser implements read RDoc. To see how to use
|
|
17
17
|
# RDoc markup to format text in your program read RDoc::Markup.
|
|
@@ -209,18 +209,6 @@ class RDoc::Markup::PreProcess
|
|
|
209
209
|
when 'include' then
|
|
210
210
|
filename = param.split(' ', 2).first
|
|
211
211
|
include_file filename, prefix, encoding
|
|
212
|
-
when 'main' then
|
|
213
|
-
@options.main_page = param if @options.respond_to? :main_page
|
|
214
|
-
warn <<~MSG
|
|
215
|
-
The :main: directive is deprecated and will be removed in RDoc 7.
|
|
216
|
-
|
|
217
|
-
You can use these options to specify the initial page displayed instead:
|
|
218
|
-
- `--main=#{param}` via the command line
|
|
219
|
-
- `rdoc.main = "#{param}"` if you use `RDoc::Task`
|
|
220
|
-
- `main_page: #{param}` in your `.rdoc_options` file
|
|
221
|
-
MSG
|
|
222
|
-
|
|
223
|
-
blankline
|
|
224
212
|
when 'nodoc' then
|
|
225
213
|
return blankline unless code_object
|
|
226
214
|
code_object.document_self = nil # notify nodoc
|
|
@@ -245,19 +233,6 @@ class RDoc::Markup::PreProcess
|
|
|
245
233
|
|
|
246
234
|
code_object.stop_doc
|
|
247
235
|
|
|
248
|
-
blankline
|
|
249
|
-
when 'title' then
|
|
250
|
-
@options.default_title = param if @options.respond_to? :default_title=
|
|
251
|
-
|
|
252
|
-
warn <<~MSG
|
|
253
|
-
The :title: directive is deprecated and will be removed in RDoc 7.
|
|
254
|
-
|
|
255
|
-
You can use these options to specify the title displayed instead:
|
|
256
|
-
- `--title=#{param}` via the command line
|
|
257
|
-
- `rdoc.title = "#{param}"` if you use `RDoc::Task`
|
|
258
|
-
- `title: #{param}` in your `.rdoc_options` file
|
|
259
|
-
MSG
|
|
260
|
-
|
|
261
236
|
blankline
|
|
262
237
|
when 'yield', 'yields' then
|
|
263
238
|
return blankline unless code_object
|
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
|
|
11
11
|
super
|
|
12
12
|
|
|
13
13
|
@headings.clear
|
|
@@ -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
|
@@ -10,21 +10,36 @@ 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
|
|
14
14
|
super
|
|
15
15
|
|
|
16
16
|
@in_b = false
|
|
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
|