rdoc 5.1.0 → 6.13.1

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