epub-maker 0.2.1 → 0.2.2
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.markdown +5 -0
- data/lib/epub/maker/publication.rb +36 -23
- data/lib/epub/maker/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a0de0d21b15c7edf149c559cc3f4d3e96ddeb6f2fb8555743de048e324d00702
|
|
4
|
+
data.tar.gz: b7a0d6f0354c4a87be88c8f9b0e82ced57146acd928c8e619fa49fb0af2a62c5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d02e4860645bb195799f655fbd2d52de44d2d3dd1b377e57216397074c5448e1ab846ad898d641110b025f74911fac7ff410546edd565bf02ddc73c04e55607b
|
|
7
|
+
data.tar.gz: 377056e9093afa652560d5dd9478b7fa06f23dc10cd1ce3b1085143adfddd0ea429ad2d6f1b6f0bb9ae7039dd807633c40e646f39079eb8f86777b6c58e2b3a9
|
data/CHANGELOG.markdown
CHANGED
|
@@ -207,6 +207,8 @@ module EPUB
|
|
|
207
207
|
end
|
|
208
208
|
|
|
209
209
|
class Manifest
|
|
210
|
+
using Parser::XMLDocument::Refinements
|
|
211
|
+
|
|
210
212
|
include ContentModel
|
|
211
213
|
|
|
212
214
|
def make
|
|
@@ -214,29 +216,20 @@ module EPUB
|
|
|
214
216
|
|
|
215
217
|
# @todo more careful
|
|
216
218
|
unless items.any? &:nav?
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
nav.href = item.href
|
|
232
|
-
nav.text = File.basename(item.href.normalize.request_uri, '.*')
|
|
233
|
-
nav
|
|
234
|
-
}
|
|
235
|
-
nav_doc.navigations << nav_nav
|
|
236
|
-
|
|
237
|
-
nav.content = nav_doc.to_xml
|
|
238
|
-
|
|
239
|
-
self << nav
|
|
219
|
+
make_nav do |item, doc|
|
|
220
|
+
doc.navigations[0].items = items.select(&:xhtml?).collect {|i|
|
|
221
|
+
nav = ContentDocument::Navigation::Item.new
|
|
222
|
+
nav.item = item
|
|
223
|
+
nav.href = item.href
|
|
224
|
+
text = File.basename(item.href.normalize.request_uri, '.*')
|
|
225
|
+
if i.content_file
|
|
226
|
+
title = Parser::XMLDocument.new(File.read(i.content_file)).each_element_by_xpath("/xhtml:html/xhtml:head/xhtml:title", EPUB::NAMESPACES).first&.text
|
|
227
|
+
text = title if title
|
|
228
|
+
end
|
|
229
|
+
nav.text = text
|
|
230
|
+
nav
|
|
231
|
+
}
|
|
232
|
+
end
|
|
240
233
|
end
|
|
241
234
|
|
|
242
235
|
self
|
|
@@ -271,6 +264,26 @@ module EPUB
|
|
|
271
264
|
end
|
|
272
265
|
end
|
|
273
266
|
|
|
267
|
+
def make_nav(options={})
|
|
268
|
+
make_item options do |item|
|
|
269
|
+
item.id = "toc"
|
|
270
|
+
item.href = Addressable::URI.parse("nav.xhtml")
|
|
271
|
+
item.media_type = "application/xhtml+xml"
|
|
272
|
+
item.properties << "nav"
|
|
273
|
+
|
|
274
|
+
doc = ContentDocument::Navigation.new
|
|
275
|
+
doc.item = item
|
|
276
|
+
|
|
277
|
+
nav = ContentDocument::Navigation::Navigation.new
|
|
278
|
+
nav.type = ContentDocument::Navigation::Navigation::Type::TOC
|
|
279
|
+
doc.navigations << nav
|
|
280
|
+
|
|
281
|
+
yield [item, doc] if block_given?
|
|
282
|
+
|
|
283
|
+
item.content = doc.to_xml
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
|
|
274
287
|
def to_xml_fragment(xml)
|
|
275
288
|
node = xml.manifest_ {
|
|
276
289
|
items.each do |item|
|
data/lib/epub/maker/version.rb
CHANGED