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