rdoc 6.7.0 → 6.12.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/ExampleMarkdown.md +2 -0
  3. data/ExampleRDoc.rdoc +2 -0
  4. data/History.rdoc +64 -62
  5. data/LICENSE.rdoc +2 -0
  6. data/README.rdoc +13 -0
  7. data/RI.md +842 -0
  8. data/TODO.rdoc +8 -7
  9. data/lib/rdoc/{alias.rb → code_object/alias.rb} +1 -1
  10. data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +3 -3
  11. data/lib/rdoc/{attr.rb → code_object/attr.rb} +1 -1
  12. data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +82 -12
  13. data/lib/rdoc/{constant.rb → code_object/constant.rb} +1 -1
  14. data/lib/rdoc/{context → code_object/context}/section.rb +10 -68
  15. data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +17 -5
  16. data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +5 -5
  17. data/lib/rdoc/code_object.rb +6 -1
  18. data/lib/rdoc/comment.rb +11 -1
  19. data/lib/rdoc/generator/darkfish.rb +41 -3
  20. data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
  21. data/lib/rdoc/generator/pot/po_entry.rb +1 -1
  22. data/lib/rdoc/generator/template/darkfish/_head.rhtml +23 -0
  23. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -0
  24. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +20 -11
  25. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +3 -8
  26. data/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
  27. data/lib/rdoc/generator/template/darkfish/class.rhtml +69 -43
  28. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +380 -399
  29. data/lib/rdoc/generator/template/darkfish/index.rhtml +11 -10
  30. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +24 -1
  31. data/lib/rdoc/generator/template/darkfish/page.rhtml +5 -5
  32. data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +10 -8
  33. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +5 -2
  34. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +11 -0
  35. data/lib/rdoc/markdown.kpeg +1 -1
  36. data/lib/rdoc/markdown.rb +21 -11
  37. data/lib/rdoc/markup/attribute_manager.rb +2 -2
  38. data/lib/rdoc/markup/formatter.rb +19 -12
  39. data/lib/rdoc/markup/pre_process.rb +26 -6
  40. data/lib/rdoc/markup/to_bs.rb +1 -1
  41. data/lib/rdoc/markup/to_html.rb +1 -1
  42. data/lib/rdoc/markup/to_html_crossref.rb +63 -12
  43. data/lib/rdoc/markup/to_rdoc.rb +5 -5
  44. data/lib/rdoc/markup.rb +18 -13
  45. data/lib/rdoc/options.rb +78 -12
  46. data/lib/rdoc/parser/c.rb +26 -2
  47. data/lib/rdoc/parser/changelog.rb +5 -4
  48. data/lib/rdoc/parser/prism_ruby.rb +1099 -0
  49. data/lib/rdoc/parser/ripper_state_lex.rb +7 -305
  50. data/lib/rdoc/parser/ruby.rb +16 -7
  51. data/lib/rdoc/parser/simple.rb +1 -1
  52. data/lib/rdoc/parser.rb +5 -4
  53. data/lib/rdoc/rd/block_parser.rb +3 -3
  54. data/lib/rdoc/rd/inline_parser.rb +3 -3
  55. data/lib/rdoc/rdoc.rb +6 -3
  56. data/lib/rdoc/ri/driver.rb +74 -29
  57. data/lib/rdoc/rubygems_hook.rb +90 -8
  58. data/lib/rdoc/store.rb +12 -0
  59. data/lib/rdoc/task.rb +2 -3
  60. data/lib/rdoc/tom_doc.rb +1 -7
  61. data/lib/rdoc/version.rb +1 -1
  62. data/lib/rdoc.rb +22 -24
  63. data/lib/rubygems_plugin.rb +23 -0
  64. metadata +27 -26
  65. data/RI.rdoc +0 -57
  66. data/lib/rdoc/generator/template/darkfish/.document +0 -0
  67. data/lib/rdoc/generator/template/json_index/.document +0 -1
  68. /data/lib/rdoc/{anon_class.rb → code_object/anon_class.rb} +0 -0
  69. /data/lib/rdoc/{context.rb → code_object/context.rb} +0 -0
  70. /data/lib/rdoc/{extend.rb → code_object/extend.rb} +0 -0
  71. /data/lib/rdoc/{ghost_method.rb → code_object/ghost_method.rb} +0 -0
  72. /data/lib/rdoc/{include.rb → code_object/include.rb} +0 -0
  73. /data/lib/rdoc/{meta_method.rb → code_object/meta_method.rb} +0 -0
  74. /data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +0 -0
  75. /data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +0 -0
  76. /data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +0 -0
  77. /data/lib/rdoc/{require.rb → code_object/require.rb} +0 -0
  78. /data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*
2
- * "Darkfish" Rdoc CSS
2
+ * "Darkfish" RDoc CSS
3
3
  * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
4
4
  *
5
5
  * Author: Michael Granger <ged@FaerieMUD.org>
@@ -7,26 +7,45 @@
7
7
  */
8
8
 
9
9
  /* vim: ft=css et sw=2 ts=2 sts=2 */
10
- /* Base Green is: #6C8C22 */
11
-
12
- .hide { display: none !important; }
13
-
14
- * { padding: 0; margin: 0; }
15
10
 
11
+ /* 1. Variables and Root Styles */
12
+ :root {
13
+ --sidebar-width: 300px;
14
+ --highlight-color: #cc342d; /* Reddish color for accents and headings */
15
+ --secondary-highlight-color: #c83045; /* Darker reddish color for secondary highlights */
16
+ --text-color: #505050; /* Dark bluish-grey for text */
17
+ --background-color: #fefefe; /* Near white background */
18
+ --code-block-background-color: #f6f6f3; /* Slightly darker grey for code blocks */
19
+ --link-color: #42405F; /* Dark bluish-grey for links */
20
+ --link-hover-color: var(--highlight-color); /* Reddish color on hover */
21
+ --border-color: #e0e0e0;; /* General border color */
22
+ --source-code-toggle-color: var(--secondary-highlight-color);
23
+ --scrollbar-thumb-hover-background: #505050; /* Hover color for scrollbar thumb */
24
+ --table-header-background-color: #eceaed;
25
+ --table-td-background-color: #f5f4f6;
26
+
27
+ /* Font family variables */
28
+ --font-primary: 'Segoe UI', 'Verdana', 'Arial', sans-serif;
29
+ --font-heading: 'Helvetica', 'Arial', sans-serif;
30
+ --font-code: monospace;
31
+ }
32
+
33
+ /* 2. Global Styles */
16
34
  body {
17
- background: #fafafa;
18
- font-family: Lato, sans-serif;
19
- font-weight: 300;
35
+ background: var(--background-color);
36
+ font-family: var(--font-primary);
37
+ font-weight: 400;
38
+ color: var(--text-color);
39
+ line-height: 1.6;
20
40
 
21
41
  /* Layout */
22
- display: grid;
23
- grid-template-columns: auto 1fr;
24
- }
25
-
26
- body > :last-child {
27
- grid-column: 1 / 3;
42
+ display: flex;
43
+ flex-direction: column;
44
+ min-height: 100vh;
45
+ margin: 0;
28
46
  }
29
47
 
48
+ /* 3. Typography */
30
49
  h1 span,
31
50
  h2 span,
32
51
  h3 span,
@@ -65,39 +84,50 @@ h4:target,
65
84
  h5:target,
66
85
  h6:target {
67
86
  margin-left: -10px;
68
- border-left: 10px solid #f1edba;
87
+ border-left: 10px solid var(--border-color);
88
+ scroll-margin-top: 1rem;
69
89
  }
70
90
 
71
- :link,
72
- :visited {
73
- color: #6C8C22;
74
- text-decoration: none;
91
+ main .anchor-link:target {
92
+ scroll-margin-top: 1rem;
75
93
  }
76
94
 
77
- :link:hover,
78
- :visited:hover {
79
- border-bottom: 1px dotted #6C8C22;
95
+ /* 4. Links */
96
+ a {
97
+ color: var(--link-color);
98
+ transition: color 0.3s ease;
80
99
  }
81
100
 
82
- code,
83
- pre {
84
- font-family: "Source Code Pro", Monaco, monospace;
85
- background-color: rgba(27,31,35,0.05);
86
- padding: 0em 0.2em;
87
- border-radius: 0.2em;
101
+ a:hover {
102
+ color: var(--link-hover-color);
88
103
  }
89
104
 
90
- em {
91
- text-decoration-color: rgba(52, 48, 64, 0.25);
92
- text-decoration-line: underline;
93
- text-decoration-style: dotted;
105
+ a code:hover {
106
+ color: var(--link-hover-color);
94
107
  }
95
108
 
96
- strong,
97
- em {
98
- background-color: rgba(158, 178, 255, 0.1);
109
+ /* 5. Code and Pre */
110
+ code,
111
+ pre {
112
+ font-family: var(--font-code);
113
+ background-color: var(--code-block-background-color);
114
+ border: 1px solid var(--border-color);
115
+ border-radius: 6px;
116
+ padding: 16px;
117
+ overflow-x: auto;
118
+ font-size: 15px;
119
+ line-height: 1.5;
120
+ margin: 1em 0;
99
121
  }
100
122
 
123
+ code {
124
+ background-color: var(--code-block-background-color);
125
+ padding: 0.1em 0.3em;
126
+ border-radius: 3px;
127
+ font-size: 85%;
128
+ }
129
+
130
+ /* Tables */
101
131
  table {
102
132
  margin: 0;
103
133
  border-spacing: 0;
@@ -106,429 +136,408 @@ table {
106
136
 
107
137
  table tr th, table tr td {
108
138
  padding: 0.2em 0.4em;
109
- border: 1px solid #ccc;
139
+ border: 1px solid var(--border-color);
110
140
  }
111
141
 
112
142
  table tr th {
113
- background-color: #eceaed;
143
+ background-color: var(--table-header-background-color);
114
144
  }
115
145
 
116
146
  table tr:nth-child(even) td {
117
- background-color: #f5f4f6;
147
+ background-color: var(--table-td-background-color);
118
148
  }
119
149
 
120
- /* @group Generic Classes */
121
-
122
- .initially-hidden {
150
+ /* 7. Navigation and Sidebar */
151
+ nav {
152
+ font-family: var(--font-heading);
153
+ font-size: 16px;
154
+ border-right: 1px solid var(--border-color);
155
+ position: fixed;
156
+ top: 0;
157
+ bottom: 0;
158
+ left: 0;
159
+ width: var(--sidebar-width);
160
+ background: var(--background-color); /* It needs an explicit background for toggling narrow screens */
161
+ overflow-y: auto;
162
+ z-index: 10;
163
+ display: flex;
164
+ flex-direction: column;
165
+ color: var(--text-color);
166
+ }
167
+
168
+ nav[hidden] {
123
169
  display: none;
124
170
  }
125
171
 
126
- #search-field {
127
- width: 98%;
128
- background: white;
129
- border: none;
130
- height: 1.5em;
131
- -webkit-border-radius: 4px;
132
- -moz-border-radius: 4px;
133
- border-radius: 4px;
134
- text-align: left;
135
- }
136
- #search-field:focus {
137
- background: #f1edba;
138
- }
139
- #search-field:-moz-placeholder,
140
- #search-field::-webkit-input-placeholder {
141
- font-weight: bold;
142
- color: #666;
172
+ nav footer {
173
+ padding: 1em;
174
+ border-top: 1px solid var(--border-color);
143
175
  }
144
176
 
145
- .missing-docs {
146
- font-size: 120%;
147
- background: white url(../images/wrench_orange.png) no-repeat 4px center;
148
- color: #ccc;
149
- line-height: 2em;
150
- border: 1px solid #d00;
151
- opacity: 1;
152
- padding-left: 20px;
153
- text-indent: 24px;
154
- letter-spacing: 3px;
155
- font-weight: bold;
156
- -webkit-border-radius: 5px;
157
- -moz-border-radius: 5px;
177
+ nav footer a {
178
+ color: var(--secondary-highlight-color);
158
179
  }
159
180
 
160
- .target-section {
161
- border: 2px solid #dcce90;
162
- border-left-width: 8px;
181
+ nav .nav-section {
182
+ margin-top: 1em;
163
183
  padding: 0 1em;
164
- background: #fff3c2;
165
184
  }
166
185
 
167
- /* @end */
168
-
169
- /* @group Index Page, Standalone file pages */
170
- .table-of-contents ul {
171
- margin: 1em;
172
- list-style: none;
186
+ nav h2, nav h3 {
187
+ margin: 0 0 0.5em;
188
+ padding: 0.5em 0;
189
+ color: var(--highlight-color);
190
+ border-bottom: 1px solid var(--border-color);
173
191
  }
174
192
 
175
- .table-of-contents ul ul {
176
- margin-top: 0.25em;
193
+ nav h2 {
194
+ font-size: 1.2em;
177
195
  }
178
196
 
179
- .table-of-contents ul :link,
180
- .table-of-contents ul :visited {
181
- font-size: 16px;
197
+ nav h3,
198
+ #table-of-contents-navigation {
199
+ font-size: 1em;
182
200
  }
183
201
 
184
- .table-of-contents li {
185
- margin-bottom: 0.25em;
202
+ nav ul,
203
+ nav dl,
204
+ nav p {
205
+ padding: 0;
206
+ list-style: none;
207
+ margin: 0.5em 0;
186
208
  }
187
209
 
188
- .table-of-contents li .toc-toggle {
189
- width: 16px;
190
- height: 16px;
191
- background: url(../images/add.png) no-repeat;
210
+ nav ul li {
211
+ margin-bottom: 0.3em;
192
212
  }
193
213
 
194
- .table-of-contents li .toc-toggle.open {
195
- background: url(../images/delete.png) no-repeat;
214
+ nav ul ul {
215
+ padding-left: 1em;
196
216
  }
197
217
 
198
- /* @end */
199
-
200
- /* @group Top-Level Structure */
201
-
202
- nav {
203
- font-family: Helvetica, sans-serif;
204
- font-size: 14px;
205
- border-right: 1px solid #ccc;
206
- position: sticky;
207
- top: 0;
208
- overflow: auto;
209
-
210
- /* Layout */
211
- width: 260px; /* fallback */
212
- width: max(50px, 20vw);
213
- min-width: 50px;
214
- max-width: 80vw;
215
- height: calc(100vh - 100px); /* reduce the footer height */
216
- resize: horizontal;
218
+ nav ul ul ul {
219
+ padding-left: 1em;
217
220
  }
218
221
 
219
- main {
220
- display: block;
221
- margin: 1em;
222
- min-width: 340px;
223
- font-size: 16px;
222
+ nav ul ul ul ul {
223
+ padding-left: 1em;
224
224
  }
225
225
 
226
- main h1,
227
- main h2,
228
- main h3,
229
- main h4,
230
- main h5,
231
- main h6 {
232
- font-family: Helvetica, sans-serif;
226
+ nav a {
227
+ color: var(--link-color);
228
+ text-decoration: none;
233
229
  }
234
230
 
235
- .table-of-contents main {
236
- margin-left: 2em;
231
+ nav a:hover {
232
+ color: var(--link-hover-color);
233
+ text-decoration: underline;
237
234
  }
238
235
 
239
- #validator-badges {
240
- margin: 1em 1em 2em;
241
- font-size: smaller;
236
+ #navigation-toggle {
237
+ z-index: 1000;
238
+ font-size: 2em;
239
+ display: block;
240
+ position: fixed;
241
+ top: 10px;
242
+ left: 20px;
243
+ cursor: pointer;
242
244
  }
243
245
 
244
- /* @end */
245
-
246
- /* @group navigation */
247
- nav {
248
- margin-bottom: 1em;
246
+ #navigation-toggle[aria-expanded="true"] {
247
+ top: 10px;
248
+ left: 250px;
249
249
  }
250
250
 
251
- nav .nav-section {
252
- margin-top: 2em;
253
- border-top: 2px solid #aaa;
254
- font-size: 90%;
255
- overflow: hidden;
251
+ nav ul li details {
252
+ position: relative;
253
+ padding-right: 1.5em; /* Add space for the marker on the right */
256
254
  }
257
255
 
258
- nav h2 {
259
- margin: 0;
260
- padding: 2px 8px 2px 8px;
261
- background-color: #e8e8e8;
262
- color: #555;
263
- font-size: 125%;
264
- text-align: center;
256
+ nav ul li details > summary {
257
+ list-style: none; /* Remove the default marker */
258
+ position: relative; /* So that the open/close triangle can position itself absolutely inside */
265
259
  }
266
260
 
267
- nav h3,
268
- #table-of-contents-navigation {
269
- margin: 0;
270
- padding: 2px 8px 2px 8px;
271
- text-align: right;
272
- background-color: #e8e8e8;
273
- color: #555;
261
+ nav ul li details > summary::-webkit-details-marker {
262
+ display: none; /* Removes the default marker, in Safari 18. */
274
263
  }
275
264
 
276
- nav ul,
277
- nav dl,
278
- nav p {
279
- padding: 4px 8px 0;
280
- list-style: none;
265
+ nav ul li details > summary::after {
266
+ content: '▶'; /* Unicode right-pointing triangle */
267
+ position: absolute;
268
+ font-size: 0.8em;
269
+ bottom: 0.1em;
270
+ margin-left: 0.3em;
271
+ transition: transform 0.2s ease;
281
272
  }
282
273
 
283
- #project-navigation .nav-section {
284
- margin: 0;
285
- border-top: 0;
274
+ nav ul li details[open] > summary::after {
275
+ transform: rotate(90deg); /* Rotate the triangle when open */
286
276
  }
287
277
 
288
- #home-section h2 {
289
- text-align: center;
278
+ /* 8. Main Content */
279
+ main {
280
+ flex: 1;
281
+ display: block;
282
+ margin: 3em auto;
283
+ padding: 0 2em;
284
+ max-width: 800px;
285
+ font-size: 16px;
286
+ line-height: 1.6;
287
+ color: var(--text-color);
288
+ box-sizing: border-box;
290
289
  }
291
290
 
292
- #table-of-contents-navigation {
293
- font-size: 1.2em;
294
- font-weight: bold;
295
- text-align: center;
291
+ @media (min-width: 1024px) {
292
+ main {
293
+ margin-left: var(--sidebar-width);
294
+ }
295
+
296
+ .table-of-contents main {
297
+ margin-left: 20em;
298
+ }
299
+
300
+ #navigation-toggle {
301
+ display: none;
302
+ }
296
303
  }
297
304
 
298
- #search-section {
305
+ main h1[class] {
299
306
  margin-top: 0;
300
- border-top: 0;
307
+ margin-bottom: 1em;
308
+ font-size: 2.5em;
309
+ color: var(--highlight-color);
301
310
  }
302
311
 
303
- #search-field-wrapper {
304
- border-top: 1px solid #aaa;
305
- border-bottom: 1px solid #aaa;
306
- padding: 3px 8px;
307
- background-color: #e8e8e8;
308
- color: #555;
312
+ main h1,
313
+ main h2,
314
+ main h3,
315
+ main h4,
316
+ main h5,
317
+ main h6 {
318
+ font-family: var(--font-heading);
319
+ color: var(--highlight-color);
309
320
  }
310
321
 
311
- ul.link-list li {
312
- white-space: nowrap;
313
- line-height: 1.4em;
322
+ /* Search */
323
+ #search-section {
324
+ padding: 1em;
325
+ background-color: var(--background-color);
326
+ border-bottom: 1px solid var(--border-color);
314
327
  }
315
328
 
316
- ul.link-list .type {
317
- font-size: 8px;
318
- text-transform: uppercase;
319
- color: white;
320
- background: #969696;
321
- padding: 2px 4px;
322
- -webkit-border-radius: 5px;
329
+ #search-field-wrapper {
330
+ position: relative;
331
+ display: flex;
332
+ align-items: center;
323
333
  }
324
334
 
325
- dl.note-list dt {
326
- float: left;
327
- margin-right: 1em;
335
+ #search-field {
336
+ width: 100%;
337
+ padding: 0.5em 1em 0.5em 2.5em;
338
+ border: 1px solid var(--border-color);
339
+ border-radius: 20px;
340
+ font-size: 14px;
341
+ outline: none;
342
+ transition: border-color 0.3s ease;
343
+ color: var(--text-color);
328
344
  }
329
345
 
330
- .calls-super {
331
- background: url(../images/arrow_up.png) no-repeat right center;
346
+ #search-field:focus {
347
+ border-color: var(--highlight-color);
332
348
  }
333
349
 
334
- .nav-section details > summary {
335
- display: block;
350
+ #search-field::placeholder {
351
+ color: var(--text-color);
336
352
  }
337
353
 
338
- .nav-section details > summary::-webkit-details-marker {
339
- display: none;
354
+ #search-field-wrapper::before {
355
+ content: "\1F50D";
356
+ position: absolute;
357
+ left: 0.75em;
358
+ top: 50%;
359
+ transform: translateY(-50%);
360
+ font-size: 14px;
361
+ color: var(--text-color);
362
+ opacity: 0.6;
340
363
  }
341
364
 
342
- .nav-section details > summary::before {
343
- content: "";
365
+ /* Search Results */
366
+ #search-results {
367
+ font-family: var(--font-primary);
368
+ font-weight: 300;
344
369
  }
345
370
 
346
- .nav-section details > summary::after {
347
- content: "\25B6"; /* BLACK RIGHT-POINTING TRIANGLE */
348
- font-size: 0.8em;
349
- margin-left: 0.4em;
371
+ #search-results .search-match {
372
+ font-family: var(--font-heading);
373
+ font-weight: normal;
350
374
  }
351
375
 
352
- .nav-section details[open] > summary::after {
353
- content: "\25BD"; /* WHITE DOWN-POINTING TRIANGLE */
376
+ #search-results .search-selected {
377
+ background: var(--code-block-background-color);
378
+ border-bottom: 1px solid transparent;
354
379
  }
355
380
 
356
- /* @end */
357
-
358
- /* @group Documentation Section */
359
- main {
360
- color: #333;
381
+ #search-results li {
382
+ list-style: none;
383
+ border-bottom: 1px solid var(--border-color);
384
+ margin-bottom: 0.5em;
361
385
  }
362
386
 
363
- main > h1:first-child,
364
- main > h2:first-child,
365
- main > h3:first-child,
366
- main > h4:first-child,
367
- main > h5:first-child,
368
- main > h6:first-child {
369
- margin-top: 0px;
387
+ #search-results li:last-child {
388
+ border-bottom: none;
389
+ margin-bottom: 0;
370
390
  }
371
391
 
372
- main sup {
373
- vertical-align: super;
374
- font-size: 0.8em;
392
+ #search-results li p {
393
+ padding: 0;
394
+ margin: 0.5em;
375
395
  }
376
396
 
377
- /* The heading with the class name */
378
- main h1[class] {
379
- margin-top: 0;
380
- margin-bottom: 1em;
381
- font-size: 2em;
382
- color: #6C8C22;
397
+ #search-results .search-namespace {
398
+ font-weight: bold;
383
399
  }
384
400
 
385
- main h1 {
386
- margin: 2em 0 0.5em;
387
- font-size: 1.7em;
401
+ #search-results li em {
402
+ background-color: rgba(224, 108, 117, 0.1);
403
+ font-style: normal;
388
404
  }
389
405
 
390
- main h2 {
391
- margin: 2em 0 0.5em;
392
- font-size: 1.5em;
406
+ #search-results pre {
407
+ margin: 0.5em;
408
+ font-family: var(--font-code);
393
409
  }
394
410
 
395
- main h3 {
396
- margin: 2em 0 0.5em;
397
- font-size: 1.2em;
398
- }
411
+ /* Syntax Highlighting - Gruvbox Light Scheme */
399
412
 
400
- main h4 {
401
- margin: 2em 0 0.5em;
402
- font-size: 1.1em;
403
- }
413
+ .ruby-constant { color: #AF3A03; } /* Dark Orange */
414
+ .ruby-keyword { color: #9D0006; } /* Dark Red */
415
+ .ruby-ivar { color: #B57614; } /* Brown */
416
+ .ruby-operator { color: #427B58; } /* Dark Teal */
417
+ .ruby-identifier { color: #076678; } /* Deep Teal */
418
+ .ruby-node { color: #8F3F71; } /* Plum */
419
+ .ruby-comment { color: #928374; font-style: italic; } /* Gray */
420
+ .ruby-regexp { color: #8F3F71; } /* Plum */
421
+ .ruby-value { color: #AF3A03; } /* Dark Orange */
422
+ .ruby-string { color: #79740E; } /* Olive */
404
423
 
405
- main h5 {
406
- margin: 2em 0 0.5em;
407
- font-size: 1em;
424
+ /* Emphasis */
425
+ em {
426
+ text-decoration-color: rgba(52, 48, 64, 0.25);
427
+ text-decoration-line: underline;
428
+ text-decoration-style: dotted;
408
429
  }
409
430
 
410
- main h6 {
411
- margin: 2em 0 0.5em;
412
- font-size: 1em;
431
+ strong,
432
+ em {
433
+ color: var(--highlight-color);
434
+ background-color: rgba(255, 111, 97, 0.1); /* Light red background for emphasis */
413
435
  }
414
436
 
437
+ /* Paragraphs */
415
438
  main p {
416
- margin: 0 0 0.5em;
417
- line-height: 1.4em;
439
+ line-height: 1.5em;
440
+ font-weight: 400;
418
441
  }
419
442
 
443
+ /* Preformatted Text */
420
444
  main pre {
421
445
  margin: 1.2em 0.5em;
422
446
  padding: 1em;
423
447
  font-size: 0.8em;
424
448
  }
425
449
 
450
+ /* Horizontal Rules */
426
451
  main hr {
427
452
  margin: 1.5em 1em;
428
- border: 2px solid #ddd;
453
+ border: 2px solid var(--border-color);
429
454
  }
430
455
 
456
+ /* Blockquotes */
431
457
  main blockquote {
432
458
  margin: 0 2em 1.2em 1.2em;
433
459
  padding-left: 0.5em;
434
- border-left: 2px solid #ddd;
435
- }
436
-
437
- main ol,
438
- main ul {
439
- margin: 1em 2em;
460
+ border-left: 2px solid var(--border-color);
440
461
  }
441
462
 
463
+ /* Lists */
442
464
  main li > p {
443
- margin-bottom: 0.5em;
465
+ margin: 0.5em;
444
466
  }
445
467
 
468
+ /* Definition Lists */
446
469
  main dl {
447
470
  margin: 1em 0.5em;
448
471
  }
449
472
 
450
473
  main dt {
451
- margin-bottom: 0.5em;
474
+ line-height: 1.5; /* matches `main p` */
452
475
  font-weight: bold;
453
476
  }
454
477
 
478
+ main dl.note-list dt {
479
+ margin-right: 1em;
480
+ float: left;
481
+ }
482
+
483
+ main dl.note-list dt:has(+ dt) {
484
+ margin-right: 0.25em;
485
+ }
486
+
487
+ main dl.note-list dt:has(+ dt)::after {
488
+ content: ', ';
489
+ font-weight: normal;
490
+ }
491
+
455
492
  main dd {
456
- margin: 0 1em 1em 0.5em;
493
+ margin: 0 0 1em 1em;
457
494
  }
458
495
 
496
+ main dd p:first-child {
497
+ margin-top: 0;
498
+ }
499
+
500
+ /* Headers within Main */
459
501
  main header h2 {
460
502
  margin-top: 2em;
461
503
  border-width: 0;
462
- border-top: 4px solid #bbb;
504
+ border-top: 4px solid var(--border-color);
463
505
  font-size: 130%;
464
506
  }
465
507
 
466
508
  main header h3 {
467
509
  margin: 2em 0 1.5em;
468
510
  border-width: 0;
469
- border-top: 3px solid #bbb;
511
+ border-top: 3px solid var(--border-color);
470
512
  font-size: 120%;
471
513
  }
472
514
 
473
- .documentation-section-title {
474
- position: relative;
475
- }
476
- .documentation-section-title .section-click-top {
477
- position: absolute;
478
- top: 6px;
479
- left: 12px;
480
- font-size: 10px;
481
- color: #9b9877;
482
- visibility: hidden;
483
- padding-left: 0.5px;
484
- }
485
-
486
- .documentation-section-title:hover .section-click-top {
487
- visibility: visible;
488
- }
489
-
490
- .constants-list > dl {
491
- margin: 1em 0 2em;
492
- border: 0;
493
- }
494
-
495
- .constants-list > dl dt {
496
- margin-bottom: 0.75em;
497
- padding-left: 0;
498
- font-family: "Source Code Pro", Monaco, monospace;
499
- font-size: 110%;
500
- }
501
-
502
- .constants-list > dl dt a {
503
- color: inherit;
504
- }
515
+ /* Utility Classes */
516
+ .hide { display: none !important; }
517
+ .initially-hidden { display: none; }
505
518
 
506
- .constants-list > dl dd {
507
- margin: 0 0 2em 0;
508
- padding: 0;
509
- color: #666;
519
+ /* Table of Contents */
520
+ .table-of-contents ul {
521
+ margin: 1em;
522
+ list-style: none;
510
523
  }
511
524
 
512
- .documentation-section h2 {
513
- position: relative;
525
+ .table-of-contents ul ul {
526
+ margin-top: 0.25em;
514
527
  }
515
528
 
516
- .documentation-section h2 a {
517
- position: absolute;
518
- top: 8px;
519
- right: 10px;
520
- font-size: 12px;
521
- color: #9b9877;
522
- visibility: hidden;
529
+ .table-of-contents ul :link,
530
+ .table-of-contents ul :visited {
531
+ font-size: 16px;
523
532
  }
524
533
 
525
- .documentation-section h2:hover a {
526
- visibility: visible;
534
+ .table-of-contents li {
535
+ margin-bottom: 0.25em;
527
536
  }
528
537
 
529
- /* @group Method Details */
530
-
538
+ /* Method Details */
531
539
  main .method-source-code {
540
+ visibility: hidden;
532
541
  max-height: 0;
533
542
  overflow: auto;
534
543
  transition-duration: 200ms;
@@ -537,59 +546,63 @@ main .method-source-code {
537
546
  transition-timing-function: ease-in-out;
538
547
  }
539
548
 
549
+ main .method-source-code pre {
550
+ border-color: var(--source-code-toggle-color);
551
+ }
552
+
540
553
  main .method-source-code.active-menu {
554
+ visibility: visible;
541
555
  max-height: 100vh;
542
556
  }
543
557
 
544
558
  main .method-description .method-calls-super {
545
- color: #333;
559
+ color: var(--text-color);
546
560
  font-weight: bold;
547
561
  }
548
562
 
549
563
  main .method-detail {
550
564
  margin-bottom: 2.5em;
551
- cursor: pointer;
552
565
  }
553
566
 
554
567
  main .method-detail:target {
555
568
  margin-left: -10px;
556
- border-left: 10px solid #f1edba;
569
+ border-left: 10px solid var(--border-color);
570
+ }
571
+
572
+ main .method-header {
573
+ display: inline-block;
557
574
  }
558
575
 
559
576
  main .method-heading {
560
577
  position: relative;
561
- font-family: "Source Code Pro", Monaco, monospace;
578
+ font-family: var(--font-code);
562
579
  font-size: 110%;
563
580
  font-weight: bold;
564
- color: #333;
565
- }
566
- main .method-heading :link,
567
- main .method-heading :visited {
568
- color: inherit;
569
581
  }
570
- main .method-click-advice {
582
+
583
+ main .method-heading::after {
584
+ content: '¶';
571
585
  position: absolute;
572
- top: 2px;
573
- right: 5px;
574
- font-size: 12px;
575
- color: #9b9877;
576
586
  visibility: hidden;
577
- padding-right: 20px;
578
- line-height: 20px;
579
- background: url(../images/zoom.png) no-repeat right top;
587
+ color: var(--highlight-color);
588
+ font-size: 0.5em;
580
589
  }
581
- main .method-header:hover .method-click-advice {
590
+
591
+ main .method-heading:hover::after {
582
592
  visibility: visible;
583
593
  }
584
594
 
585
- main .method-alias .method-heading {
586
- color: #666;
595
+ main .method-controls {
596
+ line-height: 20px;
597
+ float: right;
598
+ color: var(--source-code-toggle-color);
599
+ cursor: pointer;
587
600
  }
588
601
 
589
602
  main .method-description,
590
603
  main .aliases {
591
604
  margin-top: 0.75em;
592
- color: #333;
605
+ color: var(--text-color);
593
606
  }
594
607
 
595
608
  main .aliases {
@@ -597,6 +610,17 @@ main .aliases {
597
610
  font-style: italic;
598
611
  cursor: default;
599
612
  }
613
+
614
+ main .aliases a {
615
+ color: var(--secondary-highlight-color);
616
+ }
617
+
618
+ main .mixin-from {
619
+ font-size: 80%;
620
+ font-style: italic;
621
+ margin-bottom: 0.75em;
622
+ }
623
+
600
624
  main .method-description ul {
601
625
  margin-left: 1.5em;
602
626
  }
@@ -605,83 +629,40 @@ main #attribute-method-details .method-detail:hover {
605
629
  background-color: transparent;
606
630
  cursor: default;
607
631
  }
632
+
608
633
  main .attribute-access-type {
609
634
  text-transform: uppercase;
610
- padding: 0 1em;
611
- }
612
- /* @end */
613
-
614
- /* @end */
615
-
616
- /* @group Source Code */
617
-
618
- pre {
619
- margin: 0.5em 0;
620
- border: 1px dashed #999;
621
- padding: 0.5em;
622
- background: #262626;
623
- color: white;
624
- overflow: auto;
625
- }
626
-
627
- .ruby-constant { color: #7fffd4; background: transparent; }
628
- .ruby-keyword { color: #00ffff; background: transparent; }
629
- .ruby-ivar { color: #eedd82; background: transparent; }
630
- .ruby-operator { color: #00ffee; background: transparent; }
631
- .ruby-identifier { color: #ffdead; background: transparent; }
632
- .ruby-node { color: #ffa07a; background: transparent; }
633
- .ruby-comment { color: #dc0000; background: transparent; }
634
- .ruby-regexp { color: #ffa07a; background: transparent; }
635
- .ruby-value { color: #7fffd4; background: transparent; }
636
-
637
- /* @end */
638
-
639
-
640
- /* @group search results */
641
- #search-results {
642
- font-family: Lato, sans-serif;
643
- font-weight: 300;
644
- }
645
-
646
- #search-results .search-match {
647
- font-family: Helvetica, sans-serif;
648
- font-weight: normal;
649
- }
650
-
651
- #search-results .search-selected {
652
- background: #e8e8e8;
653
- border-bottom: 1px solid transparent;
654
635
  }
655
636
 
656
- #search-results li {
657
- list-style: none;
658
- border-bottom: 1px solid #aaa;
659
- margin-bottom: 0.5em;
660
- }
637
+ /* Responsive Adjustments */
638
+ @media (max-width: 480px) {
639
+ nav {
640
+ width: 100%;
641
+ }
661
642
 
662
- #search-results li:last-child {
663
- border-bottom: none;
664
- margin-bottom: 0;
665
- }
643
+ main {
644
+ margin: 1em auto;
645
+ padding: 0 1em;
646
+ max-width: 100%;
647
+ }
666
648
 
667
- #search-results li p {
668
- padding: 0;
669
- margin: 0.5em;
670
- }
649
+ #navigation-toggle {
650
+ right: 10px;
651
+ left: auto;
652
+ }
671
653
 
672
- #search-results .search-namespace {
673
- font-weight: bold;
674
- }
654
+ #navigation-toggle[aria-expanded="true"] {
655
+ left: auto;
656
+ }
675
657
 
676
- #search-results li em {
677
- background: yellow;
678
- font-style: normal;
679
- }
658
+ table {
659
+ display: block;
660
+ overflow-x: auto;
661
+ white-space: nowrap;
662
+ }
680
663
 
681
- #search-results pre {
682
- margin: 0.5em;
683
- font-family: "Source Code Pro", Monaco, monospace;
664
+ main .method-controls {
665
+ margin-top: 10px;
666
+ float: none;
667
+ }
684
668
  }
685
-
686
- /* @end */
687
-