asciidoctor-pdf 1.6.0 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +10 -0
- data/README.adoc +3 -3
- data/docs/theming-guide.adoc +2 -2
- data/lib/asciidoctor/pdf/converter.rb +11 -6
- data/lib/asciidoctor/pdf/ext/prawn/extensions.rb +26 -0
- data/lib/asciidoctor/pdf/ext/prawn/formatted_text/arranger.rb +15 -0
- data/lib/asciidoctor/pdf/ext/prawn.rb +1 -0
- data/lib/asciidoctor/pdf/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38535fd62633525b00cea5277158ac23dbbd1bf515ee577ff867d7a498149b19
|
4
|
+
data.tar.gz: 24b2f3f50bb62f71416ce783fdd173e7574680ca445e4cd724f265086b2e8978
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb5e3a7117b597b3cc2f31ee013adbbf2415d6fa36893b5375e6a2aabffcdff456c72ecce0800a1cff43a637259c1c94321338fc626bb936c38841ce87909015
|
7
|
+
data.tar.gz: 7a18ab5e3d91cd6c9e1a99d2bd6885beaf329a249144e82a37fbfecbd784aae3758760c9695a82ef44304c951892d76113aad6737c11f720f888a552f00e18ab
|
data/CHANGELOG.adoc
CHANGED
@@ -5,6 +5,16 @@
|
|
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/v1.6.x[commit history] on GitHub.
|
7
7
|
|
8
|
+
== 1.6.1 (2021-09-04) - @mojavelinux
|
9
|
+
|
10
|
+
Enhancements::
|
11
|
+
|
12
|
+
* align footnotes block to the bottom of the page it is placed on (#1833)
|
13
|
+
|
14
|
+
Bug Fixes::
|
15
|
+
|
16
|
+
* patch Prawn to preserve leading null character when running on Ruby 3; preserves inline anchors when text is split by page (#1963)
|
17
|
+
|
8
18
|
== 1.6.0 (2021-05-10) - @mojavelinux
|
9
19
|
|
10
20
|
Enhancements::
|
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.6.
|
3
|
+
v1.6.1, 2021-09-04
|
4
4
|
// Settings:
|
5
5
|
:experimental:
|
6
6
|
:idprefix:
|
@@ -24,7 +24,7 @@ endif::[]
|
|
24
24
|
:project-handle: asciidoctor-pdf
|
25
25
|
// Variables:
|
26
26
|
:release-line: 1.6.x
|
27
|
-
:release-version: 1.6.
|
27
|
+
:release-version: 1.6.1
|
28
28
|
// URIs:
|
29
29
|
:url-asciidoctor: http://asciidoctor.org
|
30
30
|
:url-gem: http://rubygems.org/gems/asciidoctor-pdf
|
@@ -134,7 +134,7 @@ If you want to <<Enable Stream Compression,optimize the pdf>> using rghost or he
|
|
134
134
|
|
135
135
|
or the hexapdf gem:
|
136
136
|
|
137
|
-
$ gem install
|
137
|
+
$ gem install hexapdf
|
138
138
|
|
139
139
|
Similarly, if you want to use the hyphen option you will need to install the `text-hyphen` gem:
|
140
140
|
|
data/docs/theming-guide.adoc
CHANGED
@@ -5409,12 +5409,12 @@ You may need to scale the glyph so it fits properly in the art box.
|
|
5409
5409
|
IMPORTANT: If you're copying a non-visible character, be sure to set the width to 0 using menu:Metrics[Set Width...], enter 0 into *Set Width To*, then click btn:[OK].
|
5410
5410
|
|
5411
5411
|
When you're done, save the font with the old-style kern table enabled.
|
5412
|
-
To do so, select menu:File[Generate Fonts...], click btn:[Options],
|
5412
|
+
To do so, select menu:File[Generate Fonts...], select *TrueType*, click btn:[Options], make sure _only_ the following options are checked (equivalent to the flags 0x90 + 0x08):
|
5413
5413
|
|
5414
5414
|
* [x] OpenType
|
5415
5415
|
** [x] Old style 'kern'
|
5416
5416
|
|
5417
|
-
Then click btn:[Generate] to generate and save the font.
|
5417
|
+
Then click btn:[OK], then uncheck *Validate Before Saving*, and finally click btn:[Generate] to generate and save the font.
|
5418
5418
|
|
5419
5419
|
Your font file is now ready to be used with Asciidoctor PDF.
|
5420
5420
|
|
@@ -607,13 +607,18 @@ module Asciidoctor
|
|
607
607
|
def layout_footnotes node
|
608
608
|
return if (fns = (doc = node.document).footnotes - @footnotes).empty?
|
609
609
|
theme_margin :footnotes, :top
|
610
|
-
|
611
|
-
(
|
612
|
-
|
613
|
-
|
614
|
-
|
610
|
+
with_dry_run do |box_height = nil|
|
611
|
+
if box_height && (delta = cursor - box_height) > 0
|
612
|
+
move_down delta
|
613
|
+
end
|
614
|
+
theme_font :footnotes do
|
615
|
+
(title = doc.attr 'footnotes-title') && (layout_caption title, category: :footnotes)
|
616
|
+
item_spacing = @theme.footnotes_item_spacing
|
617
|
+
fns.each do |fn|
|
618
|
+
layout_prose %(<a id="_footnotedef_#{index = fn.index}">#{DummyText}</a>[<a anchor="_footnoteref_#{index}">#{index}</a>] #{fn.text}), margin_bottom: item_spacing, hyphenate: true
|
619
|
+
end
|
620
|
+
@footnotes += fns unless scratch?
|
615
621
|
end
|
616
|
-
@footnotes += fns
|
617
622
|
end
|
618
623
|
nil
|
619
624
|
end
|
@@ -76,6 +76,27 @@ module Asciidoctor
|
|
76
76
|
reference_bounds.height
|
77
77
|
end
|
78
78
|
|
79
|
+
# workaround for https://github.com/prawnpdf/prawn/issues/1121
|
80
|
+
def generate_margin_box
|
81
|
+
page_w, page_h = (page = state.page).dimensions.slice 2, 2
|
82
|
+
page_m = page.margins
|
83
|
+
prev_margin_box, @margin_box = @margin_box, (::Prawn::Document::BoundingBox.new self, nil, [page_m[:left], page_h - page_m[:top]], width: page_w - page_m[:left] - page_m[:right], height: page_h - page_m[:top] - page_m[:bottom])
|
84
|
+
|
85
|
+
# update bounding box if not flowing from the previous page
|
86
|
+
unless @bounding_box&.parent
|
87
|
+
prev_margin_box = @bounding_box
|
88
|
+
@bounding_box = @margin_box
|
89
|
+
end
|
90
|
+
|
91
|
+
# maintains indentation settings across page breaks
|
92
|
+
if prev_margin_box
|
93
|
+
@margin_box.add_left_padding prev_margin_box.total_left_padding
|
94
|
+
@margin_box.add_right_padding prev_margin_box.total_right_padding
|
95
|
+
end
|
96
|
+
|
97
|
+
nil
|
98
|
+
end
|
99
|
+
|
79
100
|
# Set the margins for the current page.
|
80
101
|
#
|
81
102
|
def set_page_margin margin
|
@@ -882,6 +903,11 @@ module Asciidoctor
|
|
882
903
|
[(whole_pages * full_page_height + partial_page_height), whole_pages, partial_page_height]
|
883
904
|
end
|
884
905
|
|
906
|
+
def with_dry_run &block
|
907
|
+
total_height, = dry_run(&block)
|
908
|
+
instance_exec total_height, &block
|
909
|
+
end
|
910
|
+
|
885
911
|
# Attempt to keep the objects generated in the block on the same page
|
886
912
|
#
|
887
913
|
# TODO: short-circuit nested usage
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Prawn::Text::Formatted::Arranger.prepend (Module.new do
|
4
|
+
def initialize *_args
|
5
|
+
super
|
6
|
+
@dummy_text = ?\u0000
|
7
|
+
end
|
8
|
+
|
9
|
+
def next_string
|
10
|
+
if (string = super) == @dummy_text
|
11
|
+
def string.lstrip!; end
|
12
|
+
end
|
13
|
+
string
|
14
|
+
end
|
15
|
+
end)
|
@@ -4,6 +4,7 @@
|
|
4
4
|
require_relative 'prawn/font_metric_cache'
|
5
5
|
require_relative 'prawn/font/afm'
|
6
6
|
require_relative 'prawn/images'
|
7
|
+
require_relative 'prawn/formatted_text/arranger'
|
7
8
|
require_relative 'prawn/formatted_text/box'
|
8
9
|
require_relative 'prawn/formatted_text/fragment'
|
9
10
|
require_relative 'prawn/extensions'
|
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.6.
|
4
|
+
version: 1.6.1
|
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: 2021-
|
12
|
+
date: 2021-09-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: asciidoctor
|
@@ -298,6 +298,7 @@ files:
|
|
298
298
|
- lib/asciidoctor/pdf/ext/prawn/extensions.rb
|
299
299
|
- lib/asciidoctor/pdf/ext/prawn/font/afm.rb
|
300
300
|
- lib/asciidoctor/pdf/ext/prawn/font_metric_cache.rb
|
301
|
+
- lib/asciidoctor/pdf/ext/prawn/formatted_text/arranger.rb
|
301
302
|
- lib/asciidoctor/pdf/ext/prawn/formatted_text/box.rb
|
302
303
|
- lib/asciidoctor/pdf/ext/prawn/formatted_text/fragment.rb
|
303
304
|
- lib/asciidoctor/pdf/ext/prawn/images.rb
|
@@ -349,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
349
350
|
- !ruby/object:Gem::Version
|
350
351
|
version: '0'
|
351
352
|
requirements: []
|
352
|
-
rubygems_version: 3.2.
|
353
|
+
rubygems_version: 3.2.22
|
353
354
|
signing_key:
|
354
355
|
specification_version: 4
|
355
356
|
summary: Converts AsciiDoc documents to PDF using Asciidoctor and Prawn
|