gepub 1.0.0rc1 → 1.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.
- checksums.yaml +4 -4
- data/README.md +76 -37
- data/examples/{builder_example.rb → deprecated_builder_example.rb} +2 -0
- data/examples/generate_example.rb +47 -21
- data/examples/generate_example_legacy_apis.rb +51 -0
- data/lib/gepub/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 877e717beb44a21df9afc0a5427d5576a162e27dfad1cb562cb5b36bd2adcdc9
|
4
|
+
data.tar.gz: 2ea4a07ae25bf2a85af439a1b49b429ce70961e958a8deba1882f2f46075ec55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e58686f88c0d9e80dd4db6c3749a571ba53b2b4d92579fde57af40802438d64e344629d59d2d6667da83eca35bf2202616ac4097e2c5caca7bc833ad188874e
|
7
|
+
data.tar.gz: 59065a6eea1f705bda13722f677928730e7b23565dbd778a1c9174e3f0919880f9a504c90f0ba86c3d75bdeb914207473f13f6ad64596420d382090d5517f4c1
|
data/README.md
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
[](https://gitter.im/skoji/gepub?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
4
4
|
[<img src="https://secure.travis-ci.org/skoji/gepub.png" />](http://travis-ci.org/skoji/gepub)
|
5
5
|
[](https://coveralls.io/r/skoji/gepub?branch=master)
|
6
|
-
[](https://gemnasium.com/skoji/gepub)
|
7
6
|
[](http://badge.fury.io/rb/gepub)
|
8
7
|
|
9
8
|
* http://rdoc.info/github/skoji/gepub/master/frames
|
@@ -16,57 +15,97 @@ a generic EPUB parser/generator library.
|
|
16
15
|
|
17
16
|
* GEPUB::Book provides functionality to create EPUB file, and parsing EPUB files
|
18
17
|
* Handle every metadata in EPUB2/EPUB3.
|
19
|
-
* GEPUB::Builder provides an easy and powerful way to create EPUB3 files
|
20
18
|
|
21
19
|
* See [issues](https://github.com/skoji/gepub/issues/) for known problems.
|
22
20
|
|
23
|
-
If you are using GEPUB::Builder
|
24
|
-
|
25
|
-
**GEPUB::Builder will be obsolete in gepub 0.7. GEPUB::Book#new will be enhanced instead of Builder DSL.**
|
26
|
-
|
21
|
+
If you are using GEPUB::Builder and do not like its behaviour(e.g. the block inside is evaluated as inside the Builder instance), please consider using GEPUB::Book directly.
|
27
22
|
|
28
23
|
## SYNOPSIS:
|
29
24
|
|
30
25
|
### Builder Example
|
31
26
|
|
32
27
|
```ruby
|
33
|
-
require '
|
28
|
+
require 'rubygems'
|
34
29
|
require 'gepub'
|
35
|
-
builder = GEPUB::Builder.new {
|
36
|
-
language 'en'
|
37
|
-
unique_identifier 'http:/example.jp/bookid_in_url', 'BookID', 'URL'
|
38
|
-
title 'GEPUB Sample Book'
|
39
|
-
subtitle 'This book is just a sample'
|
40
|
-
|
41
|
-
creator 'KOJIMA Satoshi'
|
42
|
-
|
43
|
-
contributors 'Denshobu', 'Asagaya Densho', 'Shonan Densho Teidan', 'eMagazine Torutaru'
|
44
|
-
|
45
|
-
date '2012-02-29T00:00:00Z'
|
46
30
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
31
|
+
book = GEPUB::Book.new
|
32
|
+
book.primary_identifier('http://example.jp/bookid_in_url', 'BookID', 'URL')
|
33
|
+
book.language = 'ja'
|
34
|
+
|
35
|
+
book.add_title 'GEPUBサンプル文書',
|
36
|
+
title_type: GEPUB::TITLE_TYPE::MAIN,
|
37
|
+
lang: 'ja',
|
38
|
+
file_as: 'GEPUB Sample Book',
|
39
|
+
display_seq: 1,
|
40
|
+
alternates: {
|
41
|
+
'en' => 'GEPUB Sample Book (Japanese)',
|
42
|
+
'el' => 'GEPUB δείγμα (Ιαπωνικά)',
|
43
|
+
'th' => 'GEPUB ตัวอย่าง (ญี่ปุ่น)' }
|
44
|
+
|
45
|
+
# you can do the same thing using method chain
|
46
|
+
book.add_title('これはあくまでサンプルです', title_type: GEPUB::TITLE_TYPE::SUBTITLE).display_seq(1).add_alternates('en' => 'this book is just a sample.')
|
47
|
+
|
48
|
+
# use arguments
|
49
|
+
book.add_creator '小嶋智',
|
50
|
+
display_seq:1,
|
51
|
+
alternates: { 'en' => 'KOJIMA Satoshi' }
|
52
|
+
book.add_contributor '電書部',
|
53
|
+
display_seq: 1,
|
54
|
+
alternates: {'en' => 'Denshobu'}
|
55
|
+
book.add_contributor 'アサガヤデンショ',
|
56
|
+
display_seq: 2,
|
57
|
+
alternates: {'en' => 'Asagaya Densho'}
|
58
|
+
# you can also use method chain
|
59
|
+
book.add_contributor('湘南電書鼎談').display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
|
60
|
+
book.add_contributor('電子雑誌トルタル').display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
|
61
|
+
|
62
|
+
imgfile = File.join(File.dirname(__FILE__), 'image1.jpg')
|
63
|
+
File.open(imgfile) do
|
64
|
+
|io|
|
65
|
+
book.add_item('img/image1.jpg',content: io).cover_image
|
66
|
+
end
|
67
|
+
|
68
|
+
# within ordered block, add_item will be added to spine.
|
69
|
+
book.ordered {
|
70
|
+
book.add_item('text/cover.xhtml',
|
71
|
+
content: StringIO.new(<<-COVER)).landmark(type: 'cover', title: 'cover page')
|
72
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
73
|
+
<head>
|
74
|
+
<title>cover page</title>
|
75
|
+
</head>
|
76
|
+
<body>
|
77
|
+
<h1>The Book</h1>
|
78
|
+
<img src="../img/image1.jpg" />
|
79
|
+
</body></html>
|
80
|
+
COVER
|
81
|
+
book.add_item('text/chap1.xhtml').add_content(StringIO.new(<<-CHAP_ONE)).toc_text('Chapter 1').landmark(type: 'bodymatter', title: '本文')
|
82
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
83
|
+
<head><title>c1</title></head>
|
84
|
+
<body><p>the first page</p></body></html>
|
85
|
+
CHAP_ONE
|
86
|
+
book.add_item('text/chap1-1.xhtml').add_content(StringIO.new(<<-SEC_ONE_ONE)) # do not appear on table of contents
|
87
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
88
|
+
<head><title>c2</title></head>
|
89
|
+
<body><p>the second page</p></body></html>
|
90
|
+
SEC_ONE_ONE
|
91
|
+
book.add_item('text/chap2.xhtml').add_content(StringIO.new(<<-CHAP_TWO)).toc_text('Chapter 2')
|
92
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
93
|
+
<head><title>c3</title></head>
|
94
|
+
<body><p>the third page</p></body></html>
|
95
|
+
CHAP_TWO
|
96
|
+
# to add nav file:
|
97
|
+
# book.add_item('path/to/nav').add_content(nav_html_content).add_property('nav')
|
59
98
|
}
|
60
|
-
epubname = File.join(File.dirname(__FILE__), '
|
61
|
-
|
99
|
+
epubname = File.join(File.dirname(__FILE__), 'example_test.epub')
|
100
|
+
|
101
|
+
# if you do not specify your own nav document with add_item,
|
102
|
+
# simple navigation text will be generated in generate_epub.
|
103
|
+
# auto-generated nav file will not appear on spine.
|
104
|
+
book.generate_epub(epubname)
|
62
105
|
```
|
63
|
-
[
|
64
|
-
[examples in this repository](https://github.com/skoji/gepub/tree/master/examples/)
|
106
|
+
* [examples in this repository](https://github.com/skoji/gepub/tree/master/examples/)
|
65
107
|
|
66
108
|
## INSTALL:
|
67
109
|
|
68
110
|
* gem install gepub
|
69
111
|
|
70
|
-
|
71
|
-
|
72
|
-
[](http://coderwall.com/skoji)
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
require 'rubygems'
|
3
2
|
require 'gepub'
|
4
3
|
|
@@ -6,40 +5,67 @@ book = GEPUB::Book.new
|
|
6
5
|
book.primary_identifier('http://example.jp/bookid_in_url', 'BookID', 'URL')
|
7
6
|
book.language = 'ja'
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
title.add_alternates(
|
8
|
+
book.add_title 'GEPUBサンプル文書',
|
9
|
+
title_type: GEPUB::TITLE_TYPE::MAIN,
|
10
|
+
lang: 'ja',
|
11
|
+
file_as: 'GEPUB Sample Book',
|
12
|
+
display_seq: 1,
|
13
|
+
alternates: {
|
16
14
|
'en' => 'GEPUB Sample Book (Japanese)',
|
17
15
|
'el' => 'GEPUB δείγμα (Ιαπωνικά)',
|
18
|
-
'th' => 'GEPUB ตัวอย่าง (ญี่ปุ่น)'
|
19
|
-
|
16
|
+
'th' => 'GEPUB ตัวอย่าง (ญี่ปุ่น)' }
|
17
|
+
|
20
18
|
# you can do the same thing using method chain
|
21
19
|
book.add_title('これはあくまでサンプルです', title_type: GEPUB::TITLE_TYPE::SUBTITLE).display_seq(1).add_alternates('en' => 'this book is just a sample.')
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
}
|
27
|
-
book.add_contributor
|
28
|
-
|
20
|
+
|
21
|
+
# use arguments
|
22
|
+
book.add_creator '小嶋智',
|
23
|
+
display_seq:1,
|
24
|
+
alternates: { 'en' => 'KOJIMA Satoshi' }
|
25
|
+
book.add_contributor '電書部',
|
26
|
+
display_seq: 1,
|
27
|
+
alternates: {'en' => 'Denshobu'}
|
28
|
+
book.add_contributor 'アサガヤデンショ',
|
29
|
+
display_seq: 2,
|
30
|
+
alternates: {'en' => 'Asagaya Densho'}
|
31
|
+
# you can also use method chain
|
29
32
|
book.add_contributor('湘南電書鼎談').display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
|
30
33
|
book.add_contributor('電子雑誌トルタル').display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
|
31
34
|
|
32
35
|
imgfile = File.join(File.dirname(__FILE__), 'image1.jpg')
|
33
36
|
File.open(imgfile) do
|
34
37
|
|io|
|
35
|
-
book.add_item('img/image1.jpg',io).cover_image
|
38
|
+
book.add_item('img/image1.jpg',content: io).cover_image
|
36
39
|
end
|
37
40
|
|
38
41
|
# within ordered block, add_item will be added to spine.
|
39
42
|
book.ordered {
|
40
|
-
book.add_item('text/
|
41
|
-
|
42
|
-
|
43
|
+
book.add_item('text/cover.xhtml',
|
44
|
+
content: StringIO.new(<<-COVER)).landmark(type: 'cover', title: 'cover page')
|
45
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
46
|
+
<head>
|
47
|
+
<title>cover page</title>
|
48
|
+
</head>
|
49
|
+
<body>
|
50
|
+
<h1>The Book</h1>
|
51
|
+
<img src="../img/image1.jpg" />
|
52
|
+
</body></html>
|
53
|
+
COVER
|
54
|
+
book.add_item('text/chap1.xhtml').add_content(StringIO.new(<<-CHAP_ONE)).toc_text('Chapter 1').landmark(type: 'bodymatter', title: '本文')
|
55
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
56
|
+
<head><title>c1</title></head>
|
57
|
+
<body><p>the first page</p></body></html>
|
58
|
+
CHAP_ONE
|
59
|
+
book.add_item('text/chap1-1.xhtml').add_content(StringIO.new(<<-SEC_ONE_ONE)) # do not appear on table of contents
|
60
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
61
|
+
<head><title>c2</title></head>
|
62
|
+
<body><p>the second page</p></body></html>
|
63
|
+
SEC_ONE_ONE
|
64
|
+
book.add_item('text/chap2.xhtml').add_content(StringIO.new(<<-CHAP_TWO)).toc_text('Chapter 2')
|
65
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
66
|
+
<head><title>c3</title></head>
|
67
|
+
<body><p>the third page</p></body></html>
|
68
|
+
CHAP_TWO
|
43
69
|
# to add nav file:
|
44
70
|
# book.add_item('path/to/nav').add_content(nav_html_content).add_property('nav')
|
45
71
|
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'gepub'
|
3
|
+
|
4
|
+
book = GEPUB::Book.new
|
5
|
+
book.primary_identifier('http://example.jp/bookid_in_url', 'BookID', 'URL')
|
6
|
+
book.language = 'ja'
|
7
|
+
|
8
|
+
# you can add metadata and its property using block
|
9
|
+
book.add_title('GEPUBサンプル文書', title_type: GEPUB::TITLE_TYPE::MAIN) {
|
10
|
+
|title|
|
11
|
+
title.lang = 'ja'
|
12
|
+
title.file_as = 'GEPUB Sample Book'
|
13
|
+
title.display_seq = 1
|
14
|
+
title.add_alternates(
|
15
|
+
'en' => 'GEPUB Sample Book (Japanese)',
|
16
|
+
'el' => 'GEPUB δείγμα (Ιαπωνικά)',
|
17
|
+
'th' => 'GEPUB ตัวอย่าง (ญี่ปุ่น)')
|
18
|
+
}
|
19
|
+
# you can do the same thing using method chain
|
20
|
+
book.add_title('これはあくまでサンプルです', title_type: GEPUB::TITLE_TYPE::SUBTITLE).display_seq(1).add_alternates('en' => 'this book is just a sample.')
|
21
|
+
book.add_creator('小嶋智') {
|
22
|
+
|creator|
|
23
|
+
creator.display_seq = 1
|
24
|
+
creator.add_alternates('en' => 'KOJIMA Satoshi')
|
25
|
+
}
|
26
|
+
book.add_contributor('電書部').display_seq(1).add_alternates('en' => 'Denshobu')
|
27
|
+
book.add_contributor('アサガヤデンショ').display_seq(2).add_alternates('en' => 'Asagaya Densho')
|
28
|
+
book.add_contributor('湘南電書鼎談').display_seq(3).add_alternates('en' => 'Shonan Densho Teidan')
|
29
|
+
book.add_contributor('電子雑誌トルタル').display_seq(4).add_alternates('en' => 'eMagazine Torutaru')
|
30
|
+
|
31
|
+
imgfile = File.join(File.dirname(__FILE__), 'image1.jpg')
|
32
|
+
File.open(imgfile) do
|
33
|
+
|io|
|
34
|
+
book.add_item('img/image1.jpg',io).cover_image
|
35
|
+
end
|
36
|
+
|
37
|
+
# within ordered block, add_item will be added to spine.
|
38
|
+
book.ordered {
|
39
|
+
book.add_item('text/chap1.xhtml').add_content(StringIO.new('<html xmlns="http://www.w3.org/1999/xhtml"><head><title>c1</title></head><body><p>the first page</p></body></html>')).toc_text('Chapter 1')
|
40
|
+
book.add_item('text/chap1-1.xhtml').add_content(StringIO.new('<html xmlns="http://www.w3.org/1999/xhtml"><head><title>c2</title></head><body><p>the second page</p></body></html>')) # do not appear on table of contents
|
41
|
+
book.add_item('text/chap2.xhtml').add_content(StringIO.new('<html xmlns="http://www.w3.org/1999/xhtml"><head><title>c3</title></head><body><p>the third page</p></body></html>')).toc_text('Chapter 2')
|
42
|
+
# to add nav file:
|
43
|
+
# book.add_item('path/to/nav').add_content(nav_html_content).add_property('nav')
|
44
|
+
}
|
45
|
+
epubname = File.join(File.dirname(__FILE__), 'example_test.epub')
|
46
|
+
|
47
|
+
# if you do not specify your own nav document with add_item,
|
48
|
+
# simple navigation text will be generated in generate_epub.
|
49
|
+
# auto-generated nav file will not appear on spine.
|
50
|
+
book.generate_epub(epubname)
|
51
|
+
|
data/lib/gepub/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gepub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KOJIMA Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -91,8 +91,9 @@ files:
|
|
91
91
|
- Rakefile
|
92
92
|
- bin/genepub
|
93
93
|
- bin/gepuber
|
94
|
-
- examples/
|
94
|
+
- examples/deprecated_builder_example.rb
|
95
95
|
- examples/generate_example.rb
|
96
|
+
- examples/generate_example_legacy_apis.rb
|
96
97
|
- examples/image1.jpg
|
97
98
|
- examples/new_book_example.rb
|
98
99
|
- gepub.gemspec
|
@@ -180,9 +181,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
180
181
|
version: '0'
|
181
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
183
|
requirements:
|
183
|
-
- - "
|
184
|
+
- - ">="
|
184
185
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
186
|
+
version: '0'
|
186
187
|
requirements: []
|
187
188
|
rubyforge_project: gepub
|
188
189
|
rubygems_version: 2.7.6
|