erbook 8.0.0 → 9.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.
- data/bin/erbook +1 -1
- data/doc/api/classes/ERBook/Document.html +26 -19
- data/doc/api/classes/ERBook/Document/Node.html +52 -45
- data/doc/api/classes/ERBook/Template.html +20 -20
- data/doc/api/classes/ERBook/Template/Sandbox.html +5 -5
- data/doc/api/classes/RDoc/AnyMethod.html +20 -20
- data/doc/api/classes/RDoc/TopLevel.html +20 -20
- data/doc/api/classes/String.html +10 -54
- data/doc/api/created.rid +1 -1
- data/doc/api/files/lib/erbook/document_rb.html +1 -1
- data/doc/api/files/lib/erbook/rdoc_rb.html +1 -1
- data/doc/api/files/lib/erbook/to_xhtml_rb.html +3 -4
- data/doc/api/files/lib/erbook_rb.html +1 -1
- data/doc/api/panel/search_index.js +1 -1
- data/doc/formats.erb +54 -45
- data/doc/history.erb +51 -0
- data/doc/index.html +931 -825
- data/doc/intro.erb +5 -3
- data/doc/setup.erb +16 -10
- data/doc/theory.erb +4 -3
- data/doc/usage.erb +11 -4
- data/fmt/xhtml.yaml +162 -116
- data/fmt/xhtml/jquery/jquery-ui-1.7.2.custom.css +2 -2
- data/lib/erbook.rb +3 -2
- data/lib/erbook/document.rb +18 -8
- data/lib/erbook/to_xhtml.rb +21 -30
- data/test/erbook.rb +17 -0
- metadata +15 -5
@@ -397,9 +397,9 @@
|
|
397
397
|
----------------------------------*/
|
398
398
|
.ui-tabs { padding: .2em; zoom: 1; }
|
399
399
|
.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
|
400
|
-
.ui-tabs .ui-tabs-nav li { position: relative; float: left;
|
400
|
+
.ui-tabs .ui-tabs-nav li { position: relative; float: left; margin: 0 .2em -1px 0; padding: 0 0 1px 0; }
|
401
401
|
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
|
402
|
-
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom:
|
402
|
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 2px; border-bottom-width: 0 !important; }
|
403
403
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
404
404
|
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
405
405
|
.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
|
data/lib/erbook.rb
CHANGED
@@ -9,8 +9,8 @@ require 'inochi'
|
|
9
9
|
|
10
10
|
Inochi.init :ERBook,
|
11
11
|
:program => 'erbook',
|
12
|
-
:version => '
|
13
|
-
:release => '2009-10-
|
12
|
+
:version => '9.0.0',
|
13
|
+
:release => '2009-10-18',
|
14
14
|
:website => 'http://snk.tuxfamily.org/lib/erbook/',
|
15
15
|
:tagline => 'Write books, manuals, and documents in eRuby',
|
16
16
|
:require => {
|
@@ -19,6 +19,7 @@ Inochi.init :ERBook,
|
|
19
19
|
'coderay' => '>= 0.8', # for syntax coloring of source code
|
20
20
|
'haml' => '>= 2.2.2', # for generating HTML and CSS
|
21
21
|
'mime-types' => '>= 1.16', # for detecting MIME types
|
22
|
+
'json' => nil, # for emitting JSON
|
22
23
|
}
|
23
24
|
|
24
25
|
module ERBook
|
data/lib/erbook/document.rb
CHANGED
@@ -81,7 +81,7 @@ module ERBook
|
|
81
81
|
# Handles the method call from a node
|
82
82
|
# placeholder in the input document.
|
83
83
|
#
|
84
|
-
def sandbox.
|
84
|
+
def sandbox.__node_handler__ node_type, *node_args, &node_content
|
85
85
|
node = Node.new(
|
86
86
|
:type => node_type,
|
87
87
|
:definition => @format['nodes'][node_type],
|
@@ -153,7 +153,7 @@ module ERBook
|
|
153
153
|
# does not accept a block until Ruby 1.9
|
154
154
|
file, line = __FILE__, __LINE__; eval %{
|
155
155
|
def sandbox.#{type} *node_args, &node_content
|
156
|
-
|
156
|
+
__node_handler__ #{type.inspect}, *node_args, &node_content
|
157
157
|
end
|
158
158
|
}, binding, file, line
|
159
159
|
end
|
@@ -163,7 +163,7 @@ module ERBook
|
|
163
163
|
@processed_document = template.buffer
|
164
164
|
|
165
165
|
# chain block-level nodes together for local navigation
|
166
|
-
block_nodes = @nodes.select {|n| n.
|
166
|
+
block_nodes = @nodes.select {|n| n.chain? }
|
167
167
|
|
168
168
|
require 'enumerator'
|
169
169
|
block_nodes.each_cons(2) do |a, b|
|
@@ -200,9 +200,16 @@ module ERBook
|
|
200
200
|
actual_output[c.output] = actual_output_by_node[c]
|
201
201
|
|
202
202
|
else
|
203
|
-
#
|
204
|
-
actual_output.sub! %r
|
205
|
-
|
203
|
+
# remove <p> around block-level child (added by Markdown)
|
204
|
+
actual_output.sub! %r{(<p>\s*)?#{
|
205
|
+
Regexp.quote c.output
|
206
|
+
}(\s*</p>)?} do
|
207
|
+
actual_output_by_node[c] +
|
208
|
+
if $1 and $2
|
209
|
+
''
|
210
|
+
else
|
211
|
+
[$1, $2].join
|
212
|
+
end
|
206
213
|
end
|
207
214
|
end
|
208
215
|
end
|
@@ -266,8 +273,11 @@ module ERBook
|
|
266
273
|
Array(definition['number']).include? 'ordinal'
|
267
274
|
end
|
268
275
|
|
269
|
-
|
270
|
-
|
276
|
+
##
|
277
|
+
# Include this node in the previous/next navigation chain?
|
278
|
+
#
|
279
|
+
def chain?
|
280
|
+
definition['chain']
|
271
281
|
end
|
272
282
|
|
273
283
|
def inline?
|
data/lib/erbook/to_xhtml.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# This file defines the String#to_xhtml
|
2
|
-
#
|
1
|
+
# This file defines the String#to_xhtml method which
|
2
|
+
# is invoked to transform plain text into XHTML.
|
3
3
|
#
|
4
4
|
# This particular implementation features the Markdown
|
5
5
|
# formatting system via Maruku, syntax coloring via CodeRay,
|
@@ -44,25 +44,12 @@ class String
|
|
44
44
|
}
|
45
45
|
|
46
46
|
##
|
47
|
-
# Transforms this string into
|
48
|
-
# does not contain any block-level XHTML elements at the root).
|
47
|
+
# Transforms this string into XHTML.
|
49
48
|
#
|
50
|
-
def
|
51
|
-
to_xhtml true
|
52
|
-
end
|
53
|
-
|
54
|
-
##
|
55
|
-
# Transforms this string into XHTML while ensuring that the
|
56
|
-
# result contains one or more block-level elements at the root.
|
57
|
-
#
|
58
|
-
# [inline]
|
59
|
-
# If true, the resulting XHTML will *not*
|
60
|
-
# contain a block-level element at the root.
|
61
|
-
#
|
62
|
-
def to_xhtml inline = false
|
49
|
+
def to_xhtml
|
63
50
|
with_protected_tags(self, VERBATIM_TAGS, true) do |text|
|
64
51
|
html = with_protected_tags(text, PROTECTED_TAGS, false) do
|
65
|
-
|s| s.thru_maruku
|
52
|
+
|s| s.thru_maruku
|
66
53
|
end
|
67
54
|
|
68
55
|
# Markdown's "code spans" should really be "pre spans"
|
@@ -90,11 +77,7 @@ class String
|
|
90
77
|
##
|
91
78
|
# Returns the result of running this string through Maruku.
|
92
79
|
#
|
93
|
-
|
94
|
-
# If true, the resulting XHTML will *not*
|
95
|
-
# be wrapped in a XHTML paragraph element.
|
96
|
-
#
|
97
|
-
def thru_maruku inline = false #:nodoc:
|
80
|
+
def thru_maruku #:nodoc:
|
98
81
|
#
|
99
82
|
# XXX: add a newline at the beginning of the text to
|
100
83
|
# prevent Maruku from interpreting the first line
|
@@ -104,9 +87,10 @@ class String
|
|
104
87
|
# see this bug report for details:
|
105
88
|
# http://rubyforge.org/tracker/?func=detail&atid=10735&aid=25697&group_id=2795
|
106
89
|
#
|
107
|
-
|
108
|
-
|
109
|
-
|
90
|
+
Maruku.new("\n#{self}").to_html.
|
91
|
+
|
92
|
+
# omit the <p> added by Maruku
|
93
|
+
sub(%r{\A<p>(.*)</p>\Z}, '\1')
|
110
94
|
end
|
111
95
|
|
112
96
|
##
|
@@ -116,8 +100,9 @@ class String
|
|
116
100
|
# or a class="para" attribute, according to whether it
|
117
101
|
# spans a single line or multiple lines of code.
|
118
102
|
#
|
119
|
-
# In the latter case, the <code> element is replaced
|
120
|
-
# so that its multi-line body
|
103
|
+
# In the latter case, the <code> element is replaced
|
104
|
+
# with a <pre> element so that its multi-line body
|
105
|
+
# appears correctly in text-mode web browsers.
|
121
106
|
#
|
122
107
|
# If a <code> element has a lang="..." attribute,
|
123
108
|
# then that attribute's value is considered to be
|
@@ -128,7 +113,9 @@ class String
|
|
128
113
|
def thru_coderay #:nodoc:
|
129
114
|
gsub %r{<(code)(.*?)>(.*?)</\1>}m do
|
130
115
|
elem, atts, code = $1, $2, CGI.unescapeHTML($3).sub(/\A\r?\n/, '')
|
131
|
-
|
116
|
+
|
117
|
+
lang = atts[/\blang=('|")(.*?)\1/i, 2]
|
118
|
+
lang = :ruby if lang !~ /\S/
|
132
119
|
|
133
120
|
body = CodeRay.scan(code, lang).html(:css => :style)
|
134
121
|
|
@@ -143,7 +130,11 @@ class String
|
|
143
130
|
tail = "</#{elem}>"
|
144
131
|
end
|
145
132
|
|
146
|
-
|
133
|
+
unless atts.sub!(/\b(class=('|"))(.*?\2)/){ $1 + span + ' ' + $3 }
|
134
|
+
atts << %{ class="#{span}"}
|
135
|
+
end
|
136
|
+
|
137
|
+
%{#{head}#{atts}>#{body}#{tail}}
|
147
138
|
end
|
148
139
|
end
|
149
140
|
|
data/test/erbook.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
unless ERBook.const_defined? :INOCHI
|
2
|
+
fail "ERBook must be established by Inochi"
|
3
|
+
end
|
4
|
+
|
5
|
+
ERBook::INOCHI.each do |param, value|
|
6
|
+
const = param.to_s.upcase
|
7
|
+
|
8
|
+
unless ERBook.const_defined? const
|
9
|
+
fail "ERBook::#{const} must be established by Inochi"
|
10
|
+
end
|
11
|
+
|
12
|
+
unless ERBook.const_get(const) == value
|
13
|
+
fail "ERBook::#{const} is not what Inochi established"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
puts "Inochi establishment tests passed!"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erbook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Suraj N. Kurapati
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-18 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -62,6 +62,16 @@ dependencies:
|
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: "1.16"
|
64
64
|
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: json
|
67
|
+
type: :runtime
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
65
75
|
- !ruby/object:Gem::Dependency
|
66
76
|
name: inochi
|
67
77
|
type: :development
|
@@ -82,9 +92,8 @@ dependencies:
|
|
82
92
|
- !ruby/object:Gem::Version
|
83
93
|
version: "1"
|
84
94
|
version:
|
85
|
-
description: "
|
86
|
-
|
87
|
-
References\n\n 1. http://snk.tuxfamily.org/lib/erbook/#HelloWorld\n 2. http://en.wikipedia.org/wiki/ERuby\n 3. http://snk.tuxfamily.org/lib/erbook/#SpecFile-nodes\n 4. http://snk.tuxfamily.org/lib/erbook/#Table-nodes\n 5. http://snk.tuxfamily.org/lib/erbook/#Arbitrary-floats\n 6. http://www.docbook.org/tdg/en/html/part2.html\n 7. http://snk.tuxfamily.org/lib/erbook/#Incompatible-changes\n 8. http://snk.tuxfamily.org/lib/erbook/#New-features\n 9. http://snk.tuxfamily.org/lib/erbook/#Housekeeping\n 10. http://snk.tuxfamily.org/lib/erbook/#SpecFile-nodes\n 11. http://snk.tuxfamily.org/lib/erbook/#Node-class\n 12. http://snk.tuxfamily.org/lib/erbook/#Arbitrary-floats\n 13. http://snk.tuxfamily.org/lib/erbook/#Admonition-nodes\n 14. http://snk.tuxfamily.org/lib/erbook/#Arbitrary-floats\n 15. http://snk.tuxfamily.org/lib/erbook/#SpecFile-nodes\n 16. http://snk.tuxfamily.org/lib/erbook/#Table-nodes\n 17. http://snk.tuxfamily.org/lib/erbook/#Table-nodes\n 18. http://snk.tuxfamily.org/lib/erbook/#SpecFile-nodes\n"
|
95
|
+
description: " Version 9.0.0 (2009-10-18)\n\n This release adds new nodes to the XHTML format, reduces the\n size of generated XHTML documents and also improves their\n usability and validity.\n\n * [1]Incompatible changes\n\n * [2]New features\n\n * [3]Bug fixes\n\n * [4]Housekeeping\n\n Incompatible changes\n\n * The String#to_inline_xhtml method has been removed. Use\n the String#to_xhtml method, which now returns inline\n XHTML, instead.\n\n New features\n\n * Add \"text\" and \"code\" nodes for <pre> and <code>.\n\n * Add \"chain\" parameter to [5]XHTML node definitions.\n\n * Add [6]command! floats for listing shell commands and\n their output.\n\n * Reduce XHTML output size by activating image data URIs at\n runtime using JavaScript. Previously, data URIs were\n emitted into XHTML at compile time.\n\n * Upgrade from XHTML 1.0 Transitional to Strict.\n\n Bug fixes\n\n * Add support for [7]multiple tab rows in jQuery UI tab\n bars.\n\n * Auto-detected mime types were inserted incorrectly in\n base64 embeds.\n\n * Prevent block-level children of <ins> from appearing\n underlined on screen (Opera browsers) and in print\n (Microsoft browsers).\n\n * <blockquote/> icon did not appear in print style.\n\n * Prevent mini navigation menus from colliding.\n\n Housekeeping\n\n * Remove the need for highlighting scroll target by setting\n body height so that any element can be brought to the top\n of the screen via scrolling.\n\n * Place mini navigation menus on jQuery UI tab bars when\n possible.\n\n * Show logo image in full and centered above document\n header.\n\n * Completely remove <p> around block-level child (added by\n Markdown).\n\n * Fix XHTML validation errors on <table>, <tfoot>, <img> in\n RDoc strings, and output of syntax coloring library.\n\n * DRY up XHTML node definitions using YAML hash merging\n operator.\n\n\
|
96
|
+
References\n\n 1. http://snk.tuxfamily.org/lib/erbook/#Incompatible-changes\n 2. http://snk.tuxfamily.org/lib/erbook/#New-features\n 3. http://snk.tuxfamily.org/lib/erbook/#Bug-fixes\n 4. http://snk.tuxfamily.org/lib/erbook/#Housekeeping\n 5. http://snk.tuxfamily.org/lib/erbook/#xhtml-nodes\n 6. http://snk.tuxfamily.org/lib/erbook/#xhtml-nodes-command\n 7. http://dev.jqueryui.com/ticket/4882\n"
|
88
97
|
email: sunaku@gmail.com
|
89
98
|
executables:
|
90
99
|
- erbook
|
@@ -161,6 +170,7 @@ files:
|
|
161
170
|
- lang/de.yaml
|
162
171
|
- lang/nl.yaml
|
163
172
|
- lang/phrases.yaml
|
173
|
+
- test/erbook.rb
|
164
174
|
- lib/erbook/template.rb
|
165
175
|
- lib/erbook/to_xhtml.rb
|
166
176
|
- lib/erbook/document.rb
|