ebookbinder 1.0.1 → 1.1.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: 0d4719c670f07d1d20edcae6ddac4966c78d2e50c3862bb17555cca3b5360249
4
+ data.tar.gz: ddb2c5a78e52b65620f1543ee50785da8a9bb438ed77c17c85a68c9fbcd29d79
5
5
  SHA512:
6
- metadata.gz: a2c97daecd67e300a6c1f2b8082d0c12b66d6c135c234eb498b126970a2b40701fdbc09b411f780cb43cfd5b0805a681b71383d9c7e4cbae0b95afed88330b0c
7
- data.tar.gz: 2859f0a4ad5488ca9c7c7637ea3443059e685993ff1a4768a57cad714385720c8218789cf235c29f9256afeec0c72f619bb4d27a8e7eae909cd1efb728346309
6
+ metadata.gz: ad1085e2dd71f26e54fbda3850e087574e4c6d637546135e77b8957584d68041b8802553099573badd63691f4a495db394e6d92c647e609e1d6ea85c26b6e59c
7
+ data.tar.gz: f11dbdb0628a497756c1536eb1ba0299c54fda7f25a712e6dc8b5873a0b630fb3c1c5776c5311fca6f2f728a9674eac5c2226f6e324e62507b84e14a701a698e
data/Changelog CHANGED
@@ -1,5 +1,8 @@
1
+ 1.1.0
2
+ Generate hierarchical table of content from XHTML header elements.
3
+
1
4
  1.0.1
2
- Improve repository structure and add regtest.
5
+ Improve repository structure.
3
6
 
4
7
  1.0.0
5
8
  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.1.0'
6
6
 
7
7
  end
metadata CHANGED
@@ -1,13 +1,14 @@
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.1.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-11 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: rake
@@ -15,55 +16,50 @@ dependencies:
15
16
  requirements:
16
17
  - - ">="
17
18
  - !ruby/object:Gem::Version
18
- version: '0'
19
+ version: '13.0'
19
20
  type: :development
20
21
  prerelease: false
21
22
  version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
23
24
  - - ">="
24
25
  - !ruby/object:Gem::Version
25
- version: '0'
26
+ version: '13.0'
26
27
  - !ruby/object:Gem::Dependency
27
28
  name: rim
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: '2.17'
33
+ version: '3.0'
33
34
  type: :development
34
35
  prerelease: false
35
36
  version_requirements: !ruby/object:Gem::Requirement
36
37
  requirements:
37
38
  - - "~>"
38
39
  - !ruby/object:Gem::Version
39
- version: '2.17'
40
+ version: '3.0'
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: regtest
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: '2'
47
+ version: '2.4'
47
48
  type: :development
48
49
  prerelease: false
49
50
  version_requirements: !ruby/object:Gem::Requirement
50
51
  requirements:
51
52
  - - "~>"
52
53
  - !ruby/object:Gem::Version
53
- version: '2'
54
- description: ''
54
+ version: '2.4'
55
55
  email: janfri26@gmail.com
56
56
  executables: []
57
57
  extensions: []
58
58
  extra_rdoc_files: []
59
59
  files:
60
- - "./.aspell.pws"
61
60
  - Changelog
62
- - Gemfile
63
61
  - LICENSE
64
62
  - README.md
65
- - Rakefile
66
- - ebookbinder.gemspec
67
63
  - examples/epub2/Rakefile
68
64
  - examples/epub2/src/01.xhtml
69
65
  - examples/epub2/src/02.xhtml
@@ -76,19 +72,17 @@ files:
76
72
  - lib/ebookbinder/epub3.rb
77
73
  - lib/ebookbinder/epub_base.rb
78
74
  - lib/ebookbinder/version.rb
79
- - regtest/epub2.rb
80
- - regtest/epub2.yml
81
- - regtest/epub3.rb
82
- - regtest/epub3.yml
83
75
  homepage: https://github.com/janfri/ebookbinder
84
76
  licenses:
85
77
  - MIT
86
78
  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
- \ "
79
+ post_install_message: |
80
+ +-----------------------------------------------------------------------+
81
+ | To run rake check you need epubcheck installed and accessible via |
82
+ | `epubcheck` on the command line. |
83
+ | |
84
+ | https://www.w3.org/publishing/epubcheck/ |
85
+ +-----------------------------------------------------------------------+
92
86
  rdoc_options: []
93
87
  require_paths:
94
88
  - lib
@@ -96,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
90
  requirements:
97
91
  - - ">="
98
92
  - !ruby/object:Gem::Version
99
- version: '0'
93
+ version: '2.3'
100
94
  required_rubygems_version: !ruby/object:Gem::Requirement
101
95
  requirements:
102
96
  - - ">="
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>