asciidoctor-pdf 1.5.2 → 1.5.3
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/CHANGELOG.adoc +9 -0
- data/README.adoc +2 -2
- data/lib/asciidoctor/pdf/converter.rb +2 -2
- data/lib/asciidoctor/pdf/ext/prawn/formatted_text/box.rb +28 -7
- data/lib/asciidoctor/pdf/formatted_text/inline_image_arranger.rb +1 -1
- data/lib/asciidoctor/pdf/text_transformer.rb +3 -1
- data/lib/asciidoctor/pdf/version.rb +1 -1
- 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: 71d676b5bc2fd2364a3e888aebe586cdb2d85ee259b23031409b5c919cd78ce3
|
4
|
+
data.tar.gz: 638470c38ac1fe4a7445c118c33c08768b6cfbee54f2435ba65158ee9423f9ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 756f331bf5b74742739977ef159aa138743629a0fc91159767bb70994d7b939238bef3df1b2b05b8c58ed0ee837cdcd4153b531d132cd0ad31dc9b8e39ffc2e5
|
7
|
+
data.tar.gz: 34b9adfc79269f7936cb941056cda2303ec7e8e49f5c53772b3c92723b4d03ecace31ad9a5912e737b5c8fd84e855420b8169bf9d35500079df995e1de64b85d
|
data/CHANGELOG.adoc
CHANGED
@@ -5,6 +5,15 @@
|
|
5
5
|
This document provides a high-level view of the changes to the {project-name} by release.
|
6
6
|
For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
|
7
7
|
|
8
|
+
== 1.5.3 (2020-02-28) - @mojavelinux
|
9
|
+
|
10
|
+
Bug Fixes::
|
11
|
+
|
12
|
+
* do not hyphen a hyphen when hyphenation is enabled (#1562)
|
13
|
+
* fix crash when applying text transform to heading cell in table body (#1575)
|
14
|
+
* honor font style when looking for glyph in font
|
15
|
+
* only suggest installing prawn-gmagick gem if not loaded (#1578)
|
16
|
+
|
8
17
|
== 1.5.2 (2020-02-21) - @mojavelinux
|
9
18
|
|
10
19
|
Bug Fixes::
|
data/README.adoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Asciidoctor PDF: A native PDF converter for AsciiDoc
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>
|
3
|
-
v1.5.
|
3
|
+
v1.5.3, 2020-02-28
|
4
4
|
// Settings:
|
5
5
|
:experimental:
|
6
6
|
:idprefix:
|
@@ -23,7 +23,7 @@ endif::[]
|
|
23
23
|
:project-name: Asciidoctor PDF
|
24
24
|
:project-handle: asciidoctor-pdf
|
25
25
|
// Variables:
|
26
|
-
:release-version: 1.5.
|
26
|
+
:release-version: 1.5.3
|
27
27
|
// URIs:
|
28
28
|
:url-asciidoctor: http://asciidoctor.org
|
29
29
|
:url-gem: http://rubygems.org/gems/asciidoctor-pdf
|
@@ -1527,7 +1527,7 @@ module Asciidoctor
|
|
1527
1527
|
layout_caption node, category: :image, side: :bottom, block_align: alignment, block_width: rendered_w, max_width: @theme.image_caption_max_width if node.title?
|
1528
1528
|
theme_margin :block, :bottom unless pinned
|
1529
1529
|
rescue
|
1530
|
-
on_image_error :exception, node, target, (opts.merge message: %(could not embed image: #{image_path}; #{$!.message}#{::Prawn::Errors::UnsupportedImageType === $! ? '; install prawn-gmagick gem to add support' : ''}))
|
1530
|
+
on_image_error :exception, node, target, (opts.merge message: %(could not embed image: #{image_path}; #{$!.message}#{::Prawn::Errors::UnsupportedImageType === $! && !(defined? ::GMagick::Image) ? '; install prawn-gmagick gem to add support' : ''}))
|
1531
1531
|
end
|
1532
1532
|
end
|
1533
1533
|
|
@@ -2040,7 +2040,7 @@ module Asciidoctor
|
|
2040
2040
|
end
|
2041
2041
|
unless cell_data.key? :content
|
2042
2042
|
cell_text = cell.text.strip
|
2043
|
-
cell_text = transform_text cell_text if cell_transform
|
2043
|
+
cell_text = transform_text cell_text, cell_transform if cell_transform
|
2044
2044
|
cell_text = hyphenate_text cell_text, @hyphenator if defined? @hyphenator
|
2045
2045
|
cell_text = cell_text.gsub CjkLineBreakRx, ZeroWidthSpace if @cjk_line_breaks
|
2046
2046
|
if cell_text.include? LF
|
@@ -17,9 +17,32 @@ Prawn::Text::Formatted::Box.prepend (Module.new do
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
(
|
22
|
-
if
|
20
|
+
def analyze_glyphs_for_fallback_font_support fragment_hash
|
21
|
+
fragment_font = fragment_hash[:font] || (original_font = @document.font.family)
|
22
|
+
if (fragment_font_styles = fragment_hash[:styles])
|
23
|
+
if fragment_font_styles.include? :bold
|
24
|
+
fragment_font_opts = { style: (fragment_font_styles.include? :italic) ? :bold_italic : :bold }
|
25
|
+
elsif fragment_font_styles.include? :italic
|
26
|
+
fragment_font_opts = { style: :italic }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
fallback_fonts = @fallback_fonts.dup
|
30
|
+
font_glyph_pairs = []
|
31
|
+
@document.save_font do
|
32
|
+
fragment_hash[:text].each_char do |char|
|
33
|
+
font_glyph_pairs << [(find_font_for_this_glyph char, fragment_font, fragment_font_opts || {}, fallback_fonts.dup), char]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
# NOTE: don't add a :font to fragment if it wasn't there originally
|
37
|
+
font_glyph_pairs.each {|pair| pair[0] = nil if pair[0] == original_font } if original_font
|
38
|
+
form_fragments_from_like_font_glyph_pairs font_glyph_pairs, fragment_hash
|
39
|
+
end
|
40
|
+
|
41
|
+
def find_font_for_this_glyph char, current_font, current_font_opts = {}, fallback_fonts_to_check = [], original_font = current_font
|
42
|
+
(doc = @document).font current_font, current_font_opts
|
43
|
+
if doc.font.glyph_present? char
|
44
|
+
current_font
|
45
|
+
elsif fallback_fonts_to_check.empty?
|
23
46
|
if logger.info? && !doc.scratch?
|
24
47
|
fonts_checked = @fallback_fonts.dup.unshift original_font
|
25
48
|
missing_chars = (doc.instance_variable_defined? :@missing_chars) ?
|
@@ -30,11 +53,9 @@ Prawn::Text::Formatted::Box.prepend (Module.new do
|
|
30
53
|
previous_fonts_checked << fonts_checked
|
31
54
|
end
|
32
55
|
end
|
33
|
-
|
34
|
-
elsif doc.font.glyph_present? char
|
35
|
-
current_font
|
56
|
+
original_font
|
36
57
|
else
|
37
|
-
find_font_for_this_glyph char, fallback_fonts_to_check.shift, fallback_fonts_to_check, original_font
|
58
|
+
find_font_for_this_glyph char, fallback_fonts_to_check.shift, current_font_opts, fallback_fonts_to_check, original_font
|
38
59
|
end
|
39
60
|
end
|
40
61
|
|
@@ -115,7 +115,7 @@ module Asciidoctor::PDF::FormattedText
|
|
115
115
|
fragment[:image_width] = fragment[:width] = image_w
|
116
116
|
fragment[:image_height] = image_h
|
117
117
|
rescue
|
118
|
-
logger.warn %(could not embed image: #{image_path}; #{$!.message}#{::Prawn::Errors::UnsupportedImageType === $! ? '; install prawn-gmagick gem to add support' : ''}) unless scratch
|
118
|
+
logger.warn %(could not embed image: #{image_path}; #{$!.message}#{::Prawn::Errors::UnsupportedImageType === $! && !(defined? ::GMagick::Image) ? '; install prawn-gmagick gem to add support' : ''}) unless scratch
|
119
119
|
drop = true # delegate to cleanup logic in ensure block
|
120
120
|
ensure
|
121
121
|
# NOTE skip rendering image in scratch document or if image can't be loaded
|
@@ -17,7 +17,9 @@ module Asciidoctor
|
|
17
17
|
PCDATAFilterRx = /(&#?[a-z\d]+;|<[^>]+>)|([^&<]+)/
|
18
18
|
TagFilterRx = /(<[^>]+>)|([^<]+)/
|
19
19
|
WordRx = /\S+/
|
20
|
+
Hyphen = '-'
|
20
21
|
SoftHyphen = ?\u00ad
|
22
|
+
HyphenatedHyphen = '-' + SoftHyphen
|
21
23
|
|
22
24
|
def capitalize_words_pcdata string
|
23
25
|
if XMLMarkupRx.match? string
|
@@ -40,7 +42,7 @@ module Asciidoctor
|
|
40
42
|
end
|
41
43
|
|
42
44
|
def hyphenate_words string, hyphenator
|
43
|
-
string.gsub(WordRx) { hyphenator.visualize $&, SoftHyphen }
|
45
|
+
string.gsub(WordRx) { (hyphenator.visualize $&, SoftHyphen).gsub HyphenatedHyphen, Hyphen }
|
44
46
|
end
|
45
47
|
|
46
48
|
def lowercase_pcdata string
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-pdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-02-
|
12
|
+
date: 2020-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: asciidoctor
|