rdoc 6.6.3.1 → 6.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
#
|