erbook 5.0.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/LICENSE +1 -1
  2. data/Rakefile +6 -79
  3. data/bin/erbook +25 -319
  4. data/doc/HelloWorld.spec +23 -21
  5. data/doc/README +4 -3
  6. data/doc/api/ERBook.html +35 -0
  7. data/doc/api/ERBook/Document.html +673 -0
  8. data/doc/api/ERBook/Document/Node.html +102 -0
  9. data/doc/api/ERBook/Template.html +670 -0
  10. data/doc/api/RDoc.html +23 -0
  11. data/doc/api/RDoc/AnyMethod.html +302 -0
  12. data/doc/api/RDoc/DummyMarkup.html +73 -0
  13. data/doc/api/RDoc/DummyMixin.html +23 -0
  14. data/doc/api/RDoc/DummyOptions.html +140 -0
  15. data/doc/api/RDoc/TopLevel.html +465 -0
  16. data/doc/api/String.html +372 -0
  17. data/doc/api/all-methods.html +253 -0
  18. data/doc/api/all-namespaces.html +42 -0
  19. data/doc/api/app.js +18 -0
  20. data/doc/api/index.html +16 -22
  21. data/doc/api/jquery.js +11 -0
  22. data/doc/api/readme.html +35 -0
  23. data/doc/api/style.css +68 -0
  24. data/doc/api/syntax_highlight.css +21 -0
  25. data/doc/erbook.png +0 -0
  26. data/doc/erbook.svg +150 -88
  27. data/doc/formats.erb +387 -0
  28. data/doc/history.erb +62 -0
  29. data/doc/index.erb +8 -0
  30. data/doc/index.xhtml +846 -654
  31. data/doc/intro.erb +97 -0
  32. data/doc/setup.erb +62 -0
  33. data/doc/theory.erb +187 -0
  34. data/doc/usage.erb +39 -0
  35. data/fmt/xhtml.yaml +497 -372
  36. data/lib/erbook.rb +18 -10
  37. data/lib/erbook/document.rb +233 -0
  38. data/lib/erbook/template.rb +210 -0
  39. data/lib/erbook/to_xhtml.rb +25 -17
  40. metadata +39 -45
  41. data/README +0 -14
  42. data/doc/api/classes/ERBook.html +0 -164
  43. data/doc/api/classes/RDoc.html +0 -112
  44. data/doc/api/classes/RDoc/AnyMethod.html +0 -195
  45. data/doc/api/classes/RDoc/AnyMethod.src/M000003.html +0 -18
  46. data/doc/api/classes/RDoc/AnyMethod.src/M000004.html +0 -23
  47. data/doc/api/classes/RDoc/AnyMethod.src/M000005.html +0 -18
  48. data/doc/api/classes/RDoc/AnyMethod.src/M000006.html +0 -22
  49. data/doc/api/classes/RDoc/TopLevel.html +0 -250
  50. data/doc/api/classes/RDoc/TopLevel.src/M000007.html +0 -18
  51. data/doc/api/classes/RDoc/TopLevel.src/M000008.html +0 -18
  52. data/doc/api/classes/RDoc/TopLevel.src/M000009.html +0 -18
  53. data/doc/api/classes/RDoc/TopLevel.src/M000010.html +0 -29
  54. data/doc/api/classes/RDoc/TopLevel.src/M000011.html +0 -25
  55. data/doc/api/classes/RDoc/TopLevel.src/M000012.html +0 -18
  56. data/doc/api/classes/String.html +0 -196
  57. data/doc/api/classes/String.src/M000001.html +0 -18
  58. data/doc/api/classes/String.src/M000002.html +0 -31
  59. data/doc/api/created.rid +0 -1
  60. data/doc/api/files/lib/erbook/rdoc_rb.html +0 -116
  61. data/doc/api/files/lib/erbook/to_xhtml_rb.html +0 -125
  62. data/doc/api/files/lib/erbook_rb.html +0 -107
  63. data/doc/api/fr_class_index.html +0 -31
  64. data/doc/api/fr_file_index.html +0 -29
  65. data/doc/api/fr_method_index.html +0 -38
  66. data/doc/api/rdoc-style.css +0 -208
  67. data/doc/feed-icon-28x28.png +0 -0
  68. data/doc/manual.erb +0 -812
data/doc/formats.erb ADDED
@@ -0,0 +1,387 @@
1
+ <% part "Formats" do %>
2
+ This part describes the default formats provided along with <%= $project %>. The <%= xref "SpecFile", "format specification files" %> for these formats can be found in the <tt>fmt/</tt> directory of the <%= $project %> installation directory (see <%= xref "Manifest" %>).
3
+
4
+ These formats are meant to serve as working examples. If you require more functionality from one of these formats, simply make a copy of the corresponding format specification file and edit the copy to suit your needs. If you would like to contribute or discuss your enhancements to these default formats, you can <%= xref "License", "contact the author" %>.
5
+
6
+ <% chapter "XHTML (web page)", "xhtml" do %>
7
+ This format generates a _monolithic_ XHTML document that allows users to easily search for a particular topic using nothing more than their web browser's built-in text search mechanism. This facilitates offline reading, where an Internet search engine is not available.
8
+
9
+ When viewing an XHTML document in a graphical web browser, you will notice navigation menus to the left of chapters, sections, figures, admonitions, and so on. These menus contain hyperlinks that make it easy to navigate the XHTML document, especially for users of text-only web browsers.
10
+
11
+ Furthermore, the XHTML document comes equipped with a stylesheet that makes it suitable for printing. In particular, users of web browsers that support CSS3 selectors will notice that all hyperlinks have been expanded to include their target URL next to them. Try the "print preview" function of your web browser to see how the XHTML document would appear when printed.
12
+
13
+ <% section "Text to XHTML conversion" do %>
14
+ The <tt>lib/<%= $program %>/to_xhtml.rb</tt> file inside <%= $project %>'s installation directory (see <%= xref "Manifest" %>) defines the following methods:
15
+
16
+ * `String#to_xhtml` - Transforms this string into XHTML while ensuring that the result contains one or more block-level elements at the root.
17
+
18
+ * `String.to_inline_xhtml` - Transforms this string into an *inline* XHTML string (one that does not contain any block-level XHTML elements at the root).
19
+
20
+ The default implementation of the `String#to_xhtml` method employs the [Markdown](http://daringfireball.net/projects/markdown/) markup system. If you do not like Markdown or wish to use a different markup system for text in your documents, then simply edit the <tt>to_xhtml.rb</tt> file and adjust the source code of the default `String#to_xhtml` and `String.to_inline_xhtml` methods accordingly.
21
+
22
+ For example, if you replace the entire <tt>to_xhtml.rb</tt> file with the following code, then the output of all nodes will appear within red boxes in the final output document.
23
+
24
+ <code>
25
+ class String
26
+ # Transforms this string into XHTML while ensuring that the
27
+ # result contains one or more block-level elements at the root.
28
+ def to_xhtml
29
+ '<p style="border: thin solid red">' + self + '</p>'
30
+ end
31
+
32
+ # Transforms this string into an *inline* XHTML string (one that
33
+ # does not contain any block-level XHTML elements at the root).
34
+ def to_inline_xhtml
35
+ self
36
+ end
37
+ end
38
+ </code>
39
+
40
+ In addition to supporting Markdown syntax, the default implementation has some additional features which are described in the following subsections.
41
+
42
+ <% section "Syntax coloring for source code" do %>
43
+ Syntax coloring is _automatically added_ to source code found inside the **&lt;code&gt;** and **&lt;/code&gt;** HTML tags. The syntax coloring library, [CodeRay](http://coderay.rubychan.de), currently supports the following programming languages:
44
+ * Ruby
45
+ * C
46
+ * Delphi
47
+ * HTML
48
+ * RHTML (Rails)
49
+ * Nitro-XHTML
50
+
51
+ <% section "Specifying the programming language" do %>
52
+ Because different programming languages have different syntax coloring schemes, you can specify the language of your source code using the `lang` attribute to ensure that only the appropriate coloring scheme is used. Note that unless the `lang` attribute is specified, _Ruby_ is assumed to be the programming language of all source code by default.
53
+
54
+ <% sampleCode = %q{
55
+ # Ruby ###########################
56
+ def hello
57
+ puts "Hello world!"
58
+ end
59
+
60
+
61
+ /* C ****************************/
62
+ #include <stdio.h>
63
+ int main(int argc, char **argv) {
64
+ printf("Hello world!\n");
65
+ return 0;
66
+ }
67
+
68
+
69
+ <!-- HTML ----------------------->
70
+ <html>
71
+ <body>
72
+ Hello world!
73
+ <body>
74
+ </html>
75
+ } %>
76
+
77
+ For example, here is some source code _without_ the `lang` attribute:
78
+
79
+ <code><%= verbatim sampleCode %></code>
80
+
81
+ And here is the same source code with a `lang="c"` attribute:
82
+
83
+ <code lang="c"><%= verbatim sampleCode %></code>
84
+
85
+ And here is the same source code with a `lang="html"` attribute:
86
+
87
+ <code lang="html"><%= verbatim sampleCode %></code>
88
+ <% end %>
89
+ <% end %>
90
+
91
+ <% section "Smart sizing of source code" do %>
92
+ Source code is _automatically sized_ to be displayed as either a line or paragraph of text, depending on whether it contains line breaks.
93
+
94
+ For example, here is a single line <code>life = true or false</code> of code. And here is a paragraph <code>life =
95
+ true or
96
+ false</code> of code.
97
+ <% end %>
98
+
99
+ <% section "Protecting verbatim text" do %>
100
+ Sometimes you just need to protect some text from being mangled by the text-to-XHTML conversion process . In such cases, you can wrap the text you want to proctect within **&lt;noformat&gt;** and **&lt;/noformat&gt;** tags.
101
+ <% end %>
102
+ <% end %>
103
+
104
+ <% section "Parameters" do %>
105
+ The XHTML format accepts the following document parameters. To disable the default value for a particular parameter, simply set that parameter to `nil`. For example, to disable the `$authors` parameter, you would write `$authors = nil` in your input document.
106
+
107
+ | Parameter | Type | Default value | Description |
108
+ | --------- | ---- | ------------- | ----------- |
109
+ | `$title` | `String` | `"$title"` | Title of the document. |
110
+ | `$subtitle` | `String` | `"$subtitle"` | Secondary title of the document. |
111
+ | `$authors` | `Hash` | `{"$authors" => nil}` | A mapping of author name to author URL. You can obfuscate e-mail addresses using the provided `String#to_xml_entities` method like this: `{ "Y. Matsumoto" => "mailto:matz@ruby.invalid".to_xml_entities }` |
112
+ | `$date` | `String` | `Time.now.strftime("%d %B %Y")` | Date when the document was written. |
113
+ | `$logo` | `String` | `nil` | Arbitrary content that goes above the document title in the default header. |
114
+ | `$feeds` | `Hash` | `nil` | A mapping of feed URL to feed format. Here is an example: <code>$feeds = { "my_rss_feed.xml" => "rss", "my_atom_feed.xml" => "atom" }</code> |
115
+ <% end %>
116
+
117
+ <% section "Methods" do %>
118
+ The XHTML format provides the following methods. In the method declarations shown below,
119
+ * a pound sign (#) indicates that the method is an *instance method*, meaning that it can only be invoked on instances of a class, not on the classes themselves.
120
+ * a double colon sign (::) indicates that the method is a *class method*, meaning that it can only be invoked on a class.
121
+
122
+ <%
123
+ # load library for parsing method documentation
124
+ require 'erbook/rdoc'
125
+
126
+ RDoc::TopLevel.parse @format['code']
127
+ RDoc::TopLevel.parse_file 'lib/erbook/to_xhtml.rb'
128
+ RDoc::TopLevel.all_methods.each do |m|
129
+ paragraph "`#{m.decl}`" do
130
+ m.comment_html
131
+ end
132
+ end
133
+ %>
134
+ <% end %>
135
+
136
+ <% chapter "Nodes", "xhtml.nodes" do %>
137
+ Unless otherwise noted, all nodes defined by the XHTML format accept two arguments, in this order:
138
+ 1. a required *title* for the node
139
+ 2. an optional *unique identifier* for the node
140
+
141
+ The second argument is used by the cross-referencing nodes (see <%= xref "xhtml.nodes.xref" %> and <%= xref "xhtml.nodes.cite" %>), which allow you to refer to another node in the document by its unique identifier.
142
+
143
+ Furthermore, <%= xref "SpecFile.nodes", "node definitions" %> in the XHTML format have two additional parameters:
144
+
145
+ | Parameter | Type | Description |
146
+ | --------- | ---- | ----------- |
147
+ | toc | Boolean | Include this node in the **Table of Contents** (TOC)? |
148
+ | lof | Boolean | Include this node in the **List of Figures** (LOF)? |
149
+
150
+ <% section "Structural nodes" do %>
151
+ The nodes described in this section form the overall structure of the output document.
152
+
153
+ <% section "header", "xhtml.nodes.header" do %>
154
+ This node overrides the logo, title, list of authors, and date when the document was written, all of which are shown at the top of the document.
155
+ <% end %>
156
+
157
+ <% section "footer", "xhtml.nodes.footer" do %>
158
+ This node overrides (1) the date when this document was generated and (2) the hyperlink to the <%= $project %> website, shown at the bottom of the document. The hyperlink is there as a way of saying thanks for <%= $project %>, the _wonderful_ little utility you have grown so fond of! ;-)
159
+ <% end %>
160
+
161
+ <% section "abstract", "xhtml.nodes.abstract" do %>
162
+ A summary of the entire document. This is what most readers will _skim_ through, if you are lucky. Alas, nobody reads entire documents these days! :-(
163
+ <% end %>
164
+
165
+ <% section "xref", "xhtml.nodes.xref" do %>
166
+ A cross-reference; a hyperlink that takes you to any node in the document.
167
+
168
+ The first argument of this node is either the unique identifier or the user-defined title of the node you wish to cross-reference. If no nodes in the document have the given identifier or user-defined title, then an error will be raised.
169
+
170
+ The second argument of this node overrides the default link text of the cross-reference.
171
+
172
+ For example, this node in the input document:
173
+
174
+ <%%= xref "SpecFile" %>
175
+
176
+ appears in the output document like this: <%= xref "SpecFile" %>.
177
+
178
+ As another example, this node in the input document:
179
+
180
+ <%%= xref "SpecFile", "custom link text" %>
181
+
182
+ appears in the output document like this: <%= xref "SpecFile", "custom link text" %>.
183
+ <% end %>
184
+ <% end %>
185
+
186
+ <% section "Organizational nodes" do %>
187
+ The nodes described in this section are meant to help organize the document's content logically. Based on how deeply these nodes are nested in the document, their heading will be larger (shallow depth) or smaller (deep depth).
188
+
189
+ <% section "node", "xhtml.nodes.node" do %>
190
+ A placeholder that simply passes its content to the output.
191
+
192
+ This node has no real use in the writing of a document. It mainly helps programmers define "virtual" nodes that simply wrap some user-provided content. Programmers can then manipluate the content of those virtual nodes when processing the document.
193
+
194
+ <% node "An example" do %>
195
+ This is how a **node** node appears.
196
+ <% end %>
197
+ <% end %>
198
+
199
+ <% section "part", "xhtml.nodes.part" do %>
200
+ A collection of chapters.
201
+
202
+ <% part "An example" do %>
203
+ This is how a **part** node appears.
204
+ <% end %>
205
+ <% end %>
206
+
207
+ <% section "chapter", "xhtml.nodes.chapter" do %>
208
+ A collection of sections.
209
+
210
+ <% chapter "An example" do %>
211
+ This is how a **chapter** node appears.
212
+ <% end %>
213
+ <% end %>
214
+
215
+ <% section "section", "xhtml.nodes.section" do %>
216
+ A collection of paragraphs about a particular topic.
217
+
218
+ <% section "An example" do %>
219
+ This is how a **section** node appears.
220
+ <% end %>
221
+ <% end %>
222
+
223
+ <% section "paragraph", "xhtml.nodes.paragraph" do %>
224
+ A collection of sentences about a particular idea.
225
+
226
+ <% paragraph "An example" do %>
227
+ This is how a **paragraph** node appears. Notice that there is no LaTeX-style index number in the heading of this **paragraph** node.
228
+ <% end %>
229
+ <% end %>
230
+ <% end %>
231
+
232
+ <% section "Admonition nodes" do %>
233
+ An admonition is basically a box that is indented more deeply than the text surrounding it. It is typically used to convey extraneous or pertinent information about the application of ideas discussed in the surrounding text.
234
+
235
+ I like to follow the KDE guidelines<%= cite "KDE.admonitions" %> when determining which admonition to use in my documents.
236
+
237
+ <% reference "KDE.admonitions" do %>
238
+ L. Watts, "Admonitions: Tips, hints, and Warnings", in _The KDE DocBook Authors guide_, Chapter 13, \[Online document], 22 September 2004 (Revision 1.00.00), \[cited 8 December 2007], Available at <%= hyperlink "http://l10n.kde.org/docs/markup/tips-hints-etc.html" %>
239
+ <% end %>
240
+
241
+ <% section "warning", "xhtml.nodes.warning" do %>
242
+ Use a **warning** node when "data loss could occur if you follow the procedure being described." <%= cite "KDE.admonitions" %>
243
+
244
+ <% warning "An example" do %>
245
+ This is how a **warning** node appears.
246
+ <% end %>
247
+ <% end %>
248
+
249
+ <% section "caution", "xhtml.nodes.caution" do %>
250
+ bq. A note of caution. Use this for example when the reader may lose easily recovered or replaceable information (e.g. user settings), or when they could cause data loss if they don't correctly follow the procedure being outlined. <%= cite "KDE.admonitions" %>
251
+
252
+ <% caution "An example" do %>
253
+ This is how a **caution** node appears.
254
+ <% end %>
255
+ <% end %>
256
+
257
+ <% section "important", "xhtml.nodes.important" do %>
258
+ Use an **important** node when:
259
+
260
+ bq. When there is no danger of data loss, but you wish to make clear to the reader a consequence that isn't immediately obvious (e.g. when changing the font for one instance of a program also changes the default setting, and this isn't clear from the GUI.) <%= cite "KDE.admonitions" %>
261
+
262
+ <% important "An example" do %>
263
+ This is how a **important** node appears.
264
+ <% end %>
265
+ <% end %>
266
+
267
+ <% section "note", "xhtml.nodes.note" do %>
268
+ Use a **note** node to convey:
269
+
270
+ bq. Information the user should be aware of, but is peripheral to the actual task being described. <%= cite "KDE.admonitions" %>
271
+
272
+ <% note "An example" do %>
273
+ This is how a **note** node appears.
274
+ <% end %>
275
+ <% end %>
276
+
277
+ <% section "tip", "xhtml.nodes.tip" do %>
278
+ Use a **tip** node when:
279
+
280
+ bq. When you're giving a hint to make things easier or more productive for the reader. <%= cite "KDE.admonitions" %>
281
+
282
+ <% tip "An example" do %>
283
+ This is how a **tip** node appears.
284
+ <% end %>
285
+ <% end %>
286
+ <% end %>
287
+
288
+ <% section "Auxilary materials" do %>
289
+ <% section "figure", "xhtml.nodes.figure" do %>
290
+ A diagram, sketch, image, or illustration; something that visually depicts an idea or thought.
291
+
292
+ <% figure "An example" do %>
293
+ This is how a **figure** node appears.
294
+ <% end %>
295
+ <% end %>
296
+
297
+ <% section "table", "xhtml.nodes.table" do %>
298
+ Information (typically measurement data) represented in tabular form for easy reading, comparison, and analysis.
299
+
300
+ <% table "An example" do %>
301
+ This is how a **table** node appears.
302
+ <% end %>
303
+ <% end %>
304
+
305
+ <% section "example", "xhtml.nodes.example" do %>
306
+ A sample application of an idea or thought.
307
+
308
+ <% example "An example" do %>
309
+ This is how a **example** node appears.
310
+ <% end %>
311
+ <% end %>
312
+
313
+ <% section "equation", "xhtml.nodes.equation" do %>
314
+ A mathematical equation or formula.
315
+
316
+ <% equation "An example" do %>
317
+ This is how a **equation** node appears.
318
+ <% end %>
319
+ <% end %>
320
+
321
+ <% section "procedure", "xhtml.nodes.procedure" do %>
322
+ An outline; a series of steps outlining some kind of process.
323
+
324
+ <% procedure "An example" do %>
325
+ This is how a **procedure** node appears.
326
+ <% end %>
327
+ <% end %>
328
+ <% end %>
329
+
330
+ <% section "Bibliographical nodes" do %>
331
+ The nodes in this section deal with attribution of ideas---an important weapon against plagiarism.
332
+
333
+ <% section "reference", "xhtml.nodes.reference" do %>
334
+ This node stores bibliography information about an information source that is relevant to your document.
335
+
336
+ If you wish to cite a certain source in several places in your document, start by creating a **reference** node first and then use a **cite** node (see <%= xref "xhtml.nodes.cite" %>) to perform the citation.
337
+
338
+ <% paragraph "An example" do %>
339
+ See <%= xref "xhtml.nodes.reference.example" %> for an example of how a **reference** node appears.
340
+ <% end %>
341
+
342
+ <% reference "xhtml.nodes.reference.example" do %>
343
+ This is how a **reference** node appears.
344
+ <% end %>
345
+ <% end %>
346
+
347
+ <% section "cite", "xhtml.nodes.cite" do %>
348
+ A citation to a **reference** node (see <%= xref "xhtml.nodes.reference" %>) in the document's bibliography.
349
+
350
+ The first argument of this node is the unique identifier of the reference node you wish to cite. You can specify additional arguments to give more detail about the citation.
351
+
352
+ For example, this node in the input document:
353
+
354
+ <%%= cite "xhtml.nodes.reference.example" %>
355
+
356
+ appears in the output document like this: <%= cite "xhtml.nodes.reference.example" %>
357
+
358
+ As another example, this node in the input document:
359
+
360
+ <%%= cite "xhtml.nodes.reference.example", "chapter 10", "page 53", "..." %>
361
+
362
+ appears in the output document like this: <%= cite "xhtml.nodes.reference.example", "chapter 10", "page 53", "..." %>
363
+ <% end %>
364
+ <% end %>
365
+ <% end %>
366
+ <% end %>
367
+
368
+ <% patches_are_welcome = "This format is not yet implemented. Patches are welcome! :-)" %>
369
+
370
+ <% chapter "Plain text", "text" do %>
371
+ <%= patches_are_welcome %>
372
+
373
+ <%= hyperlink "http://en.wikipedia.org/wiki/Plain_text" %>
374
+ <% end %>
375
+
376
+ <% chapter "LaTeX (PDF)", "latex" do %>
377
+ <%= patches_are_welcome %>
378
+
379
+ <%= hyperlink "http://www.latex-project.org" %>
380
+ <% end %>
381
+
382
+ <% chapter "UNIX manual page", "man" do %>
383
+ <%= patches_are_welcome %>
384
+
385
+ <%= hyperlink "http://en.wikipedia.org/wiki/Man_page" %>
386
+ <% end %>
387
+ <% end %>
data/doc/history.erb ADDED
@@ -0,0 +1,62 @@
1
+ <% chapter "Project history", "history" do %>
2
+ <% project_history do %>
3
+ <% section "Version 6.0.0 (2009-01-19)" do %>
4
+ This release improves the appearance & usability of the XHTML format, refactors the core logic into reusable libraries, fixes some bugs and improves variable names.
5
+
6
+ <% paragraph "Incompatible changes" do %>
7
+ * Renamed `@types` to `@nodes_by_type` and `@spec` to `@format` in XHTML format.
8
+
9
+ * Moved the core logic of the **erbook** executable into the `ERBook::Document` and `ERBook::Document::Template` classes.
10
+ <% end %>
11
+
12
+ <% paragraph "New features" do %>
13
+ * Addded navigation menus beside every segment in the user manual. These menus allow you to jump to the next/previous segment, whereas previously you always had to go back to the table of contents and select a new segment.
14
+
15
+ * A star is drawn beside a reverse jump target in the table of contents, so the user can continue where they left off.
16
+
17
+ * Added "inline" node definition parameter (see <%= xref "SpecFile.nodes" %>).
18
+
19
+ * Added `$subtitle` parameter to XHTML format.
20
+
21
+ * Document parameters for the XHTML format, such as `$title`, can now be disabled by setting them to `nil`.
22
+
23
+ * Relative file paths can now be specified in <%%#include#%> directives.
24
+
25
+ * Added a "node" node (see <%= xref "xhtml.nodes.node" %>), which serves as a pass-through container, in the XHTML format.
26
+
27
+ * Allow user to type `<pre>` blocks on single lines without affecting the display of their content.
28
+
29
+ * Initial newline in the body of `<code>` is now stripped. This allows users to write their code blocks normally:
30
+
31
+ &lt;code&gt;<br/>
32
+ foo<br/>
33
+ bar<br/>
34
+ &lt;/code&gt;<br/>
35
+
36
+ Instead of abnormally to avoid an extra leading newline:
37
+
38
+ &lt;code&gt;foo<br/>
39
+ bar<br/>
40
+ &lt;/code&gt;<br/>
41
+
42
+ * Paragraph nodes are now included in the table of contents.
43
+ <% end %>
44
+
45
+ <% paragraph "Bug fixes" do %>
46
+ * Input to unindentation algorithm was being partially unindented beforehand by the logic that silences code-only eRuby directives. This corrupted the unindentation algorithm's output in some cases.
47
+
48
+ * `<pre>` blocks now expand to fit their content in the XHTML format. No more scrollbars!
49
+
50
+ * `<a/>` without href was treated as external hyperlink.
51
+ <% end %>
52
+
53
+ <% paragraph "Housekeeping" do %>
54
+ * Revised the project logo to emphasize the owl mascot.
55
+
56
+ * Replaced dull MediaWiki hyperlink colors with more lively colors in XHTML format.
57
+
58
+ * Wrote more API documentation and use [<%= Inochi::PROJECT %>](<%= Inochi::WEBSITE %>) to simplify project maintenance.
59
+ <% end %>
60
+ <% end %>
61
+ <% end %>
62
+ <% end %>
data/doc/index.erb ADDED
@@ -0,0 +1,8 @@
1
+ <% Inochi.book :ERBook, self %>
2
+
3
+ <%# include intro.erb #%>
4
+ <%# include setup.erb #%>
5
+ <%# include theory.erb #%>
6
+ <%# include usage.erb #%>
7
+ <%# include formats.erb #%>
8
+ <%# include history.erb #%>