rdoc 6.6.3.1 → 6.8.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.rdoc +1 -1
- data/ExampleMarkdown.md +2 -0
- data/ExampleRDoc.rdoc +2 -0
- data/History.rdoc +64 -62
- data/LICENSE.rdoc +2 -0
- data/README.rdoc +13 -0
- data/RI.md +842 -0
- data/TODO.rdoc +8 -7
- data/lib/rdoc/{alias.rb → code_object/alias.rb} +1 -1
- data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +54 -0
- data/lib/rdoc/{context.rb → code_object/context.rb} +1 -1
- data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +3 -3
- data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +4 -4
- data/lib/rdoc/code_object.rb +6 -0
- data/lib/rdoc/generator/darkfish.rb +45 -3
- data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
- data/lib/rdoc/generator/pot/po_entry.rb +1 -1
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +23 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +20 -11
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +3 -8
- data/lib/rdoc/generator/template/darkfish/class.rhtml +69 -43
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +367 -392
- data/lib/rdoc/generator/template/darkfish/index.rhtml +7 -6
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +18 -1
- data/lib/rdoc/generator/template/darkfish/page.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +10 -8
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +5 -2
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +11 -0
- data/lib/rdoc/markdown.kpeg +3 -3
- data/lib/rdoc/markdown.rb +25 -15
- data/lib/rdoc/markup/attribute_manager.rb +2 -2
- data/lib/rdoc/markup/pre_process.rb +9 -6
- data/lib/rdoc/markup/to_bs.rb +26 -1
- data/lib/rdoc/markup/to_html_crossref.rb +12 -13
- data/lib/rdoc/markup/to_markdown.rb +4 -4
- data/lib/rdoc/markup/to_rdoc.rb +15 -7
- data/lib/rdoc/markup.rb +18 -13
- data/lib/rdoc/options.rb +23 -5
- data/lib/rdoc/parser/c.rb +19 -9
- data/lib/rdoc/parser/changelog.rb +2 -2
- data/lib/rdoc/parser/ripper_state_lex.rb +7 -305
- data/lib/rdoc/parser/ruby.rb +26 -8
- data/lib/rdoc/parser.rb +6 -3
- data/lib/rdoc/rd/block_parser.rb +3 -7
- data/lib/rdoc/rd/inline_parser.rb +3 -7
- data/lib/rdoc/rdoc.rb +3 -2
- data/lib/rdoc/ri/driver.rb +11 -7
- data/lib/rdoc/task.rb +2 -3
- data/lib/rdoc/tom_doc.rb +1 -7
- data/lib/rdoc/version.rb +1 -1
- data/lib/rdoc.rb +23 -23
- metadata +27 -24
- data/RI.rdoc +0 -57
- /data/lib/rdoc/{anon_class.rb → code_object/anon_class.rb} +0 -0
- /data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +0 -0
- /data/lib/rdoc/{attr.rb → code_object/attr.rb} +0 -0
- /data/lib/rdoc/{constant.rb → code_object/constant.rb} +0 -0
- /data/lib/rdoc/{context → code_object/context}/section.rb +0 -0
- /data/lib/rdoc/{extend.rb → code_object/extend.rb} +0 -0
- /data/lib/rdoc/{ghost_method.rb → code_object/ghost_method.rb} +0 -0
- /data/lib/rdoc/{include.rb → code_object/include.rb} +0 -0
- /data/lib/rdoc/{meta_method.rb → code_object/meta_method.rb} +0 -0
- /data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +0 -0
- /data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +0 -0
- /data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +0 -0
- /data/lib/rdoc/{require.rb → code_object/require.rb} +0 -0
- /data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +0 -0
@@ -1,15 +1,16 @@
|
|
1
1
|
<body id="top" role="document" class="file">
|
2
|
-
|
2
|
+
<%= render '_sidebar_toggle.rhtml' %>
|
3
|
+
|
4
|
+
<nav id="navigation" role="navigation">
|
3
5
|
<div id="project-navigation">
|
4
6
|
<%= render '_sidebar_navigation.rhtml' %>
|
5
|
-
|
6
7
|
<%= render '_sidebar_search.rhtml' %>
|
7
8
|
</div>
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
<%= render '_sidebar_pages.rhtml' %>
|
11
|
+
<%= render '_sidebar_classes.rhtml' %>
|
12
|
+
|
13
|
+
<%= render '_footer.rhtml' %>
|
13
14
|
</nav>
|
14
15
|
|
15
16
|
<main role="main">
|
@@ -34,7 +34,7 @@ function showSource( e ) {
|
|
34
34
|
};
|
35
35
|
|
36
36
|
function hookSourceViews() {
|
37
|
-
document.querySelectorAll('.method-
|
37
|
+
document.querySelectorAll('.method-source-toggle').forEach(function (codeObject) {
|
38
38
|
codeObject.addEventListener('click', showSource);
|
39
39
|
});
|
40
40
|
};
|
@@ -90,8 +90,25 @@ function hookFocus() {
|
|
90
90
|
});
|
91
91
|
}
|
92
92
|
|
93
|
+
function hookSidebar() {
|
94
|
+
var navigation = document.querySelector('#navigation');
|
95
|
+
var navigationToggle = document.querySelector('#navigation-toggle');
|
96
|
+
|
97
|
+
navigationToggle.addEventListener('click', function() {
|
98
|
+
navigation.hidden = !navigation.hidden;
|
99
|
+
navigationToggle.ariaExpanded = navigationToggle.ariaExpanded !== 'true';
|
100
|
+
});
|
101
|
+
|
102
|
+
var isSmallViewport = window.matchMedia("(max-width: 1024px)").matches;
|
103
|
+
if (isSmallViewport) {
|
104
|
+
navigation.hidden = true;
|
105
|
+
navigationToggle.ariaExpanded = false;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
93
109
|
document.addEventListener('DOMContentLoaded', function() {
|
94
110
|
hookSourceViews();
|
95
111
|
hookSearch();
|
96
112
|
hookFocus();
|
113
|
+
hookSidebar();
|
97
114
|
});
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<body id="top" role="document" class="file">
|
2
|
-
|
2
|
+
<%= render '_sidebar_toggle.rhtml' %>
|
3
|
+
|
4
|
+
<nav id="navigation" role="navigation">
|
3
5
|
<div id="project-navigation">
|
4
6
|
<%= render '_sidebar_navigation.rhtml' %>
|
5
7
|
<%= render '_sidebar_search.rhtml' %>
|
6
8
|
</div>
|
7
9
|
|
8
10
|
<%= render '_sidebar_table_of_contents.rhtml' %>
|
11
|
+
<%= render '_sidebar_pages.rhtml' %>
|
9
12
|
|
10
|
-
|
11
|
-
<%= render '_sidebar_pages.rhtml' %>
|
12
|
-
</div>
|
13
|
+
<%= render '_footer.rhtml' %>
|
13
14
|
</nav>
|
14
15
|
|
15
16
|
<main role="main" aria-label="Page <%=h file.full_name%>">
|
16
17
|
<%= file.description %>
|
17
18
|
</main>
|
18
|
-
|
@@ -1,13 +1,16 @@
|
|
1
1
|
<body role="document">
|
2
|
-
|
3
|
-
<%= render '_sidebar_navigation.rhtml' %>
|
2
|
+
<%= render '_sidebar_toggle.rhtml' %>
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<%= render '
|
9
|
-
<%= render '_sidebar_classes.rhtml' %>
|
4
|
+
<nav id="navigation" role="navigation">
|
5
|
+
<div id="project-navigation">
|
6
|
+
<%= render '_sidebar_navigation.rhtml' %>
|
7
|
+
<%= render '_sidebar_search.rhtml' %>
|
10
8
|
</div>
|
9
|
+
|
10
|
+
<%= render '_sidebar_pages.rhtml' %>
|
11
|
+
<%= render '_sidebar_classes.rhtml' %>
|
12
|
+
|
13
|
+
<%= render '_footer.rhtml' %>
|
11
14
|
</nav>
|
12
15
|
|
13
16
|
<main role="main">
|
@@ -15,4 +18,3 @@
|
|
15
18
|
|
16
19
|
<p><%= message %>
|
17
20
|
</main>
|
18
|
-
|
@@ -1,5 +1,7 @@
|
|
1
1
|
<body role="document">
|
2
|
-
|
2
|
+
<%= render '_sidebar_toggle.rhtml' %>
|
3
|
+
|
4
|
+
<nav id="navigation" role="navigation">
|
3
5
|
<div id="project-navigation">
|
4
6
|
<div id="home-section" class="nav-section">
|
5
7
|
<h2>
|
@@ -10,7 +12,8 @@
|
|
10
12
|
<%= render '_sidebar_search.rhtml' %>
|
11
13
|
</div>
|
12
14
|
|
13
|
-
<%= render '_sidebar_installed.rhtml' %>
|
15
|
+
<%= render '_sidebar_installed.rhtml' %>
|
16
|
+
<%= render '_footer.rhtml' %>
|
14
17
|
</nav>
|
15
18
|
|
16
19
|
<main role="main">
|
@@ -1,4 +1,15 @@
|
|
1
1
|
<body id="top" class="table-of-contents">
|
2
|
+
<%= render '_sidebar_toggle.rhtml' %>
|
3
|
+
|
4
|
+
<nav id="navigation" role="navigation">
|
5
|
+
<div id="project-navigation">
|
6
|
+
<%= render '_sidebar_navigation.rhtml' %>
|
7
|
+
|
8
|
+
<%= render '_sidebar_search.rhtml' %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<%= render '_footer.rhtml' %>
|
12
|
+
</nav>
|
2
13
|
<main role="main">
|
3
14
|
<h1 class="class"><%= h @title %></h1>
|
4
15
|
|
data/lib/rdoc/markdown.kpeg
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
# RDoc::Markdown as described by the [markdown syntax][syntax].
|
10
10
|
#
|
11
11
|
# To choose Markdown as your only default format see
|
12
|
-
# RDoc::Options@Saved+Options for instructions on setting up a `.
|
12
|
+
# RDoc::Options@Saved+Options for instructions on setting up a `.rdoc_options`
|
13
13
|
# file to store your project default.
|
14
14
|
#
|
15
15
|
# ## Usage
|
@@ -530,7 +530,7 @@ AtxInline = !@Newline !(@Sp /#*/ @Sp @Newline) Inline
|
|
530
530
|
AtxStart = < /\#{1,6}/ >
|
531
531
|
{ text.length }
|
532
532
|
|
533
|
-
AtxHeading = AtxStart:s @
|
533
|
+
AtxHeading = AtxStart:s @Spacechar+ AtxInline+:a (@Sp /#*/ @Sp)? @Newline
|
534
534
|
{ RDoc::Markup::Heading.new(s, a.join) }
|
535
535
|
|
536
536
|
SetextHeading = SetextHeading1 | SetextHeading2
|
@@ -1237,7 +1237,7 @@ DefinitionListItem = ( DefinitionListLabel+ ):label
|
|
1237
1237
|
list_items
|
1238
1238
|
}
|
1239
1239
|
|
1240
|
-
DefinitionListLabel =
|
1240
|
+
DefinitionListLabel = Inline:label @Sp @Newline
|
1241
1241
|
{ label }
|
1242
1242
|
|
1243
1243
|
DefinitionListDefinition = @NonindentSpace ":" @Space Inlines:a @BlankLine+
|
data/lib/rdoc/markdown.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# RDoc::Markdown as described by the [markdown syntax][syntax].
|
7
7
|
#
|
8
8
|
# To choose Markdown as your only default format see
|
9
|
-
# RDoc::Options@Saved+Options for instructions on setting up a `.
|
9
|
+
# RDoc::Options@Saved+Options for instructions on setting up a `.rdoc_options`
|
10
10
|
# file to store your project default.
|
11
11
|
#
|
12
12
|
# ## Usage
|
@@ -1158,7 +1158,7 @@ class RDoc::Markdown
|
|
1158
1158
|
return _tmp
|
1159
1159
|
end
|
1160
1160
|
|
1161
|
-
# AtxHeading = AtxStart:s @
|
1161
|
+
# AtxHeading = AtxStart:s @Spacechar+ AtxInline+:a (@Sp /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
|
1162
1162
|
def _AtxHeading
|
1163
1163
|
|
1164
1164
|
_save = self.pos
|
@@ -1169,12 +1169,22 @@ class RDoc::Markdown
|
|
1169
1169
|
self.pos = _save
|
1170
1170
|
break
|
1171
1171
|
end
|
1172
|
-
|
1172
|
+
_save1 = self.pos
|
1173
|
+
_tmp = _Spacechar()
|
1174
|
+
if _tmp
|
1175
|
+
while true
|
1176
|
+
_tmp = _Spacechar()
|
1177
|
+
break unless _tmp
|
1178
|
+
end
|
1179
|
+
_tmp = true
|
1180
|
+
else
|
1181
|
+
self.pos = _save1
|
1182
|
+
end
|
1173
1183
|
unless _tmp
|
1174
1184
|
self.pos = _save
|
1175
1185
|
break
|
1176
1186
|
end
|
1177
|
-
|
1187
|
+
_save2 = self.pos
|
1178
1188
|
_ary = []
|
1179
1189
|
_tmp = apply(:_AtxInline)
|
1180
1190
|
if _tmp
|
@@ -1187,37 +1197,37 @@ class RDoc::Markdown
|
|
1187
1197
|
_tmp = true
|
1188
1198
|
@result = _ary
|
1189
1199
|
else
|
1190
|
-
self.pos =
|
1200
|
+
self.pos = _save2
|
1191
1201
|
end
|
1192
1202
|
a = @result
|
1193
1203
|
unless _tmp
|
1194
1204
|
self.pos = _save
|
1195
1205
|
break
|
1196
1206
|
end
|
1197
|
-
_save2 = self.pos
|
1198
|
-
|
1199
1207
|
_save3 = self.pos
|
1208
|
+
|
1209
|
+
_save4 = self.pos
|
1200
1210
|
while true # sequence
|
1201
1211
|
_tmp = _Sp()
|
1202
1212
|
unless _tmp
|
1203
|
-
self.pos =
|
1213
|
+
self.pos = _save4
|
1204
1214
|
break
|
1205
1215
|
end
|
1206
1216
|
_tmp = scan(/\G(?-mix:#*)/)
|
1207
1217
|
unless _tmp
|
1208
|
-
self.pos =
|
1218
|
+
self.pos = _save4
|
1209
1219
|
break
|
1210
1220
|
end
|
1211
1221
|
_tmp = _Sp()
|
1212
1222
|
unless _tmp
|
1213
|
-
self.pos =
|
1223
|
+
self.pos = _save4
|
1214
1224
|
end
|
1215
1225
|
break
|
1216
1226
|
end # end sequence
|
1217
1227
|
|
1218
1228
|
unless _tmp
|
1219
1229
|
_tmp = true
|
1220
|
-
self.pos =
|
1230
|
+
self.pos = _save3
|
1221
1231
|
end
|
1222
1232
|
unless _tmp
|
1223
1233
|
self.pos = _save
|
@@ -16445,12 +16455,12 @@ class RDoc::Markdown
|
|
16445
16455
|
return _tmp
|
16446
16456
|
end
|
16447
16457
|
|
16448
|
-
# DefinitionListLabel =
|
16458
|
+
# DefinitionListLabel = Inline:label @Sp @Newline { label }
|
16449
16459
|
def _DefinitionListLabel
|
16450
16460
|
|
16451
16461
|
_save = self.pos
|
16452
16462
|
while true # sequence
|
16453
|
-
_tmp = apply(:
|
16463
|
+
_tmp = apply(:_Inline)
|
16454
16464
|
label = @result
|
16455
16465
|
unless _tmp
|
16456
16466
|
self.pos = _save
|
@@ -16539,7 +16549,7 @@ class RDoc::Markdown
|
|
16539
16549
|
Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
|
16540
16550
|
Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline")
|
16541
16551
|
Rules[:_AtxStart] = rule_info("AtxStart", "< /\\\#{1,6}/ > { text.length }")
|
16542
|
-
Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @
|
16552
|
+
Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @Spacechar+ AtxInline+:a (@Sp /\#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }")
|
16543
16553
|
Rules[:_SetextHeading] = rule_info("SetextHeading", "(SetextHeading1 | SetextHeading2)")
|
16544
16554
|
Rules[:_SetextBottom1] = rule_info("SetextBottom1", "/={1,}/ @Newline")
|
16545
16555
|
Rules[:_SetextBottom2] = rule_info("SetextBottom2", "/-{1,}/ @Newline")
|
@@ -16777,7 +16787,7 @@ class RDoc::Markdown
|
|
16777
16787
|
Rules[:_TableAlign] = rule_info("TableAlign", "< /:?-+:?/ > @Sp { text.start_with?(\":\") ? (text.end_with?(\":\") ? :center : :left) : (text.end_with?(\":\") ? :right : nil) }")
|
16778
16788
|
Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
|
16779
16789
|
Rules[:_DefinitionListItem] = rule_info("DefinitionListItem", "DefinitionListLabel+:label DefinitionListDefinition+:defns { list_items = [] list_items << RDoc::Markup::ListItem.new(label, defns.shift) list_items.concat defns.map { |defn| RDoc::Markup::ListItem.new nil, defn } unless list_items.empty? list_items }")
|
16780
|
-
Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "
|
16790
|
+
Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "Inline:label @Sp @Newline { label }")
|
16781
16791
|
Rules[:_DefinitionListDefinition] = rule_info("DefinitionListDefinition", "@NonindentSpace \":\" @Space Inlines:a @BlankLine+ { paragraph a }")
|
16782
16792
|
# :startdoc:
|
16783
16793
|
end
|
@@ -260,7 +260,7 @@ class RDoc::Markup::AttributeManager
|
|
260
260
|
|
261
261
|
def add_word_pair(start, stop, name, exclusive = false)
|
262
262
|
raise ArgumentError, "Word flags may not start with '<'" if
|
263
|
-
start[0,1] == '<'
|
263
|
+
start[0, 1] == '<'
|
264
264
|
|
265
265
|
bitmap = @attributes.bitmap_for name
|
266
266
|
|
@@ -271,7 +271,7 @@ class RDoc::Markup::AttributeManager
|
|
271
271
|
@word_pair_map[pattern] = bitmap
|
272
272
|
end
|
273
273
|
|
274
|
-
@protectable << start[0,1]
|
274
|
+
@protectable << start[0, 1]
|
275
275
|
@protectable.uniq!
|
276
276
|
|
277
277
|
@exclusive_bitmap |= bitmap if exclusive
|
@@ -97,15 +97,18 @@ class RDoc::Markup::PreProcess
|
|
97
97
|
# RDoc::CodeObject#metadata for details.
|
98
98
|
|
99
99
|
def handle text, code_object = nil, &block
|
100
|
+
first_line = 1
|
100
101
|
if RDoc::Comment === text then
|
101
102
|
comment = text
|
102
103
|
text = text.text
|
104
|
+
first_line = comment.line || 1
|
103
105
|
end
|
104
106
|
|
105
107
|
# regexp helper (square brackets for optional)
|
106
108
|
# $1 $2 $3 $4 $5
|
107
109
|
# [prefix][\]:directive:[spaces][param]newline
|
108
|
-
text = text.
|
110
|
+
text = text.lines.map.with_index(first_line) do |line, num|
|
111
|
+
next line unless line =~ /\A([ \t]*(?:#|\/?\*)?[ \t]*)(\\?):([\w-]+):([ \t]*)(.+)?(\r?\n|$)/
|
109
112
|
# skip something like ':toto::'
|
110
113
|
next $& if $4.empty? and $5 and $5[0, 1] == ':'
|
111
114
|
|
@@ -120,8 +123,8 @@ class RDoc::Markup::PreProcess
|
|
120
123
|
next "#{$1.strip}\n"
|
121
124
|
end
|
122
125
|
|
123
|
-
handle_directive $1, $3, $5, code_object, text.encoding, &block
|
124
|
-
end
|
126
|
+
handle_directive $1, $3, $5, code_object, text.encoding, num, &block
|
127
|
+
end.join
|
125
128
|
|
126
129
|
if comment then
|
127
130
|
comment.text = text
|
@@ -148,7 +151,7 @@ class RDoc::Markup::PreProcess
|
|
148
151
|
# When 1.8.7 support is ditched prefix can be defaulted to ''
|
149
152
|
|
150
153
|
def handle_directive prefix, directive, param, code_object = nil,
|
151
|
-
encoding = nil
|
154
|
+
encoding = nil, line = nil
|
152
155
|
blankline = "#{prefix.strip}\n"
|
153
156
|
directive = directive.downcase
|
154
157
|
|
@@ -220,11 +223,11 @@ class RDoc::Markup::PreProcess
|
|
220
223
|
# remove parameter &block
|
221
224
|
code_object.params = code_object.params.sub(/,?\s*&\w+/, '') if code_object.params
|
222
225
|
|
223
|
-
code_object.block_params = param
|
226
|
+
code_object.block_params = param || ''
|
224
227
|
|
225
228
|
blankline
|
226
229
|
else
|
227
|
-
result = yield directive, param if block_given?
|
230
|
+
result = yield directive, param, line if block_given?
|
228
231
|
|
229
232
|
case result
|
230
233
|
when nil then
|
data/lib/rdoc/markup/to_bs.rb
CHANGED
@@ -24,7 +24,7 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
24
24
|
def init_tags
|
25
25
|
add_tag :BOLD, '+b', '-b'
|
26
26
|
add_tag :EM, '+_', '-_'
|
27
|
-
add_tag :TT, ''
|
27
|
+
add_tag :TT, '', '' # we need in_tt information maintained
|
28
28
|
end
|
29
29
|
|
30
30
|
##
|
@@ -40,6 +40,31 @@ class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc
|
|
40
40
|
@res << "\n"
|
41
41
|
end
|
42
42
|
|
43
|
+
##
|
44
|
+
# Prepares the visitor for consuming +list_item+
|
45
|
+
|
46
|
+
def accept_list_item_start list_item
|
47
|
+
type = @list_type.last
|
48
|
+
|
49
|
+
case type
|
50
|
+
when :NOTE, :LABEL then
|
51
|
+
bullets = Array(list_item.label).map do |label|
|
52
|
+
attributes(label).strip
|
53
|
+
end.join "\n"
|
54
|
+
|
55
|
+
bullets << ":\n" unless bullets.empty?
|
56
|
+
|
57
|
+
@prefix = ' ' * @indent
|
58
|
+
@indent += 2
|
59
|
+
@prefix << bullets + (' ' * @indent)
|
60
|
+
else
|
61
|
+
bullet = type == :BULLET ? '*' : @list_index.last.to_s + '.'
|
62
|
+
@prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1)
|
63
|
+
width = bullet.length + 1
|
64
|
+
@indent += width
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
43
68
|
##
|
44
69
|
# Turns on or off regexp handling for +convert_string+
|
45
70
|
|
@@ -63,8 +63,8 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
63
63
|
|
64
64
|
name = name[1..-1] unless @show_hash if name[0, 1] == '#'
|
65
65
|
|
66
|
-
if !(name.end_with?('+@', '-@')) and name =~ /(.*[^#:])
|
67
|
-
text ||=
|
66
|
+
if !(name.end_with?('+@', '-@')) and name =~ /(.*[^#:])?@/
|
67
|
+
text ||= [CGI.unescape($'), (" at <code>#{$1}</code>" if $~.begin(1))].join("")
|
68
68
|
code = false
|
69
69
|
else
|
70
70
|
text ||= name
|
@@ -139,35 +139,34 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
139
139
|
# Creates an HTML link to +name+ with the given +text+.
|
140
140
|
|
141
141
|
def link name, text, code = true
|
142
|
-
if !(name.end_with?('+@', '-@')) and name =~ /(.*[^#:])
|
142
|
+
if !(name.end_with?('+@', '-@')) and name =~ /(.*[^#:])?@/
|
143
143
|
name = $1
|
144
144
|
label = $'
|
145
145
|
end
|
146
146
|
|
147
|
-
ref = @cross_reference.resolve name, text
|
147
|
+
ref = @cross_reference.resolve name, text if name
|
148
148
|
|
149
149
|
case ref
|
150
150
|
when String then
|
151
151
|
ref
|
152
152
|
else
|
153
|
-
path = ref.as_href
|
153
|
+
path = ref ? ref.as_href(@from_path) : +""
|
154
154
|
|
155
155
|
if code and RDoc::CodeObject === ref and !(RDoc::TopLevel === ref)
|
156
156
|
text = "<code>#{CGI.escapeHTML text}</code>"
|
157
157
|
end
|
158
158
|
|
159
|
-
if
|
160
|
-
path
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
if ref.respond_to?(:aref)
|
159
|
+
if label
|
160
|
+
if path =~ /#/
|
161
|
+
path << "-label-#{label}"
|
162
|
+
elsif ref&.sections&.any? { |section| label == section.title }
|
163
|
+
path << "##{label}"
|
164
|
+
elsif ref.respond_to?(:aref)
|
166
165
|
path << "##{ref.aref}-label-#{label}"
|
167
166
|
else
|
168
167
|
path << "#label-#{label}"
|
169
168
|
end
|
170
|
-
end
|
169
|
+
end
|
171
170
|
|
172
171
|
"<a href=\"#{path}\">#{text}</a>"
|
173
172
|
end
|
@@ -45,8 +45,6 @@ class RDoc::Markup::ToMarkdown < RDoc::Markup::ToRdoc
|
|
45
45
|
# Finishes consumption of `list`
|
46
46
|
|
47
47
|
def accept_list_end list
|
48
|
-
@res << "\n"
|
49
|
-
|
50
48
|
super
|
51
49
|
end
|
52
50
|
|
@@ -60,6 +58,8 @@ class RDoc::Markup::ToMarkdown < RDoc::Markup::ToRdoc
|
|
60
58
|
when :NOTE, :LABEL then
|
61
59
|
use_prefix
|
62
60
|
|
61
|
+
@res << "\n"
|
62
|
+
|
63
63
|
4
|
64
64
|
else
|
65
65
|
@list_index[-1] = @list_index.last.succ
|
@@ -81,11 +81,11 @@ class RDoc::Markup::ToMarkdown < RDoc::Markup::ToRdoc
|
|
81
81
|
attributes(label).strip
|
82
82
|
end.join "\n"
|
83
83
|
|
84
|
-
bullets << "\n
|
84
|
+
bullets << "\n" unless bullets.empty?
|
85
85
|
|
86
86
|
@prefix = ' ' * @indent
|
87
87
|
@indent += 4
|
88
|
-
@prefix << bullets
|
88
|
+
@prefix << bullets << ":" << (' ' * (@indent - 1))
|
89
89
|
else
|
90
90
|
bullet = type == :BULLET ? '*' : @list_index.last.to_s + '.'
|
91
91
|
@prefix = (' ' * @indent) + bullet.ljust(4)
|
data/lib/rdoc/markup/to_rdoc.rb
CHANGED
@@ -145,11 +145,19 @@ class RDoc::Markup::ToRdoc < RDoc::Markup::Formatter
|
|
145
145
|
|
146
146
|
case type
|
147
147
|
when :NOTE, :LABEL then
|
148
|
-
|
148
|
+
stripped_labels = Array(list_item.label).map do |label|
|
149
149
|
attributes(label).strip
|
150
|
-
end
|
150
|
+
end
|
151
|
+
|
152
|
+
bullets = case type
|
153
|
+
when :NOTE
|
154
|
+
stripped_labels.map { |b| "#{b}::" }
|
155
|
+
when :LABEL
|
156
|
+
stripped_labels.map { |b| "[#{b}]" }
|
157
|
+
end
|
151
158
|
|
152
|
-
bullets
|
159
|
+
bullets = bullets.join("\n")
|
160
|
+
bullets << "\n" unless stripped_labels.empty?
|
153
161
|
|
154
162
|
@prefix = ' ' * @indent
|
155
163
|
@indent += 2
|
@@ -241,8 +249,8 @@ class RDoc::Markup::ToRdoc < RDoc::Markup::Formatter
|
|
241
249
|
# Adds +table+ to the output
|
242
250
|
|
243
251
|
def accept_table header, body, aligns
|
244
|
-
widths = header.zip(body) do |
|
245
|
-
|
252
|
+
widths = header.zip(*body).map do |cols|
|
253
|
+
cols.map(&:size).max
|
246
254
|
end
|
247
255
|
aligns = aligns.map do |a|
|
248
256
|
case a
|
@@ -254,12 +262,12 @@ class RDoc::Markup::ToRdoc < RDoc::Markup::Formatter
|
|
254
262
|
:rjust
|
255
263
|
end
|
256
264
|
end
|
257
|
-
@res << header.zip(widths, aligns) do |h, w, a|
|
265
|
+
@res << header.zip(widths, aligns).map do |h, w, a|
|
258
266
|
h.__send__(a, w)
|
259
267
|
end.join("|").rstrip << "\n"
|
260
268
|
@res << widths.map {|w| "-" * w }.join("|") << "\n"
|
261
269
|
body.each do |row|
|
262
|
-
@res << row.zip(widths, aligns) do |t, w, a|
|
270
|
+
@res << row.zip(widths, aligns).map do |t, w, a|
|
263
271
|
t.__send__(a, w)
|
264
272
|
end.join("|").rstrip << "\n"
|
265
273
|
end
|
data/lib/rdoc/markup.rb
CHANGED
@@ -10,19 +10,24 @@
|
|
10
10
|
# RDoc::Markup and other markup formats do no output formatting, this is
|
11
11
|
# handled by the RDoc::Markup::Formatter subclasses.
|
12
12
|
#
|
13
|
-
# =
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
13
|
+
# = Markup Formats
|
14
|
+
#
|
15
|
+
# +RDoc+ supports these markup formats:
|
16
|
+
#
|
17
|
+
# - +rdoc+:
|
18
|
+
# the +RDoc+ markup format;
|
19
|
+
# see RDoc::MarkupReference.
|
20
|
+
# - +markdown+:
|
21
|
+
# The +markdown+ markup format as described in
|
22
|
+
# the {Markdown Guide}[https://www.markdownguide.org];
|
23
|
+
# see RDoc::Markdown.
|
24
|
+
# - +rd+:
|
25
|
+
# the +rd+ markup format format;
|
26
|
+
# see RDoc::RD.
|
27
|
+
# - +tomdoc+:
|
28
|
+
# the TomDoc format as described in
|
29
|
+
# {TomDoc for Ruby}[http://tomdoc.org];
|
30
|
+
# see RDoc::TomDoc.
|
26
31
|
#
|
27
32
|
# You can choose a markup format using the following methods:
|
28
33
|
#
|