ebookbinder 1.0.1 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf3679fa9fe0db4a7f242b7defb30fd07f3217ffd3e4ffcbec1a842e30ced7fa
4
- data.tar.gz: 28b58dec10fae2974d4a6bee7068a02d4154bedcc2924a2a9594f11d6740fa05
3
+ metadata.gz: 5117dae1bab67afeba3a210ad13cfa680ae5d929a54a00221c7d17f091e469fc
4
+ data.tar.gz: 076b90b5ceb952a95166aeee2b2bd01a61b9d5c5629f26d114294caa329929b2
5
5
  SHA512:
6
- metadata.gz: a2c97daecd67e300a6c1f2b8082d0c12b66d6c135c234eb498b126970a2b40701fdbc09b411f780cb43cfd5b0805a681b71383d9c7e4cbae0b95afed88330b0c
7
- data.tar.gz: 2859f0a4ad5488ca9c7c7637ea3443059e685993ff1a4768a57cad714385720c8218789cf235c29f9256afeec0c72f619bb4d27a8e7eae909cd1efb728346309
6
+ metadata.gz: e74df6a2a0aaca1ccc624e3770613fa11539c878ffd5a25b938bf3c02433917fd93b0e83c0cfdf8f6cd583a85fd164cf98905b5838bfea28345c3801a3bbd388
7
+ data.tar.gz: 7e4ce1635ec3c65ecd152e0971c8c43038f7ac4875ec04dbea607d24a9c86f57c213911a15e6b3b1db2b33d051e702e2550c4275aaf61044085e73bad1c3b8c4
data/Changelog CHANGED
@@ -1,5 +1,11 @@
1
+ 1.2.0
2
+ Support font/opentype and text/plain as mime types.
3
+
4
+ 1.1.0
5
+ Generate hierarchical table of content from XHTML header elements.
6
+
1
7
  1.0.1
2
- Improve repository structure and add regtest.
8
+ Improve repository structure.
3
9
 
4
10
  1.0.0
5
11
  First public release.
@@ -6,10 +6,65 @@
6
6
  <title>Title 01</title>
7
7
  </head>
8
8
  <body>
9
- <h1 id="id1">H1 number 1</h1>
10
- <h1 id="id2">H1 number 2</h1>
11
- <h1 id="id3">H1 number 3</h1>
12
- <h1 id="id4">H1 number 4</h1>
13
- <h1 id="id5">H1 number 5</h1>
9
+ <h1 id="id1">Header 1 number 1</h1>
10
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
11
+ <h2 id="id2">Header 2 number 1</h2>
12
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
13
+ <h3 id="id3">Header 3 number 1</h3>
14
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
15
+ <h4 id="id4">Header 4 number 1</h4>
16
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
17
+ <h4 id="id5">Header 4 number 2</h4>
18
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
19
+ <h3 id="id6">Header 3 number 2</h3>
20
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
21
+ <h4 id="id7">Header 4 number 3</h4>
22
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
23
+ <h4 id="id8">Header 4 number 4</h4>
24
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
25
+ <h2 id="id9">Header 2 number 2</h2>
26
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
27
+ <h3 id="id10">Header 3 number 3</h3>
28
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
29
+ <h4 id="id11">Header 4 number 5</h4>
30
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
31
+ <h4 id="id12">Header 4 number 6</h4>
32
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
33
+ <h3 id="id13">Header 3 number 4</h3>
34
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
35
+ <h4 id="id14">Header 4 number 7</h4>
36
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
37
+ <h4 id="id15">Header 4 number 8</h4>
38
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
39
+ <h1 id="id16">Header 1 number 2</h1>
40
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
41
+ <h2 id="id17">Header 2 number 3</h2>
42
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
43
+ <h3 id="id18">Header 3 number 5</h3>
44
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
45
+ <h4 id="id19">Header 4 number 9</h4>
46
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
47
+ <h4 id="id20">Header 4 number 10</h4>
48
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
49
+ <h3 id="id21">Header 3 number 6</h3>
50
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
51
+ <h4 id="id22">Header 4 number 11</h4>
52
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
53
+ <h4 id="id23">Header 4 number 12</h4>
54
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
55
+ <h2 id="id24">Header 2 number 4</h2>
56
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
57
+ <h3 id="id25">Header 3 number 7</h3>
58
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
59
+ <h4 id="id26">Header 4 number 13</h4>
60
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
61
+ <h4 id="id27">Header 4 number 14</h4>
62
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
63
+ <h3 id="id28">Header 3 number 8</h3>
64
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
65
+ <h4 id="id29">Header 4 number 15</h4>
66
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
67
+ <h4 id="id30">Header 4 number 16</h4>
68
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
14
69
  </body>
15
70
  </html>
@@ -6,11 +6,33 @@
6
6
  <title>Title 02</title>
7
7
  </head>
8
8
  <body>
9
- <h1 id="id1">H1 number 1</h1>
10
- <h1 id="id2">H1 number 2</h1>
11
- <h1 id="id3">H1 number 3</h1>
12
- <h1 id="id4">H1 number 4</h1>
13
- <h1 id="id5">H1 number 5</h1>
9
+ <h1 id="id1">Header 1 number 1</h1>
10
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
11
+ <h2 id="id2">Header 2 number 1</h2>
12
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
13
+ <h3 id="id3">Header 3 number 1</h3>
14
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
15
+ <h3 id="id4">Header 3 number 2</h3>
16
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
17
+ <h2 id="id5">Header 2 number 2</h2>
18
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
19
+ <h3 id="id6">Header 3 number 3</h3>
20
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
21
+ <h3 id="id7">Header 3 number 4</h3>
22
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
23
+ <h1 id="id8">Header 1 number 2</h1>
24
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
25
+ <h2 id="id9">Header 2 number 3</h2>
26
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
27
+ <h3 id="id10">Header 3 number 5</h3>
28
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
29
+ <h3 id="id11">Header 3 number 6</h3>
30
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
31
+ <h2 id="id12">Header 2 number 4</h2>
32
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
33
+ <h3 id="id13">Header 3 number 7</h3>
34
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
35
+ <h3 id="id14">Header 3 number 8</h3>
36
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
14
37
  </body>
15
38
  </html>
16
-
@@ -5,10 +5,65 @@
5
5
  <title>Title 01</title>
6
6
  </head>
7
7
  <body>
8
- <h1 id="id1">H1 number 1</h1>
9
- <h1 id="id2">H1 number 2</h1>
10
- <h1 id="id3">H1 number 3</h1>
11
- <h1 id="id4">H1 number 4</h1>
12
- <h1 id="id5">H1 number 5</h1>
8
+ <h1 id="id1">Header 1 number 1</h1>
9
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
10
+ <h2 id="id2">Header 2 number 1</h2>
11
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
12
+ <h3 id="id3">Header 3 number 1</h3>
13
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
14
+ <h4 id="id4">Header 4 number 1</h4>
15
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
16
+ <h4 id="id5">Header 4 number 2</h4>
17
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
18
+ <h3 id="id6">Header 3 number 2</h3>
19
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
20
+ <h4 id="id7">Header 4 number 3</h4>
21
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
22
+ <h4 id="id8">Header 4 number 4</h4>
23
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
24
+ <h2 id="id9">Header 2 number 2</h2>
25
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
26
+ <h3 id="id10">Header 3 number 3</h3>
27
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
28
+ <h4 id="id11">Header 4 number 5</h4>
29
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
30
+ <h4 id="id12">Header 4 number 6</h4>
31
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
32
+ <h3 id="id13">Header 3 number 4</h3>
33
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
34
+ <h4 id="id14">Header 4 number 7</h4>
35
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
36
+ <h4 id="id15">Header 4 number 8</h4>
37
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
38
+ <h1 id="id16">Header 1 number 2</h1>
39
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
40
+ <h2 id="id17">Header 2 number 3</h2>
41
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
42
+ <h3 id="id18">Header 3 number 5</h3>
43
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
44
+ <h4 id="id19">Header 4 number 9</h4>
45
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
46
+ <h4 id="id20">Header 4 number 10</h4>
47
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
48
+ <h3 id="id21">Header 3 number 6</h3>
49
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
50
+ <h4 id="id22">Header 4 number 11</h4>
51
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
52
+ <h4 id="id23">Header 4 number 12</h4>
53
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
54
+ <h2 id="id24">Header 2 number 4</h2>
55
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
56
+ <h3 id="id25">Header 3 number 7</h3>
57
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
58
+ <h4 id="id26">Header 4 number 13</h4>
59
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
60
+ <h4 id="id27">Header 4 number 14</h4>
61
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
62
+ <h3 id="id28">Header 3 number 8</h3>
63
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
64
+ <h4 id="id29">Header 4 number 15</h4>
65
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
66
+ <h4 id="id30">Header 4 number 16</h4>
67
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
13
68
  </body>
14
69
  </html>
@@ -5,11 +5,33 @@
5
5
  <title>Title 02</title>
6
6
  </head>
7
7
  <body>
8
- <h1 id="id1">H1 number 1</h1>
9
- <h1 id="id2">H1 number 2</h1>
10
- <h1 id="id3">H1 number 3</h1>
11
- <h1 id="id4">H1 number 4</h1>
12
- <h1 id="id5">H1 number 5</h1>
8
+ <h1 id="id1">Header 1 number 1</h1>
9
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
10
+ <h2 id="id2">Header 2 number 1</h2>
11
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
12
+ <h3 id="id3">Header 3 number 1</h3>
13
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
14
+ <h3 id="id4">Header 3 number 2</h3>
15
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
16
+ <h2 id="id5">Header 2 number 2</h2>
17
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
18
+ <h3 id="id6">Header 3 number 3</h3>
19
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
20
+ <h3 id="id7">Header 3 number 4</h3>
21
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
22
+ <h1 id="id8">Header 1 number 2</h1>
23
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
24
+ <h2 id="id9">Header 2 number 3</h2>
25
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
26
+ <h3 id="id10">Header 3 number 5</h3>
27
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
28
+ <h3 id="id11">Header 3 number 6</h3>
29
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
30
+ <h2 id="id12">Header 2 number 4</h2>
31
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
32
+ <h3 id="id13">Header 3 number 7</h3>
33
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
34
+ <h3 id="id14">Header 3 number 8</h3>
35
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p>
13
36
  </body>
14
37
  </html>
15
-
@@ -64,21 +64,12 @@ module Ebookbinder
64
64
  xml.docTitle do
65
65
  xml.text! title
66
66
  end
67
+ i = 1
67
68
  xml.navMap do
68
- i = 0
69
69
  content_filenames.each do |fn|
70
70
  next unless Ebookbinder.mimetype_for_filename(fn) == 'application/xhtml+xml'
71
- Nokogiri.XML(File.read(fn)).search('h1').each do |e|
72
- if id = e.attribute('id')
73
- i +=1
74
- xml.navPoint id: format('id_%04d', i), playOrder: i do
75
- xml.navLabel do
76
- xml.text! e.text
77
- end
78
- xml.content src: href(fn, id)
79
- end
80
- end
81
- end
71
+ h_struct = create_header_struct(fn)
72
+ i = create_navpoints(fn, xml, h_struct, i)
82
73
  end
83
74
  end
84
75
  end
@@ -86,6 +77,21 @@ module Ebookbinder
86
77
  File.write(ncx_filename, builder.to_xml)
87
78
  end
88
79
 
80
+ def create_navpoints fn, xml, h_struct, i
81
+ h_struct.each do |entry|
82
+ e, children = entry
83
+ id = e.attribute('id')
84
+ xml.navPoint id: format('id_%04d', i), playOrder: i do
85
+ xml.navLabel do
86
+ xml.text! e.text
87
+ end
88
+ xml.content src: href(fn, id)
89
+ i = create_navpoints(fn, xml, children, i + 1)
90
+ end
91
+ end
92
+ i
93
+ end
94
+
89
95
  end
90
96
 
91
97
  Epub2.define_tasks do
@@ -64,13 +64,8 @@ module Ebookbinder
64
64
  xml.ol do
65
65
  content_filenames.each do |fn|
66
66
  next unless Ebookbinder.mimetype_for_filename(fn) == 'application/xhtml+xml'
67
- Nokogiri.XML(File.read(fn)).search('h1').each do |e|
68
- if id = e.attribute('id')
69
- xml.li do
70
- xml.a(e.text, href: href(fn, id))
71
- end
72
- end
73
- end
67
+ h_struct = create_header_struct(fn)
68
+ create_li_entries(fn, xml, h_struct)
74
69
  end
75
70
  end
76
71
  end
@@ -80,6 +75,21 @@ module Ebookbinder
80
75
  File.write(nav_filename, builder.to_xml)
81
76
  end
82
77
 
78
+ def create_li_entries fn, xml, h_struct
79
+ h_struct.each do |entry|
80
+ e, children = entry
81
+ id = e.attribute('id')
82
+ xml.li do
83
+ xml.a(e.text, href: href(fn, id))
84
+ unless children.empty?
85
+ xml.ol do
86
+ create_li_entries(fn, xml, children)
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
92
+
83
93
  end
84
94
 
85
95
  Epub3.define_tasks do
@@ -65,6 +65,38 @@ module Ebookbinder
65
65
  res
66
66
  end
67
67
 
68
+ private
69
+
70
+ def create_header_struct fn
71
+ res = []
72
+ last_h1 = last_h2 = last_h3 = last_h4 = last_h5 = last_h6 = nil
73
+ Nokogiri.XML(File.read(fn)).search('h1,h2,h3,h4,h5,h6').each do |e|
74
+ if id = e.attribute('id')
75
+ case e.name
76
+ when 'h1'
77
+ last_h1 = [e, []]
78
+ res << last_h1
79
+ when 'h2'
80
+ last_h2 = [e, []]
81
+ last_h1.last << last_h2
82
+ when 'h3'
83
+ last_h3 = [e, []]
84
+ last_h2.last << last_h3
85
+ when 'h4'
86
+ last_h4 = [e, []]
87
+ last_h3.last << last_h4
88
+ when 'h5'
89
+ last_h5 = [e, []]
90
+ last_h4.last << last_h5
91
+ when 'h6'
92
+ last_h6 = [e, []]
93
+ last_h5.last << last_h6
94
+ end
95
+ end
96
+ end
97
+ res
98
+ end
99
+
68
100
  end
69
101
 
70
102
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ebookbinder
4
4
 
5
- VERSION = '1.0.1'
5
+ VERSION = '1.2.0'
6
6
 
7
7
  end
data/lib/ebookbinder.rb CHANGED
@@ -13,11 +13,13 @@ module Ebookbinder
13
13
  jpe: image/jpeg
14
14
  jpeg: image/jpeg
15
15
  jpg: image/jpeg
16
+ otf: font/opentype
16
17
  png: image/png
17
18
  svg: image/svg+xml
18
19
  svgz: image/svg+xml
19
20
  ttc: application/x-font-ttf
20
21
  ttf: application/x-font-ttf
22
+ txt: text/plain
21
23
  xhtml: application/xhtml+xml
22
24
  END
23
25
 
metadata CHANGED
@@ -1,69 +1,79 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebookbinder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
+ original_platform: ''
6
7
  authors:
7
8
  - Jan Friedrich
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 2024-03-05 00:00:00.000000000 Z
11
+ date: 2024-11-14 00:00:00.000000000 Z
11
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
12
27
  - !ruby/object:Gem::Dependency
13
28
  name: rake
14
29
  requirement: !ruby/object:Gem::Requirement
15
30
  requirements:
16
31
  - - ">="
17
32
  - !ruby/object:Gem::Version
18
- version: '0'
33
+ version: '13.0'
19
34
  type: :development
20
35
  prerelease: false
21
36
  version_requirements: !ruby/object:Gem::Requirement
22
37
  requirements:
23
38
  - - ">="
24
39
  - !ruby/object:Gem::Version
25
- version: '0'
40
+ version: '13.0'
26
41
  - !ruby/object:Gem::Dependency
27
42
  name: rim
28
43
  requirement: !ruby/object:Gem::Requirement
29
44
  requirements:
30
45
  - - "~>"
31
46
  - !ruby/object:Gem::Version
32
- version: '2.17'
47
+ version: '3.0'
33
48
  type: :development
34
49
  prerelease: false
35
50
  version_requirements: !ruby/object:Gem::Requirement
36
51
  requirements:
37
52
  - - "~>"
38
53
  - !ruby/object:Gem::Version
39
- version: '2.17'
54
+ version: '3.0'
40
55
  - !ruby/object:Gem::Dependency
41
56
  name: regtest
42
57
  requirement: !ruby/object:Gem::Requirement
43
58
  requirements:
44
59
  - - "~>"
45
60
  - !ruby/object:Gem::Version
46
- version: '2'
61
+ version: '2.4'
47
62
  type: :development
48
63
  prerelease: false
49
64
  version_requirements: !ruby/object:Gem::Requirement
50
65
  requirements:
51
66
  - - "~>"
52
67
  - !ruby/object:Gem::Version
53
- version: '2'
54
- description: ''
68
+ version: '2.4'
55
69
  email: janfri26@gmail.com
56
70
  executables: []
57
71
  extensions: []
58
72
  extra_rdoc_files: []
59
73
  files:
60
- - "./.aspell.pws"
61
74
  - Changelog
62
- - Gemfile
63
75
  - LICENSE
64
76
  - README.md
65
- - Rakefile
66
- - ebookbinder.gemspec
67
77
  - examples/epub2/Rakefile
68
78
  - examples/epub2/src/01.xhtml
69
79
  - examples/epub2/src/02.xhtml
@@ -76,19 +86,17 @@ files:
76
86
  - lib/ebookbinder/epub3.rb
77
87
  - lib/ebookbinder/epub_base.rb
78
88
  - lib/ebookbinder/version.rb
79
- - regtest/epub2.rb
80
- - regtest/epub2.yml
81
- - regtest/epub3.rb
82
- - regtest/epub3.yml
83
89
  homepage: https://github.com/janfri/ebookbinder
84
90
  licenses:
85
91
  - MIT
86
92
  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
- \ "
93
+ post_install_message: |
94
+ +-----------------------------------------------------------------------+
95
+ | To run rake check you need epubcheck installed and accessible via |
96
+ | `epubcheck` on the command line. |
97
+ | |
98
+ | https://www.w3.org/publishing/epubcheck/ |
99
+ +-----------------------------------------------------------------------+
92
100
  rdoc_options: []
93
101
  require_paths:
94
102
  - lib
@@ -96,7 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
104
  requirements:
97
105
  - - ">="
98
106
  - !ruby/object:Gem::Version
99
- version: '0'
107
+ version: '2.3'
100
108
  required_rubygems_version: !ruby/object:Gem::Requirement
101
109
  requirements:
102
110
  - - ">="
data/.aspell.pws DELETED
@@ -1,10 +0,0 @@
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/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- # encoding: utf-8
2
-
3
- gem 'nokogiri'
data/Rakefile DELETED
@@ -1,28 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rim/tire'
4
- require 'rim/regtest'
5
- require 'rim/version'
6
- require_relative 'lib/ebookbinder/version'
7
-
8
- Rim.setup do |r|
9
- r.name = 'ebookbinder'
10
- r.authors = 'Jan Friedrich'
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.'
15
- r.version = Ebookbinder::VERSION
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/**/*.*')
25
- end
26
-
27
- task :test => :regtest
28
- task :default => :regtest
data/ebookbinder.gemspec DELETED
@@ -1,30 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # stub: ebookbinder 1.0.1 ruby lib
3
- #
4
- # This file is automatically generated by rim.
5
- # PLEASE DO NOT EDIT IT DIRECTLY!
6
- # Change the values in Rim.setup in Rakefile instead.
7
-
8
- Gem::Specification.new do |s|
9
- s.name = "ebookbinder"
10
- s.version = "1.0.1"
11
-
12
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
- s.require_paths = ["lib"]
14
- s.authors = ["Jan Friedrich"]
15
- s.date = "2024-03-05"
16
- s.description = ""
17
- s.email = "janfri26@gmail.com"
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 "
22
- s.rubygems_version = "3.6.0.dev"
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."
24
-
25
- s.specification_version = 4
26
-
27
- s.add_development_dependency(%q<rake>, [">= 0"])
28
- s.add_development_dependency(%q<rim>, ["~> 2.17"])
29
- s.add_development_dependency(%q<regtest>, ["~> 2"])
30
- end
data/regtest/epub2.rb DELETED
@@ -1,17 +0,0 @@
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 DELETED
@@ -1,77 +0,0 @@
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 DELETED
@@ -1,17 +0,0 @@
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 DELETED
@@ -1,45 +0,0 @@
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>