asciidoctor-epub3 2.1.3 → 2.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +12 -0
- data/Gemfile +0 -8
- data/README.adoc +11 -8
- data/asciidoctor-epub3.gemspec +15 -17
- data/data/fonts/awesome/LICENSE.txt +135 -4
- data/data/fonts/awesome/fa-solid-900.ttf +0 -0
- data/data/fonts/awesome/icons.yml +35962 -12381
- data/data/fonts/awesome/shims.yml +449 -101
- data/data/styles/_colors.scss +2 -0
- data/data/styles/_reset.scss +2 -0
- data/data/styles/epub3-css3-only.scss +5 -3
- data/data/styles/epub3-fonts.scss +5 -3
- data/data/styles/epub3.scss +301 -291
- data/lib/asciidoctor-epub3/converter.rb +37 -30
- data/lib/asciidoctor-epub3/ext/core/file.rb +1 -1
- data/lib/asciidoctor-epub3/version.rb +1 -1
- metadata +101 -54
@@ -105,8 +105,10 @@ module Asciidoctor
|
|
105
105
|
@footnotes = []
|
106
106
|
|
107
107
|
basebackend 'html'
|
108
|
+
filetype 'epub'
|
108
109
|
outfilesuffix '.epub'
|
109
110
|
htmlsyntax 'xml'
|
111
|
+
supports_templates true
|
110
112
|
end
|
111
113
|
|
112
114
|
def convert(node, name = nil, _opts = {})
|
@@ -587,8 +589,7 @@ document.addEventListener('DOMContentLoaded', function(event, reader) {
|
|
587
589
|
def convert_example(node)
|
588
590
|
id_attr = node.id ? %( id="#{node.id}") : ''
|
589
591
|
title_div = if node.title?
|
590
|
-
%(<div class="example-title">#{node.
|
591
|
-
)
|
592
|
+
%(<div class="example-title">#{node.captioned_title}</div>)
|
592
593
|
else
|
593
594
|
''
|
594
595
|
end
|
@@ -735,6 +736,7 @@ document.addEventListener('DOMContentLoaded', function(event, reader) {
|
|
735
736
|
end
|
736
737
|
|
737
738
|
def convert_sidebar(node)
|
739
|
+
id_attribute = node.id ? %( id="#{node.id}") : ''
|
738
740
|
classes = ['sidebar']
|
739
741
|
if node.title?
|
740
742
|
classes << 'titled'
|
@@ -747,7 +749,7 @@ document.addEventListener('DOMContentLoaded', function(event, reader) {
|
|
747
749
|
title_attr = title_el = ''
|
748
750
|
end
|
749
751
|
|
750
|
-
%(<aside class="#{classes * ' '}"#{title_attr} epub:type="sidebar">
|
752
|
+
%(<aside#{id_attribute} class="#{classes * ' '}"#{title_attr} epub:type="sidebar">
|
751
753
|
#{title_el}<div class="content">
|
752
754
|
#{output_content node}
|
753
755
|
</div>
|
@@ -866,7 +868,7 @@ document.addEventListener('DOMContentLoaded', function(event, reader) {
|
|
866
868
|
class_attribute = %( class="#{classes.join ' '}")
|
867
869
|
|
868
870
|
lines << %(<div#{id_attribute}#{class_attribute}>)
|
869
|
-
lines << %(<div class="
|
871
|
+
lines << %(<div class="list-heading">#{node.title}</div>) if node.title?
|
870
872
|
|
871
873
|
case (style = node.style)
|
872
874
|
when 'itemized', 'ordered'
|
@@ -956,7 +958,7 @@ document.addEventListener('DOMContentLoaded', function(event, reader) {
|
|
956
958
|
ol_start_attr = node.attr?('start') ? %( start="#{node.attr 'start'}") : ''
|
957
959
|
id_attribute = node.id ? %( id="#{node.id}") : ''
|
958
960
|
lines = [%(<div#{id_attribute} class="#{div_classes * ' '}">)]
|
959
|
-
lines << %(<
|
961
|
+
lines << %(<div class="list-heading">#{node.title}</div>) if node.title?
|
960
962
|
lines << %(<ol#{ol_class_attr}#{ol_start_attr}#{node.option?('reversed') ? ' reversed="reversed"' : ''}>)
|
961
963
|
node.items.each do |item|
|
962
964
|
li_classes = [item.role].compact
|
@@ -985,7 +987,7 @@ document.addEventListener('DOMContentLoaded', function(event, reader) {
|
|
985
987
|
ul_class_attr = ul_classes.empty? ? '' : %( class="#{ul_classes * ' '}")
|
986
988
|
id_attribute = node.id ? %( id="#{node.id}") : ''
|
987
989
|
lines = [%(<div#{id_attribute} class="#{div_classes * ' '}">)]
|
988
|
-
lines << %(<
|
990
|
+
lines << %(<div class="list-heading">#{node.title}</div>) if node.title?
|
989
991
|
lines << %(<ul#{ul_class_attr}>)
|
990
992
|
node.items.each do |item|
|
991
993
|
li_classes = [item.role].compact
|
@@ -1505,7 +1507,8 @@ body > svg {
|
|
1505
1507
|
</svg></body>
|
1506
1508
|
</html>)
|
1507
1509
|
|
1508
|
-
@book.
|
1510
|
+
@book.prefixes['calibre'] = 'https://calibre-ebook.com'
|
1511
|
+
@book.add_ordered_item(%(#{name}.xhtml), content: content.to_ios, id: name).add_property('calibre:title-page')
|
1509
1512
|
end
|
1510
1513
|
|
1511
1514
|
def get_frontmatter_files(doc, workdir)
|
@@ -1623,31 +1626,35 @@ body > svg {
|
|
1623
1626
|
|
1624
1627
|
def nav_level(items, depth, state = {})
|
1625
1628
|
lines = []
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
lines
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1629
|
+
|
1630
|
+
if depth.positive?
|
1631
|
+
lines << '<ol>'
|
1632
|
+
items.each do |item|
|
1633
|
+
# index = (state[:index] = (state.fetch :index, 0) + 1)
|
1634
|
+
if (chapter_filename = get_chapter_filename item).nil?
|
1635
|
+
item_label = sanitize_xml get_numbered_title(item), :pcdata
|
1636
|
+
item_href = %(#{state[:content_doc_href]}##{item.id})
|
1637
|
+
else
|
1638
|
+
# NOTE: we sanitize the chapter titles because we use formatting to control layout
|
1639
|
+
item_label = if item.context == :document
|
1640
|
+
sanitize_doctitle_xml item, :cdata
|
1641
|
+
else
|
1642
|
+
sanitize_xml get_numbered_title(item), :cdata
|
1643
|
+
end
|
1644
|
+
item_href = (state[:content_doc_href] = %(#{chapter_filename}.xhtml))
|
1645
|
+
end
|
1646
|
+
lines << %(<li><a href="#{item_href}">#{item_label}</a>)
|
1647
|
+
if (child_sections = item.sections).empty?
|
1648
|
+
lines[-1] = %(#{lines[-1]}</li>)
|
1649
|
+
else
|
1650
|
+
lines << (nav_level child_sections, depth - 1, state)
|
1651
|
+
lines << '</li>'
|
1652
|
+
end
|
1653
|
+
state.delete :content_doc_href unless chapter_filename.nil?
|
1647
1654
|
end
|
1648
|
-
|
1655
|
+
lines << '</ol>'
|
1649
1656
|
end
|
1650
|
-
|
1657
|
+
|
1651
1658
|
lines * LF
|
1652
1659
|
end
|
1653
1660
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class File
|
4
|
-
#
|
4
|
+
# TODO: remove once minimum required Ruby version is at least 2.7
|
5
5
|
unless respond_to? :absolute_path?
|
6
6
|
def self.absolute_path?(path)
|
7
7
|
Pathname.new(path).absolute?
|
metadata
CHANGED
@@ -1,16 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-epub3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
8
8
|
- Sarah White
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: asciidoctor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gepub
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mime-types
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sass
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
14
69
|
- !ruby/object:Gem::Dependency
|
15
70
|
name: asciidoctor-diagram
|
16
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,165 +109,159 @@ dependencies:
|
|
54
109
|
- !ruby/object:Gem::Version
|
55
110
|
version: 1.1.0
|
56
111
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
112
|
+
name: concurrent-ruby
|
58
113
|
requirement: !ruby/object:Gem::Requirement
|
59
114
|
requirements:
|
60
115
|
- - "~>"
|
61
116
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
117
|
+
version: '1.0'
|
63
118
|
type: :development
|
64
119
|
prerelease: false
|
65
120
|
version_requirements: !ruby/object:Gem::Requirement
|
66
121
|
requirements:
|
67
122
|
- - "~>"
|
68
123
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
124
|
+
version: '1.0'
|
70
125
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
126
|
+
name: epubcheck-ruby
|
72
127
|
requirement: !ruby/object:Gem::Requirement
|
73
128
|
requirements:
|
74
129
|
- - "~>"
|
75
130
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
131
|
+
version: 5.2.0.0
|
77
132
|
type: :development
|
78
133
|
prerelease: false
|
79
134
|
version_requirements: !ruby/object:Gem::Requirement
|
80
135
|
requirements:
|
81
136
|
- - "~>"
|
82
137
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
138
|
+
version: 5.2.0.0
|
84
139
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
140
|
+
name: pygments.rb
|
86
141
|
requirement: !ruby/object:Gem::Requirement
|
87
142
|
requirements:
|
88
143
|
- - "~>"
|
89
144
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
145
|
+
version: 3.0.0
|
91
146
|
type: :development
|
92
147
|
prerelease: false
|
93
148
|
version_requirements: !ruby/object:Gem::Requirement
|
94
149
|
requirements:
|
95
150
|
- - "~>"
|
96
151
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
152
|
+
version: 3.0.0
|
98
153
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
154
|
+
name: rake
|
100
155
|
requirement: !ruby/object:Gem::Requirement
|
101
156
|
requirements:
|
102
157
|
- - "~>"
|
103
158
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
159
|
+
version: 13.2.0
|
105
160
|
type: :development
|
106
161
|
prerelease: false
|
107
162
|
version_requirements: !ruby/object:Gem::Requirement
|
108
163
|
requirements:
|
109
164
|
- - "~>"
|
110
165
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
166
|
+
version: 13.2.0
|
112
167
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
168
|
+
name: rouge
|
114
169
|
requirement: !ruby/object:Gem::Requirement
|
115
170
|
requirements:
|
116
171
|
- - "~>"
|
117
172
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
173
|
+
version: '3.0'
|
119
174
|
type: :development
|
120
175
|
prerelease: false
|
121
176
|
version_requirements: !ruby/object:Gem::Requirement
|
122
177
|
requirements:
|
123
178
|
- - "~>"
|
124
179
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
180
|
+
version: '3.0'
|
126
181
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
182
|
+
name: rspec
|
128
183
|
requirement: !ruby/object:Gem::Requirement
|
129
184
|
requirements:
|
130
185
|
- - "~>"
|
131
186
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
187
|
+
version: 3.13.0
|
133
188
|
type: :development
|
134
189
|
prerelease: false
|
135
190
|
version_requirements: !ruby/object:Gem::Requirement
|
136
191
|
requirements:
|
137
192
|
- - "~>"
|
138
193
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
194
|
+
version: 3.13.0
|
140
195
|
- !ruby/object:Gem::Dependency
|
141
|
-
name: rubocop
|
196
|
+
name: rubocop
|
142
197
|
requirement: !ruby/object:Gem::Requirement
|
143
198
|
requirements:
|
144
199
|
- - "~>"
|
145
200
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
201
|
+
version: 1.70.0
|
147
202
|
type: :development
|
148
203
|
prerelease: false
|
149
204
|
version_requirements: !ruby/object:Gem::Requirement
|
150
205
|
requirements:
|
151
206
|
- - "~>"
|
152
207
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
208
|
+
version: 1.70.0
|
154
209
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
210
|
+
name: rubocop-rake
|
156
211
|
requirement: !ruby/object:Gem::Requirement
|
157
212
|
requirements:
|
158
213
|
- - "~>"
|
159
214
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
161
|
-
type: :
|
215
|
+
version: 0.6.0
|
216
|
+
type: :development
|
162
217
|
prerelease: false
|
163
218
|
version_requirements: !ruby/object:Gem::Requirement
|
164
219
|
requirements:
|
165
220
|
- - "~>"
|
166
221
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
222
|
+
version: 0.6.0
|
168
223
|
- !ruby/object:Gem::Dependency
|
169
|
-
name:
|
224
|
+
name: rubocop-rspec
|
170
225
|
requirement: !ruby/object:Gem::Requirement
|
171
226
|
requirements:
|
172
|
-
- - "
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: 1.0.0
|
175
|
-
- - "<="
|
227
|
+
- - "~>"
|
176
228
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
178
|
-
type: :
|
229
|
+
version: '3.3'
|
230
|
+
type: :development
|
179
231
|
prerelease: false
|
180
232
|
version_requirements: !ruby/object:Gem::Requirement
|
181
233
|
requirements:
|
182
|
-
- - "
|
183
|
-
- !ruby/object:Gem::Version
|
184
|
-
version: 1.0.0
|
185
|
-
- - "<="
|
234
|
+
- - "~>"
|
186
235
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
236
|
+
version: '3.3'
|
188
237
|
- !ruby/object:Gem::Dependency
|
189
|
-
name:
|
238
|
+
name: slim
|
190
239
|
requirement: !ruby/object:Gem::Requirement
|
191
240
|
requirements:
|
192
241
|
- - "~>"
|
193
242
|
- !ruby/object:Gem::Version
|
194
|
-
version: '
|
195
|
-
type: :
|
243
|
+
version: '5.0'
|
244
|
+
type: :development
|
196
245
|
prerelease: false
|
197
246
|
version_requirements: !ruby/object:Gem::Requirement
|
198
247
|
requirements:
|
199
248
|
- - "~>"
|
200
249
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
250
|
+
version: '5.0'
|
202
251
|
- !ruby/object:Gem::Dependency
|
203
|
-
name:
|
252
|
+
name: tilt
|
204
253
|
requirement: !ruby/object:Gem::Requirement
|
205
254
|
requirements:
|
206
|
-
- - "
|
255
|
+
- - "~>"
|
207
256
|
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
|
-
type: :
|
257
|
+
version: '2.0'
|
258
|
+
type: :development
|
210
259
|
prerelease: false
|
211
260
|
version_requirements: !ruby/object:Gem::Requirement
|
212
261
|
requirements:
|
213
|
-
- - "
|
262
|
+
- - "~>"
|
214
263
|
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
264
|
+
version: '2.0'
|
216
265
|
description: 'An extension for Asciidoctor that converts AsciiDoc documents to EPUB3
|
217
266
|
e-book format.
|
218
267
|
|
@@ -293,7 +342,6 @@ homepage: https://github.com/asciidoctor/asciidoctor-epub3
|
|
293
342
|
licenses:
|
294
343
|
- MIT
|
295
344
|
metadata: {}
|
296
|
-
post_install_message:
|
297
345
|
rdoc_options: []
|
298
346
|
require_paths:
|
299
347
|
- lib
|
@@ -301,15 +349,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
301
349
|
requirements:
|
302
350
|
- - ">="
|
303
351
|
- !ruby/object:Gem::Version
|
304
|
-
version: 2.
|
352
|
+
version: 2.7.0
|
305
353
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
306
354
|
requirements:
|
307
355
|
- - ">="
|
308
356
|
- !ruby/object:Gem::Version
|
309
357
|
version: '0'
|
310
358
|
requirements: []
|
311
|
-
rubygems_version: 3.
|
312
|
-
signing_key:
|
359
|
+
rubygems_version: 3.6.7
|
313
360
|
specification_version: 4
|
314
361
|
summary: Converts AsciiDoc documents to EPUB3 e-book format
|
315
362
|
test_files: []
|