bookify 2.5.0 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|