rdoc 6.9.0 → 6.10.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/lib/rdoc/generator/template/darkfish/css/rdoc.css +8 -18
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +7 -1
- data/lib/rdoc/markup/formatter.rb +19 -12
- data/lib/rdoc/markup/to_html_crossref.rb +61 -12
- data/lib/rdoc/markup/to_rdoc.rb +1 -1
- data/lib/rdoc/options.rb +16 -0
- data/lib/rdoc/parser/c.rb +5 -0
- data/lib/rdoc/rubygems_hook.rb +5 -2
- data/lib/rdoc/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59a2919a713acb30b6faff04d96186d25a5e7ab06b76fdfb0df2d42b086b4517
|
4
|
+
data.tar.gz: 78cb25012a74e585bf9deb1cb0829404cd568d098eac337048a04170f3a7df61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26d8df27e608c4f1d07d3c5f20996514523636447136ec9726ddd0cfdf64ee6c28cd9362e9b1c9747ba41076672c21a8e05c54d934de16f3bebed39bd95ebfc6
|
7
|
+
data.tar.gz: bfb38f2b3baecd464e36da81caf477de2096ab7c5c059a52167dc0f84bc00b579261b37bf18f63a1ae34953ad1d10699043e1c881166e7c11f17736edb2627e8
|
@@ -292,6 +292,14 @@ main {
|
|
292
292
|
main {
|
293
293
|
margin-left: var(--sidebar-width);
|
294
294
|
}
|
295
|
+
|
296
|
+
.table-of-contents main {
|
297
|
+
margin-left: 20em;
|
298
|
+
}
|
299
|
+
|
300
|
+
#navigation-toggle {
|
301
|
+
display: none;
|
302
|
+
}
|
295
303
|
}
|
296
304
|
|
297
305
|
main h1[class] {
|
@@ -311,12 +319,6 @@ main h6 {
|
|
311
319
|
color: var(--highlight-color);
|
312
320
|
}
|
313
321
|
|
314
|
-
@media (min-width: 1024px) {
|
315
|
-
.table-of-contents main {
|
316
|
-
margin-left: 20em;
|
317
|
-
}
|
318
|
-
}
|
319
|
-
|
320
322
|
/* Search */
|
321
323
|
#search-section {
|
322
324
|
padding: 1em;
|
@@ -514,18 +516,6 @@ main header h3 {
|
|
514
516
|
.hide { display: none !important; }
|
515
517
|
.initially-hidden { display: none; }
|
516
518
|
|
517
|
-
/* Media Queries */
|
518
|
-
@media (min-width: 1024px) {
|
519
|
-
/* Styles for larger screens */
|
520
|
-
.table-of-contents main {
|
521
|
-
margin-left: 20em;
|
522
|
-
}
|
523
|
-
}
|
524
|
-
|
525
|
-
@media print {
|
526
|
-
/* Print-specific styles */
|
527
|
-
}
|
528
|
-
|
529
519
|
/* Table of Contents */
|
530
520
|
.table-of-contents ul {
|
531
521
|
margin: 1em;
|
@@ -99,10 +99,16 @@ function hookSidebar() {
|
|
99
99
|
navigationToggle.ariaExpanded = navigationToggle.ariaExpanded !== 'true';
|
100
100
|
});
|
101
101
|
|
102
|
-
var isSmallViewport = window.matchMedia("(max-width:
|
102
|
+
var isSmallViewport = window.matchMedia("(max-width: 1023px)").matches;
|
103
103
|
if (isSmallViewport) {
|
104
104
|
navigation.hidden = true;
|
105
105
|
navigationToggle.ariaExpanded = false;
|
106
|
+
document.addEventListener('click', (e) => {
|
107
|
+
if (e.target.closest('#navigation a')) {
|
108
|
+
navigation.hidden = true;
|
109
|
+
navigationToggle.ariaExpanded = false;
|
110
|
+
}
|
111
|
+
});
|
106
112
|
}
|
107
113
|
}
|
108
114
|
|
@@ -195,18 +195,20 @@ class RDoc::Markup::Formatter
|
|
195
195
|
@in_tt > 0
|
196
196
|
end
|
197
197
|
|
198
|
+
def tt_tag? attr_mask, reverse = false
|
199
|
+
each_attr_tag(attr_mask, reverse) do |tag|
|
200
|
+
return true if tt? tag
|
201
|
+
end
|
202
|
+
false
|
203
|
+
end
|
204
|
+
|
198
205
|
##
|
199
206
|
# Turns on tags for +item+ on +res+
|
200
207
|
|
201
208
|
def on_tags res, item
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
@attr_tags.each do |tag|
|
206
|
-
if attr_mask & tag.bit != 0 then
|
207
|
-
res << annotate(tag.on)
|
208
|
-
@in_tt += 1 if tt? tag
|
209
|
-
end
|
209
|
+
each_attr_tag(item.turn_on) do |tag|
|
210
|
+
res << annotate(tag.on)
|
211
|
+
@in_tt += 1 if tt? tag
|
210
212
|
end
|
211
213
|
end
|
212
214
|
|
@@ -214,13 +216,18 @@ class RDoc::Markup::Formatter
|
|
214
216
|
# Turns off tags for +item+ on +res+
|
215
217
|
|
216
218
|
def off_tags res, item
|
217
|
-
|
219
|
+
each_attr_tag(item.turn_off, true) do |tag|
|
220
|
+
@in_tt -= 1 if tt? tag
|
221
|
+
res << annotate(tag.off)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
def each_attr_tag attr_mask, reverse = false
|
218
226
|
return if attr_mask.zero?
|
219
227
|
|
220
|
-
@attr_tags.reverse_each do |tag|
|
228
|
+
@attr_tags.public_send(reverse ? :reverse_each : :each) do |tag|
|
221
229
|
if attr_mask & tag.bit != 0 then
|
222
|
-
|
223
|
-
res << annotate(tag.off)
|
230
|
+
yield tag
|
224
231
|
end
|
225
232
|
end
|
226
233
|
end
|
@@ -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 name, text = nil, code = true
|
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] == '#'
|
@@ -70,7 +70,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
70
70
|
text ||= name
|
71
71
|
end
|
72
72
|
|
73
|
-
link lookup, text, code
|
73
|
+
link lookup, text, code, rdoc_ref: rdoc_ref
|
74
74
|
end
|
75
75
|
|
76
76
|
##
|
@@ -92,7 +92,7 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
92
92
|
return name if name =~ /\A[a-z]*\z/
|
93
93
|
end
|
94
94
|
|
95
|
-
cross_reference name
|
95
|
+
cross_reference name, rdoc_ref: false
|
96
96
|
end
|
97
97
|
|
98
98
|
##
|
@@ -100,9 +100,14 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
100
100
|
# handle other schemes.
|
101
101
|
|
102
102
|
def handle_regexp_HYPERLINK target
|
103
|
-
|
103
|
+
url = target.text
|
104
104
|
|
105
|
-
|
105
|
+
case url
|
106
|
+
when /\Ardoc-ref:/
|
107
|
+
cross_reference $', rdoc_ref: true
|
108
|
+
else
|
109
|
+
super
|
110
|
+
end
|
106
111
|
end
|
107
112
|
|
108
113
|
##
|
@@ -117,8 +122,8 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
117
122
|
url = target.text
|
118
123
|
|
119
124
|
case url
|
120
|
-
when /\Ardoc-ref:/
|
121
|
-
cross_reference $'
|
125
|
+
when /\Ardoc-ref:/
|
126
|
+
cross_reference $', rdoc_ref: true
|
122
127
|
else
|
123
128
|
super
|
124
129
|
end
|
@@ -129,16 +134,18 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
129
134
|
# RDoc::Markup::ToHtml to handle other schemes.
|
130
135
|
|
131
136
|
def gen_url url, text
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
137
|
+
if url =~ /\Ardoc-ref:/
|
138
|
+
name = $'
|
139
|
+
cross_reference name, text, name == text, rdoc_ref: true
|
140
|
+
else
|
141
|
+
super
|
142
|
+
end
|
136
143
|
end
|
137
144
|
|
138
145
|
##
|
139
146
|
# Creates an HTML link to +name+ with the given +text+.
|
140
147
|
|
141
|
-
def link name, text, code = true
|
148
|
+
def link name, text, code = true, rdoc_ref: false
|
142
149
|
if !(name.end_with?('+@', '-@')) and name =~ /(.*[^#:])?@/
|
143
150
|
name = $1
|
144
151
|
label = $'
|
@@ -148,6 +155,9 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
148
155
|
|
149
156
|
case ref
|
150
157
|
when String then
|
158
|
+
if rdoc_ref && @options.warn_missing_rdoc_ref
|
159
|
+
puts "#{@from_path}: `rdoc-ref:#{name}` can't be resolved for `#{text}`"
|
160
|
+
end
|
151
161
|
ref
|
152
162
|
else
|
153
163
|
path = ref ? ref.as_href(@from_path) : +""
|
@@ -172,4 +182,43 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
|
|
172
182
|
end
|
173
183
|
end
|
174
184
|
|
185
|
+
def convert_flow(flow)
|
186
|
+
res = []
|
187
|
+
|
188
|
+
i = 0
|
189
|
+
while i < flow.size
|
190
|
+
item = flow[i]
|
191
|
+
i += 1
|
192
|
+
case item
|
193
|
+
when RDoc::Markup::AttrChanger then
|
194
|
+
# Make "+Class#method+" a cross reference
|
195
|
+
if tt_tag?(item.turn_on) and
|
196
|
+
String === (str = flow[i]) and
|
197
|
+
RDoc::Markup::AttrChanger === flow[i+1] and
|
198
|
+
tt_tag?(flow[i+1].turn_off, true) and
|
199
|
+
(@options.hyperlink_all ? ALL_CROSSREF_REGEXP : CROSSREF_REGEXP).match?(str) and
|
200
|
+
(text = cross_reference str) != str
|
201
|
+
then
|
202
|
+
text = yield text, res if defined?(yield)
|
203
|
+
res << text
|
204
|
+
i += 2
|
205
|
+
next
|
206
|
+
end
|
207
|
+
off_tags res, item
|
208
|
+
on_tags res, item
|
209
|
+
when String then
|
210
|
+
text = convert_string(item)
|
211
|
+
text = yield text, res if defined?(yield)
|
212
|
+
res << text
|
213
|
+
when RDoc::Markup::RegexpHandling then
|
214
|
+
text = convert_regexp_handling(item)
|
215
|
+
text = yield text, res if defined?(yield)
|
216
|
+
res << text
|
217
|
+
else
|
218
|
+
raise "Unknown flow element: #{item.inspect}"
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
res.join('')
|
223
|
+
end
|
175
224
|
end
|
data/lib/rdoc/markup/to_rdoc.rb
CHANGED
data/lib/rdoc/options.rb
CHANGED
@@ -325,6 +325,12 @@ class RDoc::Options
|
|
325
325
|
|
326
326
|
attr_accessor :verbosity
|
327
327
|
|
328
|
+
##
|
329
|
+
# Warn if rdoc-ref links can't be resolved
|
330
|
+
# Default is +false+
|
331
|
+
|
332
|
+
attr_accessor :warn_missing_rdoc_ref
|
333
|
+
|
328
334
|
##
|
329
335
|
# URL of web cvs frontend
|
330
336
|
|
@@ -393,6 +399,7 @@ class RDoc::Options
|
|
393
399
|
@update_output_dir = true
|
394
400
|
@verbosity = 1
|
395
401
|
@visibility = :protected
|
402
|
+
@warn_missing_rdoc_ref = false
|
396
403
|
@webcvs = nil
|
397
404
|
@write_options = false
|
398
405
|
@encoding = Encoding::UTF_8
|
@@ -457,6 +464,8 @@ class RDoc::Options
|
|
457
464
|
@visibility = map['visibility'] if map.has_key?('visibility')
|
458
465
|
@webcvs = map['webcvs'] if map.has_key?('webcvs')
|
459
466
|
|
467
|
+
@warn_missing_rdoc_ref = map['warn_missing_rdoc_ref'] if map.has_key?('warn_missing_rdoc_ref')
|
468
|
+
|
460
469
|
if map.has_key?('rdoc_include')
|
461
470
|
@rdoc_include = sanitize_path map['rdoc_include']
|
462
471
|
end
|
@@ -1104,6 +1113,13 @@ Usage: #{opt.program_name} [options] [names...]
|
|
1104
1113
|
|
1105
1114
|
opt.separator nil
|
1106
1115
|
|
1116
|
+
opt.on("--warn-missing-rdoc-ref",
|
1117
|
+
"Warn if rdoc-ref links can't be resolved") do |value|
|
1118
|
+
@warn_missing_rdoc_ref = value
|
1119
|
+
end
|
1120
|
+
|
1121
|
+
opt.separator nil
|
1122
|
+
|
1107
1123
|
opt.on("--[no-]ignore-invalid",
|
1108
1124
|
"Ignore invalid options and continue",
|
1109
1125
|
"(default true).") do |value|
|
data/lib/rdoc/parser/c.rb
CHANGED
@@ -405,6 +405,7 @@ class RDoc::Parser::C < RDoc::Parser
|
|
405
405
|
\s*(.*?)\s*\)\s*;
|
406
406
|
%xm) do |type, var_name, const_name, definition|
|
407
407
|
var_name = "rb_cObject" if !var_name or var_name == "rb_mKernel"
|
408
|
+
type = "const" if type == "global_const"
|
408
409
|
handle_constants type, var_name, const_name, definition
|
409
410
|
end
|
410
411
|
|
@@ -760,6 +761,10 @@ class RDoc::Parser::C < RDoc::Parser
|
|
760
761
|
rb_define_(?<type>\w+)\(\s*(?:\w+),\s*
|
761
762
|
"(?<name>\w+)"\s*,
|
762
763
|
.*?\)\s*;
|
764
|
+
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
765
|
+
rb_define_global_(?<type>const)\(\s*
|
766
|
+
"(?<name>\w+)"\s*,
|
767
|
+
.*?\)\s*;
|
763
768
|
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
764
769
|
rb_file_(?<type>const)\(\s*
|
765
770
|
"(?<name>\w+)"\s*,
|
data/lib/rdoc/rubygems_hook.rb
CHANGED
@@ -271,7 +271,7 @@ end
|
|
271
271
|
module RDoc
|
272
272
|
class RubygemsHook
|
273
273
|
|
274
|
-
attr_accessor :generate_rdoc, :generate_ri
|
274
|
+
attr_accessor :generate_rdoc, :generate_ri, :force
|
275
275
|
|
276
276
|
def self.default_gem?
|
277
277
|
!File.exist?(File.join(__dir__, "..", "rubygems_plugin.rb"))
|
@@ -281,6 +281,7 @@ module RDoc
|
|
281
281
|
@spec = spec
|
282
282
|
@generate_rdoc = generate_rdoc
|
283
283
|
@generate_ri = generate_ri
|
284
|
+
@force = false
|
284
285
|
end
|
285
286
|
|
286
287
|
def generate
|
@@ -288,7 +289,9 @@ module RDoc
|
|
288
289
|
return unless self.class.default_gem?
|
289
290
|
|
290
291
|
# Generate document for compatibility if this is a default gem.
|
291
|
-
RubyGemsHook.new(@spec, @generate_rdoc, @generate_ri)
|
292
|
+
hook = RubyGemsHook.new(@spec, @generate_rdoc, @generate_ri)
|
293
|
+
hook.force = @force
|
294
|
+
hook.generate
|
292
295
|
end
|
293
296
|
|
294
297
|
def remove
|
data/lib/rdoc/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Hodel
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: exe
|
16
16
|
cert_chain: []
|
17
|
-
date: 2024-12-
|
17
|
+
date: 2024-12-18 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: psych
|
@@ -271,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
271
|
- !ruby/object:Gem::Version
|
272
272
|
version: '2.2'
|
273
273
|
requirements: []
|
274
|
-
rubygems_version: 3.5.
|
274
|
+
rubygems_version: 3.5.22
|
275
275
|
signing_key:
|
276
276
|
specification_version: 4
|
277
277
|
summary: RDoc produces HTML and command-line documentation for Ruby projects
|