asciidoctor-latex 1.5.0.2.dev → 1.5.0.3.dev

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +17 -0
  3. data/README.adoc +18 -4
  4. data/doc/Asciidoctor.html +131 -0
  5. data/doc/Asciidoctor/Block.html +1700 -0
  6. data/doc/Asciidoctor/Converter/Html5Converter.html +120 -0
  7. data/doc/Asciidoctor/Document.html +327 -0
  8. data/doc/Asciidoctor/Inline.html +594 -0
  9. data/doc/Asciidoctor/LaTeX.html +167 -0
  10. data/doc/Asciidoctor/LaTeX/Chem.html +210 -0
  11. data/doc/Asciidoctor/LaTeX/ChemInlineMacro.html +194 -0
  12. data/doc/Asciidoctor/LaTeX/ClickBlock.html +344 -0
  13. data/doc/Asciidoctor/LaTeX/ClickStyleInsert.html +283 -0
  14. data/doc/Asciidoctor/LaTeX/Converter.html +321 -0
  15. data/doc/Asciidoctor/LaTeX/Dollar.html +203 -0
  16. data/doc/Asciidoctor/LaTeX/EntToUni.html +194 -0
  17. data/doc/Asciidoctor/LaTeX/EnvironmentBlock.html +420 -0
  18. data/doc/Asciidoctor/LaTeX/HTMLPostprocessor.html +204 -0
  19. data/doc/Asciidoctor/LaTeX/Html5ConverterExtensions.html +905 -0
  20. data/doc/Asciidoctor/LaTeX/InjectHTML.html +192 -0
  21. data/doc/Asciidoctor/LaTeX/MacroInsert.html +300 -0
  22. data/doc/Asciidoctor/LaTeX/TeXBlock.html +644 -0
  23. data/doc/Asciidoctor/LaTeX/TeXPostProcess.html +504 -0
  24. data/doc/Asciidoctor/LaTeX/TeXPreprocessor.html +287 -0
  25. data/doc/Asciidoctor/LaTeX/TexPostprocessor.html +209 -0
  26. data/doc/Asciidoctor/List.html +483 -0
  27. data/doc/Asciidoctor/Section.html +219 -0
  28. data/doc/Asciidoctor/Table.html +227 -0
  29. data/doc/PreambleProcessor.html +202 -0
  30. data/doc/String.html +587 -0
  31. data/doc/_index.html +382 -0
  32. data/doc/class_list.html +58 -0
  33. data/doc/css/common.css +1 -0
  34. data/doc/css/full_list.css +57 -0
  35. data/doc/css/style.css +339 -0
  36. data/doc/file.LICENSE.html +96 -0
  37. data/doc/file.README.html +335 -0
  38. data/doc/file.manual.html +479 -0
  39. data/doc/file_list.html +63 -0
  40. data/doc/frames.html +26 -0
  41. data/doc/index.html +335 -0
  42. data/doc/js/app.js +219 -0
  43. data/doc/js/full_list.js +181 -0
  44. data/doc/js/jquery.js +4 -0
  45. data/doc/method_list.html +549 -0
  46. data/doc/top-level-namespace.html +114 -0
  47. data/lib/asciidoctor/latex/converter.rb +2 -4
  48. data/lib/asciidoctor/latex/tex_preprocessor.rb +19 -4
  49. data/lib/asciidoctor/latex/version.rb +1 -1
  50. data/test/examples/adoc/exponent1.adoc +2 -0
  51. data/test/examples/adoc/exponent2.adoc +4 -0
  52. data/test/examples/adoc/macro_underscore.adoc +5 -0
  53. data/test/examples/adoc/math.adoc +2 -2
  54. metadata +51 -29
  55. data/rspec/README.adoc +0 -45
  56. data/rspec/a.rb +0 -79
  57. data/rspec/b.rb +0 -111
  58. data/rspec/c.rb +0 -121
  59. data/rspec/data/tex1 +0 -65
  60. data/rspec/data/tex2 +0 -5
  61. data/rspec/data/tex2.expect +0 -5
  62. data/rspec/transform.rb +0 -36
  63. data/spec/README.adoc +0 -45
  64. data/spec/a.rb +0 -79
  65. data/spec/b.rb +0 -111
  66. data/spec/c.rb +0 -121
  67. data/spec/data/foo +0 -1
  68. data/spec/data/lorem +0 -1
  69. data/spec/data/tex1 +0 -65
  70. data/spec/data/tex2 +0 -5
  71. data/spec/data/tex2.expect +0 -5
  72. data/spec/transform.rb +0 -36
@@ -0,0 +1,63 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+
7
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
8
+
9
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
10
+
11
+
12
+
13
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
+
17
+
18
+ <title>File List</title>
19
+ <base id="base_target" target="_parent" />
20
+ </head>
21
+ <body>
22
+ <script type="text/javascript" charset="utf-8">
23
+ var hasFrames = false;
24
+ try {
25
+ hasFrames = window.top.frames.main ? true : false;
26
+ } catch (e) { }
27
+ if (hasFrames) {
28
+ document.getElementById('base_target').target = 'main';
29
+ document.body.className = 'frames';
30
+ }
31
+ </script>
32
+ <div id="content">
33
+ <h1 id="full_list_header">File List</h1>
34
+ <div id="nav">
35
+
36
+ <span><a target="_self" href="class_list.html">
37
+ Classes
38
+ </a></span>
39
+
40
+ <span><a target="_self" href="method_list.html">
41
+ Methods
42
+ </a></span>
43
+
44
+ <span><a target="_self" href="file_list.html">
45
+ Files
46
+ </a></span>
47
+
48
+ </div>
49
+ <div id="search">Search: <input type="text" /></div>
50
+
51
+ <ul id="full_list" class="file">
52
+
53
+
54
+ <li class="r1"><span class="object_link"><a href="index.html" title="README">README</a></a></li>
55
+
56
+
57
+ <li class="r2"><span class="object_link"><a href="file.LICENSE.html" title="LICENSE">LICENSE</a></a></li>
58
+
59
+
60
+ </ul>
61
+ </div>
62
+ </body>
63
+ </html>
data/doc/frames.html ADDED
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ <title>Asciidoctor LaTeX Documentation</title>
8
+ </head>
9
+ <script type="text/javascript" charset="utf-8">
10
+ window.onload = function() {
11
+ var match = unescape(window.location.hash).match(/^#!(.+)/);
12
+ var name = match ? match[1] : 'index.html';
13
+ name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
14
+ document.writeln('<frameset cols="20%,*">' +
15
+ '<frame name="list" src="class_list.html" />' +
16
+ '<frame name="main" src="' + escape(name) + '" />' +
17
+ '</frameset>');
18
+ }
19
+ </script>
20
+ <noscript>
21
+ <frameset cols="20%,*">
22
+ <frame name="list" src="class_list.html" />
23
+ <frame name="main" src="index.html" />
24
+ </frameset>
25
+ </noscript>
26
+ </html>
data/doc/index.html ADDED
@@ -0,0 +1,335 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
+ <title>
7
+ File: README
8
+
9
+ &mdash; Asciidoctor LaTeX Documentation
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '';
20
+ framesUrl = "frames.html#!file.README.html";
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="_index.html">Index</a> &raquo;
35
+ <span class="title">File: README</span>
36
+
37
+
38
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
39
+ </div>
40
+
41
+ <div id="search">
42
+
43
+ <a class="full_list_link" id="class_list_link"
44
+ href="class_list.html">
45
+ Class List
46
+ </a>
47
+
48
+ <a class="full_list_link" id="method_list_link"
49
+ href="method_list.html">
50
+ Method List
51
+ </a>
52
+
53
+ <a class="full_list_link" id="file_list_link"
54
+ href="file_list.html">
55
+ File List
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <iframe id="search_frame"></iframe>
63
+
64
+ <div id="content"><div id='filecontents'><div class="sect1">
65
+ <h2 id="_purpose">1. Purpose</h2>
66
+ <div class="sectionbody">
67
+ <div class="paragraph">
68
+ <p>Asciidoc-LaTeX defines an extended mathematical syntax
69
+ for the Asciidoc markup language
70
+ that closely parallels LaTeX. The
71
+ Asciidoctor-LaTeX converter renders documents written
72
+ in this extended markup language into both HTML
73
+ and LaTeX.<span class="footnote">[<a id="_footnoteref_1" class="footnote" href="#_footnote_1" title="View footnote.">1</a>]</span></p>
74
+ </div>
75
+ <div class="paragraph">
76
+ <p>Below, we descibe the main
77
+ features of Asciidoc-LaTeX. However, since
78
+ Asciidoc-LaTeX will not render in GitHub, you
79
+ are encouraged to view this write-up:
80
+ <a href=https://vschool.s3.amazonaws.com/manuscripts/372.html>Asciidoc-LaTeX</a>.
81
+ For more information on using , please consult the
82
+ <a href=http://www.noteshare.io/book/asciidoctor-latex-manual>Asciidoctor-LaTeX manual</a>.
83
+ For more information on conversion of Asciidoc-LaTeX
84
+ documents to <a href=https://www.sharelatex.com/>LaTeX</a>, see the file <code>tech-report.adoc</code> in
85
+ this repository.</p>
86
+ </div>
87
+ <div class="paragraph">
88
+ <p>Asciidoctor-LaTeX is developed by James Carlson, Jakub Jirutka, and Dan Allen.</p>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ <div class="sect1">
93
+ <h2 id="_installation">2. Installation</h2>
94
+ <div class="sectionbody">
95
+ <div class="sect2">
96
+ <h3 id="_using_rubygems">2.1. Using Rubygems</h3>
97
+ <div class="paragraph">
98
+ <p>There is a development release at
99
+ <a href=https://rubygems.org/gems/asciidoctor-latex>RubyGems.org</a>
100
+ Beta alert!</p>
101
+ </div>
102
+ </div>
103
+ <div class="sect2">
104
+ <h3 id="_from_github">2.2. From GitHub</h3>
105
+ <div class="paragraph">
106
+ <p>If you would like to install a development version from the repository, use:</p>
107
+ </div>
108
+ <div class="literalblock">
109
+ <div class="content">
110
+ <pre class="code ruby"><code class="ruby">$ git clone https://github.com/asciidoctor/asciidoctor-latex.git
111
+ $ cd asciidoctor-latex
112
+ $ gem build asciidoctor-latex.gemspec
113
+ $ gem install *.gem</code></pre>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ <div class="sect1">
120
+ <h2 id="_document_format">3. Document format</h2>
121
+ <div class="sectionbody">
122
+ <div class="paragraph">
123
+ <p>Asciidoctor supports two closely-related
124
+ math formats, <span class="blue">Asciidoc-LaTeX</span>
125
+ and <span class="blue">AsciiMath</span>.
126
+ In Asciidoc-LaTeX,
127
+ one can write <code>\( a^2 + b^2 = c^2 \)</code> and</p>
128
+ </div>
129
+ <div class="listingblock">
130
+ <div class="content">
131
+ <pre class="code ruby"><code class="ruby"> \[
132
+ e^{2\pi \sqrt{-1}} = 1,
133
+ \]</code></pre>
134
+ </div>
135
+ </div>
136
+ <div class="paragraph">
137
+ <p>for in-line and display mathematial
138
+ text, respectively.
139
+ You will need to express dollar-denominated
140
+ currency using
141
+ escaped dollar signs, as
142
+ in the sentence, "He paid $100 for that
143
+ theore.m" In AsciiMath, one writes
144
+ <code>stem:[ a^2 + b^2 = c^2 ]</code>
145
+ and</p>
146
+ </div>
147
+ <div class="listingblock">
148
+ <div class="content">
149
+ <pre class="code ruby"><code class="ruby"> [stem]
150
+ ++++
151
+ e^{2\pi \sqrt{-1}} = 1.
152
+ ++++</code></pre>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ <div class="sect1">
158
+ <h2 id="_asciidoc_latex_environments">4. Asciidoc-LaTeX environments</h2>
159
+ <div class="sectionbody">
160
+ <div class="paragraph">
161
+ <p>Asciidoc-LaTeX supports an <code>env</code> construct that maps to LaTeX environments.
162
+ Thus</p>
163
+ </div>
164
+ <div class="listingblock">
165
+ <div class="content">
166
+ <pre class="code ruby"><code class="ruby">[env.theorem]
167
+ --
168
+ There exist infinitely many prime numbers.
169
+ --</code></pre>
170
+ </div>
171
+ </div>
172
+ <div class="paragraph">
173
+ <p>renders as an automatically numbered theorem.
174
+ Environments can contain in-line and display mathematics, e.g.,</p>
175
+ </div>
176
+ <div class="listingblock">
177
+ <div class="content">
178
+ <pre class="code ruby"><code class="ruby">[env.theorem]
179
+ --
180
+ A two-by-two matrix is invertible if
181
+ its determinant is nonzero, i.e., if
182
+ \[
183
+ \left|\begin{matrix}
184
+ a &amp; b \\
185
+ c &amp; d
186
+ \end{matrix}\right| \ne 0
187
+ \]
188
+ This result extends to +\(n\times n\)+ matrices.
189
+ --</code></pre>
190
+ </div>
191
+ </div>
192
+ <div class="paragraph">
193
+ <p>There is complete freedom in parameter <code>NAME</code>
194
+ of <code>[env.NAME]</code>, Thus,one can write</p>
195
+ </div>
196
+ <div class="listingblock">
197
+ <div class="content">
198
+ <pre class="code ruby"><code class="ruby">[env.definition]
199
+ --
200
+ An integer +\(n\)+ is *prime* if (a) it is not
201
+ +\(\pm 1\)+ and (b) it has no divisors other
202
+ than +\(\pm 1\)+ and +\(\pm n\)+.
203
+ --</code></pre>
204
+ </div>
205
+ </div>
206
+ <div class="paragraph">
207
+ <p>or</p>
208
+ </div>
209
+ <div class="listingblock">
210
+ <div class="content">
211
+ <pre class="code ruby"><code class="ruby">[env.joke]
212
+ --
213
+ A mathematician, a philosopher, and
214
+ a lawyer met at the local bar
215
+ for a drink. The lawyer said ...
216
+ --</code></pre>
217
+ </div>
218
+ </div>
219
+ <div class="paragraph">
220
+ <p>One can make cross references by labeling
221
+ the environment as in</p>
222
+ </div>
223
+ <div class="listingblock">
224
+ <div class="content">
225
+ <pre class="code ruby"><code class="ruby">[env.joke#mathjoke1]
226
+ --
227
+ A mathematician, a philosopher, and
228
+ a lawyer met at the local bar
229
+ for a drink. The lawyer said ...
230
+ --</code></pre>
231
+ </div>
232
+ </div>
233
+ <div class="paragraph">
234
+ <p>then referencing it later as <code>ERROR: refs[refid] was nil</code>.</p>
235
+ </div>
236
+ <div class="paragraph">
237
+ <p>Certain environments receive special treatment.
238
+ For numbered equations, use <code>[env.equation]</code>
239
+ like this</p>
240
+ </div>
241
+ <div class="listingblock">
242
+ <div class="content">
243
+ <pre class="code ruby"><code class="ruby">[env.equation]
244
+ --
245
+ a^{p-1} \equiv 1\ \text{mod}\ p
246
+ --</code></pre>
247
+ </div>
248
+ </div>
249
+ <div class="paragraph">
250
+ <p>For sets of equations, use <code>[env,equationalign]</code>:</p>
251
+ </div>
252
+ <div class="listingblock">
253
+ <div class="content">
254
+ <pre class="code ruby"><code class="ruby">[env.equationalign]
255
+ --
256
+ A &amp; = 4\pi r^2 \\
257
+ V &amp; = \frac{4}{3} \pi r^3
258
+ --</code></pre>
259
+ </div>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ <div class="sect1">
264
+ <h2 id="_click_blocks">5. Click blocks</h2>
265
+ <div class="sectionbody">
266
+ <div class="paragraph">
267
+ <p>Click blocks are similar to <code>[env]</code> blocks exceptiipoo that the body of
268
+ the block is not displayed until the user clicks on the heading.
269
+ The heading of a click block is displayed in blue. Once a click
270
+ block is "opened", it can be closed by clicking again on the heading.</p>
271
+ </div>
272
+ <div class="listingblock">
273
+ <div class="content">
274
+ <pre class="code ruby"><code class="ruby">[click.comment]
275
+ --
276
+ It is sometimes useful to &quot;hide&quot; a comment
277
+ in a click block so as not to unduly
278
+ disturb the flow of the prose. Click
279
+ blocks are also useful for problem sets,
280
+ since one can make hints, solutions, etc.
281
+ clickable.</code></pre>
282
+ </div>
283
+ </div>
284
+ <div class="paragraph">
285
+ <p>The default for click blocks is not to number them.
286
+ See the file <code>click.adoc</code> in the <code>exampless</code> directory
287
+ for more information.</p>
288
+ </div>
289
+ </div>
290
+ </div>
291
+ <div class="sect1">
292
+ <h2 id="_commands_for_rendering">6. Commands for rendering</h2>
293
+ <div class="sectionbody">
294
+ <div class="paragraph">
295
+ <p>Asciidoc math files can be rendered</p>
296
+ </div>
297
+ <div class="ulist">
298
+ <ul>
299
+ <li>
300
+ <p>as HTML. Use <code>$ asciidoctor-latex -b html foo.adoc</code> to produce <code>foo.html</code>.
301
+ With this command the Asciidoc-LaTeX syntax and extensions will be rendered.</p>
302
+ </li>
303
+ <li>
304
+ <p>as LaTeX. Use <code>$ asciidoctor-latex foo.adoc</code>
305
+ to produce <code>foo.tex</code>.</p>
306
+ </li>
307
+ </ul>
308
+ </div>
309
+ </div>
310
+ </div>
311
+ <div class="sect1">
312
+ <h2 id="_switches">7. Switches</h2>
313
+ <div class="sectionbody">
314
+ <div class="paragraph">
315
+ <p>Switch <code>:stem:</code> processing on by puttinng the text <code>:stem:</code>
316
+ in your file. To turn the switch on and set it to <code>latexmath</code>, say
317
+ instead of <code>stem:latexmth</code>.</p>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ <div id="footnotes">
322
+ <hr>
323
+ <div class="footnote" id="_footnote_1">
324
+ <a href="#_footnoteref_1">1</a> Many, but not all Asciidoc language features are covered by this release.
325
+ </div>
326
+ </div></div></div>
327
+
328
+ <div id="footer">
329
+ Generated on Sun Apr 19 18:37:45 2015 by
330
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
331
+ 0.8.7.6 (ruby-2.1.2).
332
+ </div>
333
+
334
+ </body>
335
+ </html>
data/doc/js/app.js ADDED
@@ -0,0 +1,219 @@
1
+ function createSourceLinks() {
2
+ $('.method_details_list .source_code').
3
+ before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
4
+ $('.toggleSource').toggle(function() {
5
+ $(this).parent().nextAll('.source_code').slideDown(100);
6
+ $(this).text("Hide source");
7
+ },
8
+ function() {
9
+ $(this).parent().nextAll('.source_code').slideUp(100);
10
+ $(this).text("View source");
11
+ });
12
+ }
13
+
14
+ function createDefineLinks() {
15
+ var tHeight = 0;
16
+ $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
17
+ $('.toggleDefines').toggle(function() {
18
+ tHeight = $(this).parent().prev().height();
19
+ $(this).prev().show();
20
+ $(this).parent().prev().height($(this).parent().height());
21
+ $(this).text("(less)");
22
+ },
23
+ function() {
24
+ $(this).prev().hide();
25
+ $(this).parent().prev().height(tHeight);
26
+ $(this).text("more...");
27
+ });
28
+ }
29
+
30
+ function createFullTreeLinks() {
31
+ var tHeight = 0;
32
+ $('.inheritanceTree').toggle(function() {
33
+ tHeight = $(this).parent().prev().height();
34
+ $(this).parent().toggleClass('showAll');
35
+ $(this).text("(hide)");
36
+ $(this).parent().prev().height($(this).parent().height());
37
+ },
38
+ function() {
39
+ $(this).parent().toggleClass('showAll');
40
+ $(this).parent().prev().height(tHeight);
41
+ $(this).text("show all");
42
+ });
43
+ }
44
+
45
+ function fixBoxInfoHeights() {
46
+ $('dl.box dd.r1, dl.box dd.r2').each(function() {
47
+ $(this).prev().height($(this).height());
48
+ });
49
+ }
50
+
51
+ function searchFrameLinks() {
52
+ $('.full_list_link').click(function() {
53
+ toggleSearchFrame(this, $(this).attr('href'));
54
+ return false;
55
+ });
56
+ }
57
+
58
+ function toggleSearchFrame(id, link) {
59
+ var frame = $('#search_frame');
60
+ $('#search a').removeClass('active').addClass('inactive');
61
+ if (frame.attr('src') == link && frame.css('display') != "none") {
62
+ frame.slideUp(100);
63
+ $('#search a').removeClass('active inactive');
64
+ }
65
+ else {
66
+ $(id).addClass('active').removeClass('inactive');
67
+ frame.attr('src', link).slideDown(100);
68
+ }
69
+ }
70
+
71
+ function linkSummaries() {
72
+ $('.summary_signature').click(function() {
73
+ document.location = $(this).find('a').attr('href');
74
+ });
75
+ }
76
+
77
+ function framesInit() {
78
+ if (hasFrames) {
79
+ document.body.className = 'frames';
80
+ $('#menu .noframes a').attr('href', document.location);
81
+ try {
82
+ window.top.document.title = $('html head title').text();
83
+ } catch(error) {
84
+ // some browsers will not allow this when serving from file://
85
+ // but we don't want to stop the world.
86
+ }
87
+ }
88
+ else {
89
+ $('#menu .noframes a').text('frames').attr('href', framesUrl);
90
+ }
91
+ }
92
+
93
+ function keyboardShortcuts() {
94
+ if (window.top.frames.main) return;
95
+ $(document).keypress(function(evt) {
96
+ if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
97
+ if (typeof evt.target !== "undefined" &&
98
+ (evt.target.nodeName == "INPUT" ||
99
+ evt.target.nodeName == "TEXTAREA")) return;
100
+ switch (evt.charCode) {
101
+ case 67: case 99: $('#class_list_link').click(); break; // 'c'
102
+ case 77: case 109: $('#method_list_link').click(); break; // 'm'
103
+ case 70: case 102: $('#file_list_link').click(); break; // 'f'
104
+ default: break;
105
+ }
106
+ });
107
+ }
108
+
109
+ function summaryToggle() {
110
+ $('.summary_toggle').click(function() {
111
+ if (localStorage) {
112
+ localStorage.summaryCollapsed = $(this).text();
113
+ }
114
+ $('.summary_toggle').each(function() {
115
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
116
+ var next = $(this).parent().parent().nextAll('ul.summary').first();
117
+ if (next.hasClass('compact')) {
118
+ next.toggle();
119
+ next.nextAll('ul.summary').first().toggle();
120
+ }
121
+ else if (next.hasClass('summary')) {
122
+ var list = $('<ul class="summary compact" />');
123
+ list.html(next.html());
124
+ list.find('.summary_desc, .note').remove();
125
+ list.find('a').each(function() {
126
+ $(this).html($(this).find('strong').html());
127
+ $(this).parent().html($(this)[0].outerHTML);
128
+ });
129
+ next.before(list);
130
+ next.toggle();
131
+ }
132
+ });
133
+ return false;
134
+ });
135
+ if (localStorage) {
136
+ if (localStorage.summaryCollapsed == "collapse") {
137
+ $('.summary_toggle').first().click();
138
+ }
139
+ else localStorage.summaryCollapsed = "expand";
140
+ }
141
+ }
142
+
143
+ function fixOutsideWorldLinks() {
144
+ $('a').each(function() {
145
+ if (window.location.host != this.host) this.target = '_parent';
146
+ });
147
+ }
148
+
149
+ function generateTOC() {
150
+ if ($('#filecontents').length === 0) return;
151
+ var _toc = $('<ol class="top"></ol>');
152
+ var show = false;
153
+ var toc = _toc;
154
+ var counter = 0;
155
+ var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
156
+ var i;
157
+ if ($('#filecontents h1').length > 1) tags.unshift('h1');
158
+ for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
159
+ var lastTag = parseInt(tags[0][1], 10);
160
+ $(tags.join(', ')).each(function() {
161
+ if ($(this).parents('.method_details .docstring').length != 0) return;
162
+ if (this.id == "filecontents") return;
163
+ show = true;
164
+ var thisTag = parseInt(this.tagName[1], 10);
165
+ if (this.id.length === 0) {
166
+ var proposedId = $(this).attr('toc-id');
167
+ if (typeof(proposedId) != "undefined") this.id = proposedId;
168
+ else {
169
+ var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
170
+ if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
171
+ this.id = proposedId;
172
+ }
173
+ }
174
+ if (thisTag > lastTag) {
175
+ for (i = 0; i < thisTag - lastTag; i++) {
176
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
177
+ }
178
+ }
179
+ if (thisTag < lastTag) {
180
+ for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
181
+ }
182
+ var title = $(this).attr('toc-title');
183
+ if (typeof(title) == "undefined") title = $(this).text();
184
+ toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
185
+ lastTag = thisTag;
186
+ });
187
+ if (!show) return;
188
+ html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
189
+ $('#content').prepend(html);
190
+ $('#toc').append(_toc);
191
+ $('#toc .hide_toc').toggle(function() {
192
+ $('#toc .top').slideUp('fast');
193
+ $('#toc').toggleClass('hidden');
194
+ $('#toc .title small').toggle();
195
+ }, function() {
196
+ $('#toc .top').slideDown('fast');
197
+ $('#toc').toggleClass('hidden');
198
+ $('#toc .title small').toggle();
199
+ });
200
+ $('#toc .float_toc').toggle(function() {
201
+ $(this).text('float');
202
+ $('#toc').toggleClass('nofloat');
203
+ }, function() {
204
+ $(this).text('left');
205
+ $('#toc').toggleClass('nofloat');
206
+ });
207
+ }
208
+
209
+ $(framesInit);
210
+ $(createSourceLinks);
211
+ $(createDefineLinks);
212
+ $(createFullTreeLinks);
213
+ $(fixBoxInfoHeights);
214
+ $(searchFrameLinks);
215
+ $(linkSummaries);
216
+ $(keyboardShortcuts);
217
+ $(summaryToggle);
218
+ $(fixOutsideWorldLinks);
219
+ $(generateTOC);