ebookbinder 1.0.0 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e84bb03efbd7cc1485383c90b47e60fbe9e61f711b5dcd19f016372433c08b00
4
- data.tar.gz: 43a1abc9fde8c47f9d8cd50f8829f490f249381240bbf7e772a7d7377c7d92c3
3
+ metadata.gz: bf3679fa9fe0db4a7f242b7defb30fd07f3217ffd3e4ffcbec1a842e30ced7fa
4
+ data.tar.gz: 28b58dec10fae2974d4a6bee7068a02d4154bedcc2924a2a9594f11d6740fa05
5
5
  SHA512:
6
- metadata.gz: be92f5553c6ff6417c4d2bafe8e8b487cbc9084f7721f647e8de787d354c9816a3dd81a44bf322231de57c84881a42a084b0d7460764dd622436842edc4cac30
7
- data.tar.gz: 388f22704f7770c26881542c3fe53d97ef58a5cd9e851e74382441ce26dca73c599048532b06ec704f60caee3e1202bd6ee2479fcbd05793cb20f6c3685667f3
6
+ metadata.gz: a2c97daecd67e300a6c1f2b8082d0c12b66d6c135c234eb498b126970a2b40701fdbc09b411f780cb43cfd5b0805a681b71383d9c7e4cbae0b95afed88330b0c
7
+ data.tar.gz: 2859f0a4ad5488ca9c7c7637ea3443059e685993ff1a4768a57cad714385720c8218789cf235c29f9256afeec0c72f619bb4d27a8e7eae909cd1efb728346309
data/.aspell.pws ADDED
@@ -0,0 +1,10 @@
1
+ personal_ws-1.1 en 9
2
+ Ebookbinder
3
+ Friedrich
4
+ SemVer
5
+ SemVerTag
6
+ XHTML
7
+ ebook
8
+ ebooks
9
+ epubcheck
10
+ regtest
data/Changelog CHANGED
@@ -1,2 +1,5 @@
1
+ 1.0.1
2
+ Improve repository structure and add regtest.
3
+
1
4
  1.0.0
2
5
  First public release.
data/README.md CHANGED
@@ -4,14 +4,20 @@
4
4
  ## Description
5
5
 
6
6
  This library should help to make ebooks as easy as possible. It interprets an
7
- XHTML structure and generate a corresponding ebook on base of easy asumptions.
7
+ XHTML structure and generate a corresponding ebook on base of easy assumptions.
8
+
9
+
10
+ ## Usage
11
+
12
+ To understand how Ebookbinder works have a look at the examples directory.
13
+ There are examples of the actual implemented functionality.
8
14
 
9
15
 
10
16
  ## Requirements
11
17
 
12
18
  To use rake check it needs an actual version of
13
19
  [epubcheck](https://www.w3.org/publishing/epubcheck/) accessible on the
14
- commandline via `epubcheck`.
20
+ command line via `epubcheck`.
15
21
 
16
22
 
17
23
  ## Versioning
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'rim/tire'
4
+ require 'rim/regtest'
4
5
  require 'rim/version'
5
6
  require_relative 'lib/ebookbinder/version'
6
7
 
@@ -8,7 +9,20 @@ Rim.setup do |r|
8
9
  r.name = 'ebookbinder'
9
10
  r.authors = 'Jan Friedrich'
10
11
  r.email = 'janfri26@gmail.com'
12
+ r.homepage = 'https://github.com/janfri/ebookbinder'
13
+ r.license = 'MIT'
14
+ r.summary = 'This library should help to make ebooks as easy as possible. It interprets an XHTML structure and generate a corresponding ebook on base of easy asumptions.'
11
15
  r.version = Ebookbinder::VERSION
12
- r.gem_files.exclude(/build/).exclude {|e| File.directory?(e)}
13
- r.test_files = FileList.new()
16
+ r.install_message = %q{
17
+ +-----------------------------------------------------------------------+
18
+ | To run rake check you need epubcheck installed and accessible via |
19
+ | `epubcheck` on the command line. |
20
+ | |
21
+ | https://www.w3.org/publishing/epubcheck/ |
22
+ +-----------------------------------------------------------------------+
23
+ }
24
+ r.gem_files += FileList.new('examples/*/Rakefile', 'examples/*/src/**/*.*')
14
25
  end
26
+
27
+ task :test => :regtest
28
+ task :default => :regtest
data/ebookbinder.gemspec CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: ebookbinder 1.0.0 ruby lib
2
+ # stub: ebookbinder 1.0.1 ruby lib
3
3
  #
4
4
  # This file is automatically generated by rim.
5
5
  # PLEASE DO NOT EDIT IT DIRECTLY!
@@ -7,20 +7,24 @@
7
7
 
8
8
  Gem::Specification.new do |s|
9
9
  s.name = "ebookbinder"
10
- s.version = "1.0.0"
10
+ s.version = "1.0.1"
11
11
 
12
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
13
  s.require_paths = ["lib"]
14
14
  s.authors = ["Jan Friedrich"]
15
- s.date = "2024-03-02"
15
+ s.date = "2024-03-05"
16
16
  s.description = ""
17
17
  s.email = "janfri26@gmail.com"
18
- s.files = ["Changelog", "Gemfile", "LICENSE", "README.md", "Rakefile", "ebookbinder.gemspec", "lib/ebookbinder.rb", "lib/ebookbinder/ebook_base.rb", "lib/ebookbinder/epub2.rb", "lib/ebookbinder/epub3.rb", "lib/ebookbinder/epub_base.rb", "lib/ebookbinder/version.rb", "test/epub2/Rakefile", "test/epub2/src/01.xhtml", "test/epub2/src/02.xhtml", "test/epub3/Rakefile", "test/epub3/src/01.xhtml", "test/epub3/src/02.xhtml"]
18
+ s.files = ["./.aspell.pws", "Changelog", "Gemfile", "LICENSE", "README.md", "Rakefile", "ebookbinder.gemspec", "examples/epub2/Rakefile", "examples/epub2/src/01.xhtml", "examples/epub2/src/02.xhtml", "examples/epub3/Rakefile", "examples/epub3/src/01.xhtml", "examples/epub3/src/02.xhtml", "lib/ebookbinder", "lib/ebookbinder.rb", "lib/ebookbinder/ebook_base.rb", "lib/ebookbinder/epub2.rb", "lib/ebookbinder/epub3.rb", "lib/ebookbinder/epub_base.rb", "lib/ebookbinder/version.rb", "regtest/epub2.rb", "regtest/epub2.yml", "regtest/epub3.rb", "regtest/epub3.yml"]
19
+ s.homepage = "https://github.com/janfri/ebookbinder"
20
+ s.licenses = ["MIT"]
21
+ s.post_install_message = "\n+-----------------------------------------------------------------------+\n| To run rake check you need epubcheck installed and accessible via |\n| `epubcheck` on the command line. |\n| |\n| https://www.w3.org/publishing/epubcheck/ |\n+-----------------------------------------------------------------------+\n "
19
22
  s.rubygems_version = "3.6.0.dev"
20
- s.summary = ""
23
+ s.summary = "This library should help to make ebooks as easy as possible. It interprets an XHTML structure and generate a corresponding ebook on base of easy asumptions."
21
24
 
22
25
  s.specification_version = 4
23
26
 
24
27
  s.add_development_dependency(%q<rake>, [">= 0"])
25
28
  s.add_development_dependency(%q<rim>, ["~> 2.17"])
29
+ s.add_development_dependency(%q<regtest>, ["~> 2"])
26
30
  end
@@ -1,7 +1,5 @@
1
1
  # encoding: utf-8
2
2
  require_relative '../ebookbinder'
3
-
4
- require 'rake/clean'
5
3
  require 'singleton'
6
4
 
7
5
  module Ebookbinder
@@ -52,6 +52,7 @@ module Ebookbinder
52
52
  end
53
53
 
54
54
  def generate_ncx_file
55
+ puts "generate #{ncx_filename}" if verbose
55
56
  builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
56
57
  xml.ncx(xmlns: 'http://www.daisy.org/z3986/2005/ncx/', version: '2005-1') do
57
58
  xml.head do
@@ -128,7 +129,7 @@ module Ebookbinder
128
129
  root = Dir.pwd
129
130
  epub_filename_fullpath = File.join(root, epub_filename)
130
131
  cd epub_dir do
131
- sh "zip -Xr9D \"#{epub_filename_fullpath}\" mimetype *"
132
+ sh "zip -Xqr9D \"#{epub_filename_fullpath}\" mimetype *"
132
133
  end
133
134
  end
134
135
 
@@ -53,7 +53,7 @@ module Ebookbinder
53
53
  end
54
54
 
55
55
  def generate_nav_file
56
- puts "generate #{nav_filename}"
56
+ puts "generate #{nav_filename}" if verbose
57
57
  builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
58
58
  xml.html(xmlns: 'http://www.w3.org/1999/xhtml') do
59
59
  xml.head do
@@ -123,7 +123,7 @@ module Ebookbinder
123
123
  root = Dir.pwd
124
124
  epub_filename_fullpath = File.join(root, epub_filename)
125
125
  cd epub_dir do
126
- sh "zip -Xr9D \"#{epub_filename_fullpath}\" mimetype *"
126
+ sh "zip -Xqr9D \"#{epub_filename_fullpath}\" mimetype *"
127
127
  end
128
128
  end
129
129
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ebookbinder
4
4
 
5
- VERSION = '1.0.0'
5
+ VERSION = '1.0.1'
6
6
 
7
7
  end
data/lib/ebookbinder.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'rake'
3
+ require 'rake/clean'
3
4
  require 'yaml'
4
5
 
5
6
  module Ebookbinder
data/regtest/epub2.rb ADDED
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'regtest'
4
+
5
+ EPUB2_DIR = File.join(__dir__, '../examples/epub2/build/epub2')
6
+
7
+ Dir.chdir(EPUB2_DIR) do
8
+ system('rake -s clobber build')
9
+ end
10
+
11
+ %w(toc.ncx).each do |fn|
12
+
13
+ Regtest.sample fn do
14
+ File.read File.join(EPUB2_DIR, fn)
15
+ end
16
+
17
+ end
data/regtest/epub2.yml ADDED
@@ -0,0 +1,77 @@
1
+ ---
2
+ sample: toc.ncx
3
+ result: |
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">
6
+ <head>
7
+ <meta name="dtb:uid" content="79590ed992de79754671e01316da8f2a"/>
8
+ <meta name="dtb:depth" content="2"/>
9
+ <meta name="dtb:totalPageCount" content="0"/>
10
+ <meta name="dtb:maxPageNumber" content="0"/>
11
+ </head>
12
+ <docTitle>
13
+ <text>Test Book in EPUB 2</text>
14
+ </docTitle>
15
+ <navMap>
16
+ <navPoint id="id_0001" playOrder="1">
17
+ <navLabel>
18
+ <text>H1 number 1</text>
19
+ </navLabel>
20
+ <content src="01.xhtml#id1"/>
21
+ </navPoint>
22
+ <navPoint id="id_0002" playOrder="2">
23
+ <navLabel>
24
+ <text>H1 number 2</text>
25
+ </navLabel>
26
+ <content src="01.xhtml#id2"/>
27
+ </navPoint>
28
+ <navPoint id="id_0003" playOrder="3">
29
+ <navLabel>
30
+ <text>H1 number 3</text>
31
+ </navLabel>
32
+ <content src="01.xhtml#id3"/>
33
+ </navPoint>
34
+ <navPoint id="id_0004" playOrder="4">
35
+ <navLabel>
36
+ <text>H1 number 4</text>
37
+ </navLabel>
38
+ <content src="01.xhtml#id4"/>
39
+ </navPoint>
40
+ <navPoint id="id_0005" playOrder="5">
41
+ <navLabel>
42
+ <text>H1 number 5</text>
43
+ </navLabel>
44
+ <content src="01.xhtml#id5"/>
45
+ </navPoint>
46
+ <navPoint id="id_0006" playOrder="6">
47
+ <navLabel>
48
+ <text>H1 number 1</text>
49
+ </navLabel>
50
+ <content src="02.xhtml#id1"/>
51
+ </navPoint>
52
+ <navPoint id="id_0007" playOrder="7">
53
+ <navLabel>
54
+ <text>H1 number 2</text>
55
+ </navLabel>
56
+ <content src="02.xhtml#id2"/>
57
+ </navPoint>
58
+ <navPoint id="id_0008" playOrder="8">
59
+ <navLabel>
60
+ <text>H1 number 3</text>
61
+ </navLabel>
62
+ <content src="02.xhtml#id3"/>
63
+ </navPoint>
64
+ <navPoint id="id_0009" playOrder="9">
65
+ <navLabel>
66
+ <text>H1 number 4</text>
67
+ </navLabel>
68
+ <content src="02.xhtml#id4"/>
69
+ </navPoint>
70
+ <navPoint id="id_0010" playOrder="10">
71
+ <navLabel>
72
+ <text>H1 number 5</text>
73
+ </navLabel>
74
+ <content src="02.xhtml#id5"/>
75
+ </navPoint>
76
+ </navMap>
77
+ </ncx>
data/regtest/epub3.rb ADDED
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'regtest'
4
+
5
+ EPUB3_DIR = File.join(__dir__, '../examples/epub3/build/epub3')
6
+
7
+ Dir.chdir(EPUB3_DIR) do
8
+ system('rake -s clobber build')
9
+ end
10
+
11
+ %w(nav.xhtml).each do |fn|
12
+
13
+ Regtest.sample fn do
14
+ File.read File.join(EPUB3_DIR, fn)
15
+ end
16
+
17
+ end
data/regtest/epub3.yml ADDED
@@ -0,0 +1,45 @@
1
+ ---
2
+ sample: nav.xhtml
3
+ result: |
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <html xmlns="http://www.w3.org/1999/xhtml">
6
+ <head>
7
+ <title>Test Book in EPUB 3</title>
8
+ </head>
9
+ <body>
10
+ <nav xmlns:epub="http://www.idpf.org/2007/ops" epub:type="toc" id="toc">
11
+ <ol>
12
+ <li>
13
+ <a href="01.xhtml#id1">H1 number 1</a>
14
+ </li>
15
+ <li>
16
+ <a href="01.xhtml#id2">H1 number 2</a>
17
+ </li>
18
+ <li>
19
+ <a href="01.xhtml#id3">H1 number 3</a>
20
+ </li>
21
+ <li>
22
+ <a href="01.xhtml#id4">H1 number 4</a>
23
+ </li>
24
+ <li>
25
+ <a href="01.xhtml#id5">H1 number 5</a>
26
+ </li>
27
+ <li>
28
+ <a href="02.xhtml#id1">H1 number 1</a>
29
+ </li>
30
+ <li>
31
+ <a href="02.xhtml#id2">H1 number 2</a>
32
+ </li>
33
+ <li>
34
+ <a href="02.xhtml#id3">H1 number 3</a>
35
+ </li>
36
+ <li>
37
+ <a href="02.xhtml#id4">H1 number 4</a>
38
+ </li>
39
+ <li>
40
+ <a href="02.xhtml#id5">H1 number 5</a>
41
+ </li>
42
+ </ol>
43
+ </nav>
44
+ </body>
45
+ </html>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebookbinder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Friedrich
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-03-02 00:00:00.000000000 Z
10
+ date: 2024-03-05 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rake
@@ -37,32 +37,58 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '2.17'
40
+ - !ruby/object:Gem::Dependency
41
+ name: regtest
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2'
40
54
  description: ''
41
55
  email: janfri26@gmail.com
42
56
  executables: []
43
57
  extensions: []
44
58
  extra_rdoc_files: []
45
59
  files:
60
+ - "./.aspell.pws"
46
61
  - Changelog
47
62
  - Gemfile
48
63
  - LICENSE
49
64
  - README.md
50
65
  - Rakefile
51
66
  - ebookbinder.gemspec
67
+ - examples/epub2/Rakefile
68
+ - examples/epub2/src/01.xhtml
69
+ - examples/epub2/src/02.xhtml
70
+ - examples/epub3/Rakefile
71
+ - examples/epub3/src/01.xhtml
72
+ - examples/epub3/src/02.xhtml
52
73
  - lib/ebookbinder.rb
53
74
  - lib/ebookbinder/ebook_base.rb
54
75
  - lib/ebookbinder/epub2.rb
55
76
  - lib/ebookbinder/epub3.rb
56
77
  - lib/ebookbinder/epub_base.rb
57
78
  - lib/ebookbinder/version.rb
58
- - test/epub2/Rakefile
59
- - test/epub2/src/01.xhtml
60
- - test/epub2/src/02.xhtml
61
- - test/epub3/Rakefile
62
- - test/epub3/src/01.xhtml
63
- - test/epub3/src/02.xhtml
64
- licenses: []
79
+ - regtest/epub2.rb
80
+ - regtest/epub2.yml
81
+ - regtest/epub3.rb
82
+ - regtest/epub3.yml
83
+ homepage: https://github.com/janfri/ebookbinder
84
+ licenses:
85
+ - MIT
65
86
  metadata: {}
87
+ post_install_message: "\n+-----------------------------------------------------------------------+\n|
88
+ To run rake check you need epubcheck installed and accessible via |\n| `epubcheck`
89
+ on the command line. |\n| |\n|
90
+ https://www.w3.org/publishing/epubcheck/ |\n+-----------------------------------------------------------------------+\n
91
+ \ "
66
92
  rdoc_options: []
67
93
  require_paths:
68
94
  - lib
@@ -79,5 +105,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
105
  requirements: []
80
106
  rubygems_version: 3.6.0.dev
81
107
  specification_version: 4
82
- summary: ''
108
+ summary: This library should help to make ebooks as easy as possible. It interprets
109
+ an XHTML structure and generate a corresponding ebook on base of easy asumptions.
83
110
  test_files: []
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes