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,23 +1,23 @@
1
1
  <body id="top" role="document" class="file">
2
- <nav role="navigation">
2
+ <%= render '_sidebar_toggle.rhtml' %>
3
+
4
+ <nav id="navigation" role="navigation">
3
5
  <div id="project-navigation">
4
6
  <%= render '_sidebar_navigation.rhtml' %>
5
-
6
7
  <%= render '_sidebar_search.rhtml' %>
7
8
  </div>
8
9
 
9
- <div id="project-metadata">
10
- <%= render '_sidebar_pages.rhtml' %>
11
- <%= render '_sidebar_classes.rhtml' %>
12
- </div>
10
+ <%= render '_sidebar_table_of_contents.rhtml' if defined?(current) %>
11
+ <%= render '_sidebar_pages.rhtml' %>
12
+ <%= render '_sidebar_classes.rhtml' %>
13
+
14
+ <%= render '_footer.rhtml' %>
13
15
  </nav>
14
16
 
15
17
  <main role="main">
16
- <% if @options.main_page and
17
- main_page = @files.find { |f| f.full_name == @options.main_page } then %>
18
- <%= main_page.description %>
19
- <% else %>
20
- <p>This is the API documentation for <%= @title %>.
21
- <% end %>
18
+ <%- if @main_page %>
19
+ <%= @main_page.description %>
20
+ <%- else -%>
21
+ <p>This is the API documentation for <%= h @title %>.
22
+ <%- end -%>
22
23
  </main>
23
-
@@ -8,6 +8,7 @@
8
8
  */
9
9
 
10
10
  /* Provide console simulation for firebug-less environments */
11
+ /*
11
12
  if (!("console" in window) || !("firebug" in console)) {
12
13
  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
13
14
  "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
@@ -16,41 +17,35 @@ if (!("console" in window) || !("firebug" in console)) {
16
17
  for (var i = 0; i < names.length; ++i)
17
18
  window.console[names[i]] = function() {};
18
19
  };
19
-
20
-
21
- /**
22
- * Unwrap the first element that matches the given @expr@ from the targets and return them.
23
- */
24
- $.fn.unwrap = function( expr ) {
25
- return this.each( function() {
26
- $(this).parents( expr ).eq( 0 ).after( this ).remove();
27
- });
28
- };
20
+ */
29
21
 
30
22
 
31
23
  function showSource( e ) {
32
24
  var target = e.target;
33
- var codeSections = $(target).
34
- parents('.method-detail').
35
- find('.method-source-code');
36
-
37
- $(target).
38
- parents('.method-detail').
39
- find('.method-source-code').
40
- slideToggle();
25
+ while (!target.classList.contains('method-detail')) {
26
+ target = target.parentNode;
27
+ }
28
+ if (typeof target !== "undefined" && target !== null) {
29
+ target = target.querySelector('.method-source-code');
30
+ }
31
+ if (typeof target !== "undefined" && target !== null) {
32
+ target.classList.toggle('active-menu')
33
+ }
41
34
  };
42
35
 
43
36
  function hookSourceViews() {
44
- $('.method-heading').click( showSource );
37
+ document.querySelectorAll('.method-source-toggle').forEach(function (codeObject) {
38
+ codeObject.addEventListener('click', showSource);
39
+ });
45
40
  };
46
41
 
47
42
  function hookSearch() {
48
- var input = $('#search-field').eq(0);
49
- var result = $('#search-results').eq(0);
50
- $(result).show();
43
+ var input = document.querySelector('#search-field');
44
+ var result = document.querySelector('#search-results');
45
+ result.classList.remove("initially-hidden");
51
46
 
52
- var search_section = $('#search-section').get(0);
53
- $(search_section).show();
47
+ var search_section = document.querySelector('#search-section');
48
+ search_section.classList.remove("initially-hidden");
54
49
 
55
50
  var search = new Search(search_data, input, result);
56
51
 
@@ -59,7 +54,7 @@ function hookSearch() {
59
54
  var html = '';
60
55
 
61
56
  // TODO add relative path to <script> per-page
62
- html += '<p class="search-match"><a href="' + index_rel_prefix + result.path + '">' + this.hlt(result.title);
57
+ html += '<p class="search-match"><a href="' + index_rel_prefix + this.escapeHTML(result.path) + '">' + this.hlt(result.title);
63
58
  if (result.params)
64
59
  html += '<span class="params">' + result.params + '</span>';
65
60
  html += '</a>';
@@ -77,85 +72,49 @@ function hookSearch() {
77
72
  }
78
73
 
79
74
  search.select = function(result) {
80
- var result_element = result.get(0);
81
- window.location.href = result_element.firstChild.firstChild.href;
75
+ window.location.href = result.firstChild.firstChild.href;
82
76
  }
83
77
 
84
78
  search.scrollIntoView = search.scrollInWindow;
85
79
  };
86
80
 
87
- function highlightTarget( anchor ) {
88
- console.debug( "Highlighting target '%s'.", anchor );
89
-
90
- $("a[name]").each( function() {
91
- if ( $(this).attr("name") == anchor ) {
92
- if ( !$(this).parent().parent().hasClass('target-section') ) {
93
- console.debug( "Wrapping the target-section" );
94
- $('div.method-detail').unwrap( 'div.target-section' );
95
- $(this).parent().wrap( '<div class="target-section"></div>' );
96
- } else {
97
- console.debug( "Already wrapped." );
98
- }
81
+ function hookFocus() {
82
+ document.addEventListener("keydown", (event) => {
83
+ if (document.activeElement.tagName === 'INPUT') {
84
+ return;
85
+ }
86
+ if (event.key === "/") {
87
+ event.preventDefault();
88
+ document.querySelector('#search-field').focus();
99
89
  }
100
90
  });
101
- };
91
+ }
102
92
 
103
- function highlightLocationTarget() {
104
- console.debug( "Location hash: %s", window.location.hash );
105
- if ( ! window.location.hash || window.location.hash.length == 0 ) return;
93
+ function hookSidebar() {
94
+ var navigation = document.querySelector('#navigation');
95
+ var navigationToggle = document.querySelector('#navigation-toggle');
106
96
 
107
- var anchor = window.location.hash.substring(1);
108
- console.debug( "Found anchor: %s; matching %s", anchor, "a[name=" + anchor + "]" );
109
-
110
- highlightTarget( anchor );
111
- };
112
-
113
- function highlightClickTarget( event ) {
114
- console.debug( "Highlighting click target for event %o", event.target );
115
- try {
116
- var anchor = $(event.target).attr( 'href' ).substring(1);
117
- console.debug( "Found target anchor: %s", anchor );
118
- highlightTarget( anchor );
119
- } catch ( err ) {
120
- console.error( "Exception while highlighting: %o", err );
121
- };
122
- };
123
-
124
- function loadAsync(path, success, prefix) {
125
- $.ajax({
126
- url: prefix + path,
127
- dataType: 'script',
128
- success: success,
129
- cache: true
97
+ navigationToggle.addEventListener('click', function() {
98
+ navigation.hidden = !navigation.hidden;
99
+ navigationToggle.ariaExpanded = navigationToggle.ariaExpanded !== 'true';
130
100
  });
131
- };
132
101
 
133
- $(document).ready( function() {
134
- hookSourceViews();
135
- highlightLocationTarget();
136
- $('ul.link-list a').bind( "click", highlightClickTarget );
137
-
138
- var search_scripts_loaded = {
139
- navigation_loaded: false,
140
- search_loaded: false,
141
- search_index_loaded: false,
142
- searcher_loaded: false,
143
- }
144
-
145
- var search_success_function = function(variable) {
146
- return (function (data, status, xhr) {
147
- search_scripts_loaded[variable] = true;
148
-
149
- if (search_scripts_loaded['navigation_loaded'] == true &&
150
- search_scripts_loaded['search_loaded'] == true &&
151
- search_scripts_loaded['search_index_loaded'] == true &&
152
- search_scripts_loaded['searcher_loaded'] == true)
153
- hookSearch();
102
+ var isSmallViewport = window.matchMedia("(max-width: 1023px)").matches;
103
+ if (isSmallViewport) {
104
+ navigation.hidden = true;
105
+ navigationToggle.ariaExpanded = false;
106
+ document.addEventListener('click', (e) => {
107
+ if (e.target.closest('#navigation a')) {
108
+ navigation.hidden = true;
109
+ navigationToggle.ariaExpanded = false;
110
+ }
154
111
  });
155
112
  }
113
+ }
156
114
 
157
- loadAsync('js/navigation.js', search_success_function('navigation_loaded'), rdoc_rel_prefix);
158
- loadAsync('js/search.js', search_success_function('search_loaded'), rdoc_rel_prefix);
159
- loadAsync('js/search_index.js', search_success_function('search_index_loaded'), index_rel_prefix);
160
- loadAsync('js/searcher.js', search_success_function('searcher_loaded'), rdoc_rel_prefix);
115
+ document.addEventListener('DOMContentLoaded', function() {
116
+ hookSourceViews();
117
+ hookSearch();
118
+ hookFocus();
119
+ hookSidebar();
161
120
  });
@@ -1,29 +1,29 @@
1
1
  Search = function(data, input, result) {
2
2
  this.data = data;
3
- this.$input = $(input);
4
- this.$result = $(result);
3
+ this.input = input;
4
+ this.result = result;
5
5
 
6
- this.$current = null;
7
- this.$view = this.$result.parent();
6
+ this.current = null;
7
+ this.view = this.result.parentNode;
8
8
  this.searcher = new Searcher(data.index);
9
9
  this.init();
10
10
  }
11
11
 
12
- Search.prototype = $.extend({}, Navigation, new function() {
12
+ Search.prototype = Object.assign({}, Navigation, new function() {
13
13
  var suid = 1;
14
14
 
15
15
  this.init = function() {
16
16
  var _this = this;
17
17
  var observer = function(e) {
18
- switch(e.originalEvent.keyCode) {
19
- case 38: // Event.KEY_UP
20
- case 40: // Event.KEY_DOWN
18
+ switch(e.key) {
19
+ case 'ArrowUp':
20
+ case 'ArrowDown':
21
21
  return;
22
22
  }
23
- _this.search(_this.$input[0].value);
23
+ _this.search(_this.input.value);
24
24
  };
25
- this.$input.keyup(observer);
26
- this.$input.click(observer); // mac's clear field
25
+ this.input.addEventListener('keyup', observer);
26
+ this.input.addEventListener('click', observer); // mac's clear field
27
27
 
28
28
  this.searcher.ready(function(results, isLast) {
29
29
  _this.addResults(results, isLast);
@@ -34,7 +34,7 @@ Search.prototype = $.extend({}, Navigation, new function() {
34
34
  }
35
35
 
36
36
  this.search = function(value, selectFirstMatch) {
37
- value = jQuery.trim(value).toLowerCase();
37
+ value = value.trim().toLowerCase();
38
38
  if (value) {
39
39
  this.setNavigationActive(true);
40
40
  } else {
@@ -43,23 +43,23 @@ Search.prototype = $.extend({}, Navigation, new function() {
43
43
 
44
44
  if (value == '') {
45
45
  this.lastQuery = value;
46
- this.$result.empty();
47
- this.$result.attr('aria-expanded', 'false');
46
+ this.result.innerHTML = '';
47
+ this.result.setAttribute('aria-expanded', 'false');
48
48
  this.setNavigationActive(false);
49
49
  } else if (value != this.lastQuery) {
50
50
  this.lastQuery = value;
51
- this.$result.attr('aria-busy', 'true');
52
- this.$result.attr('aria-expanded', 'true');
51
+ this.result.setAttribute('aria-busy', 'true');
52
+ this.result.setAttribute('aria-expanded', 'true');
53
53
  this.firstRun = true;
54
54
  this.searcher.find(value);
55
55
  }
56
56
  }
57
57
 
58
58
  this.addResults = function(results, isLast) {
59
- var target = this.$result.get(0);
59
+ var target = this.result;
60
60
  if (this.firstRun && (results.length > 0 || isLast)) {
61
- this.$current = null;
62
- this.$result.empty();
61
+ this.current = null;
62
+ this.result.innerHTML = '';
63
63
  }
64
64
 
65
65
  for (var i=0, l = results.length; i < l; i++) {
@@ -70,25 +70,26 @@ Search.prototype = $.extend({}, Navigation, new function() {
70
70
 
71
71
  if (this.firstRun && results.length > 0) {
72
72
  this.firstRun = false;
73
- this.$current = $(target.firstChild);
74
- this.$current.addClass('search-selected');
73
+ this.current = target.firstChild;
74
+ this.current.classList.add('search-selected');
75
75
  }
76
- if (jQuery.browser.msie) this.$element[0].className += '';
76
+ //TODO: ECMAScript
77
+ //if (jQuery.browser.msie) this.$element[0].className += '';
77
78
 
78
- if (isLast) this.$result.attr('aria-busy', 'false');
79
+ if (isLast) this.result.setAttribute('aria-busy', 'false');
79
80
  }
80
81
 
81
82
  this.move = function(isDown) {
82
- if (!this.$current) return;
83
- var $next = this.$current[isDown ? 'next' : 'prev']();
84
- if ($next.length) {
85
- this.$current.removeClass('search-selected');
86
- $next.addClass('search-selected');
87
- this.$input.attr('aria-activedescendant', $next.attr('id'));
88
- this.scrollIntoView($next[0], this.$view[0]);
89
- this.$current = $next;
90
- this.$input.val($next[0].firstChild.firstChild.text);
91
- this.$input.select();
83
+ if (!this.current) return;
84
+ var next = isDown ? this.current.nextElementSibling : this.current.previousElementSibling;
85
+ if (next) {
86
+ this.current.classList.remove('search-selected');
87
+ next.classList.add('search-selected');
88
+ this.input.setAttribute('aria-activedescendant', next.getAttribute('id'));
89
+ this.scrollIntoView(next, this.view);
90
+ this.current = next;
91
+ this.input.value = next.firstChild.firstChild.text;
92
+ this.input.select();
92
93
  }
93
94
  return true;
94
95
  }
@@ -100,7 +101,7 @@ Search.prototype = $.extend({}, Navigation, new function() {
100
101
  }
101
102
 
102
103
  this.escapeHTML = function(html) {
103
- return html.replace(/[&<>]/g, function(c) {
104
+ return html.replace(/[&<>"`']/g, function(c) {
104
105
  return '&#' + c.charCodeAt(0) + ';';
105
106
  });
106
107
  }
@@ -1,18 +1,18 @@
1
1
  <body id="top" role="document" class="file">
2
- <nav role="navigation">
2
+ <%= render '_sidebar_toggle.rhtml' %>
3
+
4
+ <nav id="navigation" role="navigation">
3
5
  <div id="project-navigation">
4
6
  <%= render '_sidebar_navigation.rhtml' %>
5
7
  <%= render '_sidebar_search.rhtml' %>
6
8
  </div>
7
9
 
8
10
  <%= render '_sidebar_table_of_contents.rhtml' %>
11
+ <%= render '_sidebar_pages.rhtml' %>
9
12
 
10
- <div id="project-metadata">
11
- <%= render '_sidebar_pages.rhtml' %>
12
- </div>
13
+ <%= render '_footer.rhtml' %>
13
14
  </nav>
14
15
 
15
16
  <main role="main" aria-label="Page <%=h file.full_name%>">
16
17
  <%= file.description %>
17
18
  </main>
18
-
@@ -1,13 +1,16 @@
1
1
  <body role="document">
2
- <nav role="navigation">
3
- <%= render '_sidebar_navigation.rhtml' %>
2
+ <%= render '_sidebar_toggle.rhtml' %>
4
3
 
5
- <%= render '_sidebar_search.rhtml' %>
6
-
7
- <div id="project-metadata">
8
- <%= render '_sidebar_pages.rhtml' %>
9
- <%= render '_sidebar_classes.rhtml' %>
4
+ <nav id="navigation" role="navigation">
5
+ <div id="project-navigation">
6
+ <%= render '_sidebar_navigation.rhtml' %>
7
+ <%= render '_sidebar_search.rhtml' %>
10
8
  </div>
9
+
10
+ <%= render '_sidebar_pages.rhtml' %>
11
+ <%= render '_sidebar_classes.rhtml' %>
12
+
13
+ <%= render '_footer.rhtml' %>
11
14
  </nav>
12
15
 
13
16
  <main role="main">
@@ -15,4 +18,3 @@
15
18
 
16
19
  <p><%= message %>
17
20
  </main>
18
-
@@ -1,5 +1,7 @@
1
1
  <body role="document">
2
- <nav role="navigation">
2
+ <%= render '_sidebar_toggle.rhtml' %>
3
+
4
+ <nav id="navigation" role="navigation">
3
5
  <div id="project-navigation">
4
6
  <div id="home-section" class="nav-section">
5
7
  <h2>
@@ -10,7 +12,8 @@
10
12
  <%= render '_sidebar_search.rhtml' %>
11
13
  </div>
12
14
 
13
- <%= render '_sidebar_installed.rhtml' %>
15
+ <%= render '_sidebar_installed.rhtml' %>
16
+ <%= render '_footer.rhtml' %>
14
17
  </nav>
15
18
 
16
19
  <main role="main">
@@ -19,28 +22,28 @@
19
22
  <p>Here you can browse local documentation from the ruby standard library and
20
23
  your installed gems.
21
24
 
22
- <% extra_dirs = installed.select { |_, _, _, type,| type == :extra } %>
23
- <% unless extra_dirs.empty? %>
25
+ <%- extra_dirs = installed.select { |_, _, _, type,| type == :extra } -%>
26
+ <%- unless extra_dirs.empty? -%>
24
27
  <h2>Extra Documentation Directories</h2>
25
28
 
26
29
  <p>The following additional documentation directories are available:</p>
27
30
 
28
31
  <ol>
29
- <% extra_dirs.each do |name, href, exists, _, path| %>
32
+ <%- extra_dirs.each do |name, href, exists, _, path| -%>
30
33
  <li>
31
- <% if exists %>
34
+ <%- if exists -%>
32
35
  <a href="<%= href %>"><%= h name %></a> (<%= h path %>)
33
- <% else %>
36
+ <%- else -%>
34
37
  <%= h name %> (<%= h path %>; <i>not available</i>)
35
- <% end %>
38
+ <%- end -%>
36
39
  </li>
37
- <% end %>
40
+ <%- end -%>
38
41
  </ol>
39
- <% end %>
42
+ <%- end -%>
40
43
 
41
- <% gems = installed.select { |_, _, _, type,| type == :gem } %>
42
- <% missing = gems.reject { |_, _, exists,| exists } %>
43
- <% unless missing.empty? then %>
44
+ <%- gems = installed.select { |_, _, _, type,| type == :gem } -%>
45
+ <%- missing = gems.reject { |_, _, exists,| exists } -%>
46
+ <%- unless missing.empty? then -%>
44
47
  <h2>Missing Gem Documentation</h2>
45
48
 
46
49
  <p>You are missing documentation for some of your installed gems.
@@ -53,11 +56,10 @@
53
56
  the following commands.
54
57
 
55
58
  <ul>
56
- <% names = missing.map { |name,| name.sub(/-([^-]*)$/, '') }.uniq %>
57
- <% names.each do |name| %>
59
+ <%- names = missing.map { |name,| name.sub(/-([^-]*)$/, '') }.uniq -%>
60
+ <%- names.each do |name| -%>
58
61
  <li><kbd>gem rdoc <%=h name %></kbd>
59
- <% end %>
62
+ <%- end -%>
60
63
  </ul>
61
- <% end %>
64
+ <%- end -%>
62
65
  </main>
63
-
@@ -1,58 +1,70 @@
1
1
  <body id="top" class="table-of-contents">
2
+ <%= render '_sidebar_toggle.rhtml' %>
3
+
4
+ <nav id="navigation" role="navigation">
5
+ <div id="project-navigation">
6
+ <%= render '_sidebar_navigation.rhtml' %>
7
+
8
+ <%= render '_sidebar_search.rhtml' %>
9
+ </div>
10
+
11
+ <%= render '_footer.rhtml' %>
12
+ </nav>
2
13
  <main role="main">
3
14
  <h1 class="class"><%= h @title %></h1>
4
15
 
5
- <% simple_files = @files.select { |f| f.text? } %>
6
- <% unless simple_files.empty? then %>
16
+ <%- simple_files = @files.select { |f| f.text? } -%>
17
+ <%- unless simple_files.empty? then -%>
7
18
  <h2 id="pages">Pages</h2>
8
19
  <ul>
9
- <% simple_files.sort.each do |file| %>
20
+ <%- simple_files.sort.each do |file| -%>
10
21
  <li class="file">
11
- <a href="<%= file.path %>"><%= h file.page_name %></a>
22
+ <a href="<%= h file.path %>"><%= h file.page_name %></a>
12
23
  <%
13
24
  # HACK table_of_contents should not exist on Document
14
25
  table = file.parse(file.comment).table_of_contents
15
26
  unless table.empty? then %>
16
27
  <ul>
17
- <% table.each do |heading| %>
18
- <li><a href="<%= file.path %>#<%= heading.aref %>"><%= heading.plain_html %></a>
19
- <% end %>
28
+ <%- table.each do |heading| -%>
29
+ <li><a href="<%= h file.path %>#<%= heading.aref %>"><%= heading.plain_html %></a>
30
+ <%- end -%>
20
31
  </ul>
21
- <% end %>
32
+ <%- end -%>
22
33
  </li>
23
- <% end %>
34
+ <%- end -%>
24
35
  </ul>
25
- <% end %>
36
+ <%- end -%>
26
37
 
27
38
  <h2 id="classes">Classes and Modules</h2>
28
39
  <ul>
29
- <% @modsort.each do |klass| %>
40
+ <%- @modsort.each do |klass| -%>
30
41
  <li class="<%= klass.type %>">
31
42
  <a href="<%= klass.path %>"><%= klass.full_name %></a>
32
- <% table = []
43
+ <%- table = []
33
44
  table.concat klass.parse(klass.comment_location).table_of_contents
34
45
  table.concat klass.section_contents
35
46
 
36
47
  unless table.empty? then %>
37
48
  <ul>
38
- <% table.each do |item| %>
39
- <li><a href="<%= klass.path %>#<%= item.aref %>"><%= item.plain_html %></a>
40
- <% end %>
49
+ <%- table.each do |item| -%>
50
+ <%- label = item.respond_to?(:label) ? item.label(klass) : item.aref -%>
51
+ <li><a href="<%= klass.path %>#<%= label %>"><%= item.plain_html %></a>
52
+ <%- end -%>
41
53
  </ul>
42
- <% end %>
54
+ <%- end -%>
43
55
  </li>
44
- <% end %>
56
+ <%- end -%>
45
57
  </ul>
46
58
 
47
59
  <h2 id="methods">Methods</h2>
48
60
  <ul>
49
- <% @store.all_classes_and_modules.map do |mod|
61
+ <%- @store.all_classes_and_modules.flat_map do |mod|
50
62
  mod.method_list
51
- end.flatten.sort.each do |method| %>
63
+ end.sort.each do |method| %>
52
64
  <li class="method">
53
65
  <a href="<%= method.path %>"><%= h method.pretty_name %></a>
54
66
  &mdash;
55
67
  <span class="container"><%= method.parent.full_name %></span>
56
- <% end %>
68
+ <%- end -%>
57
69
  </ul>
58
70
  </main>