erbook 8.0.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|