bookify 2.5.0 → 2.9.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/lib/bookify/node/base.rb +8 -4
- data/lib/bookify/node/h1.rb +2 -6
- data/lib/bookify/node/h2.rb +4 -3
- data/lib/bookify/node/h3.rb +7 -4
- data/lib/bookify/node/h4.rb +7 -4
- data/lib/bookify/node/image.rb +10 -2
- data/lib/bookify/node/table.rb +9 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7cb3fcf20cf4c0d52a7db2745e1c060fc112aff2e7602cc2dce29c9323d1e97
|
4
|
+
data.tar.gz: 4b853cfb351be5194482a3b3dd9ce8301c320bd947b85e3c0b7296e56fc302dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86cb9d453def89f8471704d3d540a297a034ddcf9d23fbae9ed290cd30c6a29ed9c40333e25ba6332ae0f1b80c3208f33777b53f5c4dd9fdc86ee497fdf647cb
|
7
|
+
data.tar.gz: '08455d449f42a2f3df014b8e411f5024b4f93528a4ddd44192db5634273520d2f315697524a0ec3d6e748368995ab794a2a657b549aab877cbfcaea4586d7e51'
|
data/lib/bookify/node/base.rb
CHANGED
@@ -3,10 +3,10 @@ module Bookify::Node
|
|
3
3
|
attr_accessor :node, :pdf
|
4
4
|
|
5
5
|
FONTS = {
|
6
|
-
h1: ["Book Antiqua", size:
|
7
|
-
h2: ["Book Antiqua", size:
|
8
|
-
h3: ["Book Antiqua", size:
|
9
|
-
h4: ["Book Antiqua", size:
|
6
|
+
h1: ["Book Antiqua", size: 18, style: :bold],
|
7
|
+
h2: ["Book Antiqua", size: 13, style: :bold],
|
8
|
+
h3: ["Book Antiqua", size: 12, style: :bold],
|
9
|
+
h4: ["Book Antiqua", size: 11, style: :bold],
|
10
10
|
primary: ["Book Antiqua", size: 10]
|
11
11
|
}
|
12
12
|
|
@@ -42,5 +42,9 @@ module Bookify::Node
|
|
42
42
|
def break_if_close_to_bottom(tolerance = 125)
|
43
43
|
bounds.move_past_bottom if pdf.y <= tolerance
|
44
44
|
end
|
45
|
+
|
46
|
+
def page_top
|
47
|
+
pdf.bounds.parent.height + 50
|
48
|
+
end
|
45
49
|
end
|
46
50
|
end
|
data/lib/bookify/node/h1.rb
CHANGED
@@ -4,7 +4,7 @@ module Bookify::Node
|
|
4
4
|
class H1 < Base
|
5
5
|
def render
|
6
6
|
break_if_close_to_bottom(250)
|
7
|
-
move_down
|
7
|
+
move_down 30 unless pdf.y == page_top
|
8
8
|
|
9
9
|
html = decode_html(node.inner_html.strip)
|
10
10
|
dest = dest_xyz(0, pdf.y, nil, pdf.page)
|
@@ -16,11 +16,7 @@ module Bookify::Node
|
|
16
16
|
text html, align: :center
|
17
17
|
end
|
18
18
|
|
19
|
-
move_down
|
20
|
-
end
|
21
|
-
|
22
|
-
def page_top
|
23
|
-
pdf.bounds.parent.height + 50
|
19
|
+
move_down 30
|
24
20
|
end
|
25
21
|
end
|
26
22
|
end
|
data/lib/bookify/node/h2.rb
CHANGED
@@ -3,7 +3,7 @@ require_relative "base"
|
|
3
3
|
module Bookify::Node
|
4
4
|
class H2 < Base
|
5
5
|
def render
|
6
|
-
move_down
|
6
|
+
move_down 15 unless pdf.y == page_top
|
7
7
|
break_if_close_to_bottom
|
8
8
|
|
9
9
|
html = decode_html(node.inner_html.strip)
|
@@ -14,8 +14,9 @@ module Bookify::Node
|
|
14
14
|
add_dest(html, dest)
|
15
15
|
add_dest("#{parent_h1}/#{html}", dest) if parent_h1
|
16
16
|
|
17
|
-
font :h2
|
18
|
-
|
17
|
+
font :h2 do
|
18
|
+
text html
|
19
|
+
end
|
19
20
|
|
20
21
|
move_down 1
|
21
22
|
stroke { horizontal_rule }
|
data/lib/bookify/node/h3.rb
CHANGED
@@ -3,11 +3,14 @@ require_relative "base"
|
|
3
3
|
module Bookify::Node
|
4
4
|
class H3 < Base
|
5
5
|
def render
|
6
|
-
|
7
|
-
move_down 5
|
6
|
+
move_down 10 unless pdf.y == page_top
|
8
7
|
break_if_close_to_bottom
|
9
|
-
|
10
|
-
|
8
|
+
|
9
|
+
font :h3 do
|
10
|
+
text decode_html(node.inner_html.strip)
|
11
|
+
end
|
12
|
+
|
13
|
+
move_down 5
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
data/lib/bookify/node/h4.rb
CHANGED
@@ -3,11 +3,14 @@ require_relative "base"
|
|
3
3
|
module Bookify::Node
|
4
4
|
class H4 < Base
|
5
5
|
def render
|
6
|
-
move_down
|
6
|
+
move_down 10 unless pdf.y == page_top
|
7
7
|
break_if_close_to_bottom
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
|
9
|
+
font :h4 do
|
10
|
+
text decode_html(node.inner_html.strip)
|
11
|
+
end
|
12
|
+
|
13
|
+
move_down 5
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
data/lib/bookify/node/image.rb
CHANGED
@@ -1,15 +1,23 @@
|
|
1
1
|
require_relative "base"
|
2
|
+
require "open-uri"
|
2
3
|
|
3
4
|
module Bookify::Node
|
4
5
|
class Image < Base
|
5
6
|
def render
|
6
7
|
options = {
|
7
8
|
position: html_classes.include?("center") ? :center : :left,
|
8
|
-
fit: [bounds.width, -1]
|
9
|
+
fit: [bounds.width, -1]
|
9
10
|
}
|
10
11
|
|
11
|
-
image node
|
12
|
+
image image_from_node(node), options
|
12
13
|
move_down 15
|
13
14
|
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def image_from_node(node)
|
19
|
+
src = node.attr(:src)
|
20
|
+
/^https?\:\/\//.match?(src) ? URI.open(src) : src
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
data/lib/bookify/node/table.rb
CHANGED
@@ -5,19 +5,20 @@ module Bookify::Node
|
|
5
5
|
def render
|
6
6
|
font :primary
|
7
7
|
|
8
|
-
|
8
|
+
options = {
|
9
|
+
header: true,
|
10
|
+
width: bounds.width,
|
11
|
+
row_colors: ["FFFFFF", "EEEEEE"]
|
12
|
+
}
|
13
|
+
|
14
|
+
table table_data, options do
|
9
15
|
cells.borders = []
|
10
16
|
|
11
|
-
row(0).borders = [:
|
12
|
-
row(0).border_top_width = 0.5
|
17
|
+
row(0).borders = [:bottom]
|
13
18
|
row(0).border_bottom_width = 0.5
|
14
19
|
row(0).font_style = :bold
|
15
20
|
|
16
|
-
|
17
|
-
row(-1).border_bottom_width = 0.5
|
18
|
-
|
19
|
-
cells.columns(0).padding = [5, 5, 5, 0]
|
20
|
-
cells.columns(-1).padding = [5, 0, 5, 5]
|
21
|
+
cells.padding = 5
|
21
22
|
end
|
22
23
|
|
23
24
|
move_down 15
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bookify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joey Schoblaska
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|