asciidoctor-pdf 2.3.8 → 2.3.9

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: 5a1b77004c38f0efc5a577f0ab5222f42b66398f70d5347e333d906616734aeb
4
- data.tar.gz: 42ebc021e2b392e1b159ed0c473250b67d7e6c1f308dd7af282c61d6464538b5
3
+ metadata.gz: f8c0a40b569d9103d197f7063f91e12ef370e22fe2b591cc628097ae78ac8dc2
4
+ data.tar.gz: af5b79bc2a7ce74f9bddd471bc6751c56ef0119b7c417a7bd5473d2f13638fbd
5
5
  SHA512:
6
- metadata.gz: '03019b94151e1fdfc90e3d4cfc2cd25b115f936300e4982a0b62903108ed54429dbaee451b0b6d86a6b10d51a7db6da87acd0f34065773c2438f32fd0fd1e899'
7
- data.tar.gz: f91b9506aa4242e9c253e0cbb5bce32666253a4af775891ab1378b5c3d48d390af45683f159fa9ce6cb26865da8f5f46320558e5929b57a41194958c83736eda
6
+ metadata.gz: c2b0972adc236388028ecbd29af29f0bbd18889a2bd7229b2508769831db3882fd6123b500be4a11ce317c569e35fb5531dfafb1ffa7cd0a892199df50dcd33f
7
+ data.tar.gz: 25c2b33f2c6427ad23fbbb0215b8c9a0f0bc84312d6751b13a5ee664db9e7b44e2c4bbaab419d0e89e266644cb0714175c18b2d80da69396dfc32459a54f9ff4
data/CHANGELOG.adoc CHANGED
@@ -5,6 +5,17 @@
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 {url-repo}/commits/main[commit history] on GitHub.
7
7
 
8
+ == 2.3.9 (2023-06-28) - @mojavelinux
9
+
10
+ Bug Fixes::
11
+
12
+ * correctly align block image in raster format in column when align is right or center and page columns are enabled (#2433)
13
+ * honor table caption end placement (`table-caption-end` theme key) when `unbreakable` (or `breakable`) option is set on table (#2434)
14
+
15
+ === Details
16
+
17
+ {url-repo}/releases/tag/v2.3.9[git tag] | {url-repo}/compare/v2.3.8\...v2.3.9[full diff]
18
+
8
19
  == 2.3.8 (2023-06-25) - @mojavelinux
9
20
 
10
21
  Improvements::
@@ -14,7 +25,7 @@ Improvements::
14
25
 
15
26
  Bug Fixes::
16
27
 
17
- * remove null character enclosed in XML tag when santizing text; fixes invisible text in outline when heading contains index term (#2430)
28
+ * remove null character enclosed in XML tag when sanitizing text; fixes invisible text in outline when heading contains index term (#2430)
18
29
  * alias `File.exists?` to `File.exist?` when loading RGhost optimizer to patch incompatibility when using Ruby 3.2
19
30
 
20
31
  Build / Infrastructure::
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
- v2.3.8, 2023-06-25
3
+ v2.3.9, 2023-06-28
4
4
  // Settings:
5
5
  :experimental:
6
6
  :idprefix:
@@ -1856,9 +1856,16 @@ module Asciidoctor
1856
1856
  update_colors if graphic_state.color_space.empty?
1857
1857
  ink_caption node, category: :image, end: :top, block_align: alignment, block_width: rendered_w, max_width: caption_max_width if caption_end == :top && node.title?
1858
1858
  image_y = y
1859
- image_cursor = cursor
1859
+ left = bounds.left
1860
+ # NOTE: prawn does not compute :at for alignment correctly in column box, so resort to our own logic
1861
+ case alignment
1862
+ when :center
1863
+ left += (available_w - rendered_w) * 0.5
1864
+ when :right
1865
+ left += available_w - rendered_w
1866
+ end
1860
1867
  # NOTE: specify both width and height to avoid recalculation
1861
- embed_image image_obj, image_info, width: rendered_w, height: rendered_h, position: alignment
1868
+ embed_image image_obj, image_info, at: [left, (image_cursor = cursor)], height: rendered_h, width: rendered_w
1862
1869
  draw_image_border image_cursor, rendered_w, rendered_h, alignment unless pinned || (node.role? && (node.has_role? 'noborder'))
1863
1870
  if (link = node.attr 'link')
1864
1871
  add_link_to_image link, { width: rendered_w, height: rendered_h }, position: alignment, y: image_y
@@ -1974,6 +1981,7 @@ module Asciidoctor
1974
1981
  end
1975
1982
 
1976
1983
  def convert_table node
1984
+ caption_end = (theme = @theme).table_caption_end&.to_sym || :top
1977
1985
  if !at_page_top? && ((unbreakable = node.option? 'unbreakable') || ((node.option? 'breakable') && (node.id || node.title?)))
1978
1986
  # NOTE: we use the current node as the parent so we can navigate back into the document model
1979
1987
  (table_container = Block.new node, :open) << (table_dup = node.dup)
@@ -1985,7 +1993,7 @@ module Asciidoctor
1985
1993
  end
1986
1994
  table_container.style = 'table-container'
1987
1995
  table_container.id, table_dup.id = table_dup.id, nil
1988
- if table_dup.title?
1996
+ if caption_end == :top && table_dup.title?
1989
1997
  table_container.title = ''
1990
1998
  table_container.instance_variable_set :@converted_title, table_dup.captioned_title
1991
1999
  table_dup.title = nil
@@ -1997,7 +2005,6 @@ module Asciidoctor
1997
2005
  num_rows = node.attr 'rowcount'
1998
2006
  num_cols = node.columns.size
1999
2007
  table_header_size = false
2000
- theme = @theme
2001
2008
  prev_font_scale, @font_scale = @font_scale, 1 if node.document.nested?
2002
2009
 
2003
2010
  tbl_bg_color = resolve_theme_color :table_background_color
@@ -2235,7 +2242,6 @@ module Asciidoctor
2235
2242
  alignment = theme.table_align&.to_sym || :left
2236
2243
  end
2237
2244
 
2238
- caption_end = theme.table_caption_end&.to_sym || :top
2239
2245
  caption_max_width = theme.table_caption_max_width || 'fit-content'
2240
2246
 
2241
2247
  table_settings = {
@@ -2267,7 +2273,7 @@ module Asciidoctor
2267
2273
  @column_widths = column_widths unless column_widths.empty?
2268
2274
  # NOTE: call width to capture resolved table width
2269
2275
  table_width = width
2270
- @pdf.ink_table_caption node, alignment, table_width, caption_max_width if node.title? && caption_end == :top
2276
+ @pdf.ink_table_caption node, alignment, table_width, caption_max_width if caption_end == :top && node.title?
2271
2277
  # NOTE: align using padding instead of bounding_box as prawn-table does
2272
2278
  # using a bounding_box across pages mangles the margin box of subsequent pages
2273
2279
  if alignment != :left && table_width != (this_bounds = @pdf.bounds).width
@@ -2340,7 +2346,7 @@ module Asciidoctor
2340
2346
  bounds.subtract_left_padding left_padding
2341
2347
  bounds.subtract_right_padding right_padding if right_padding
2342
2348
  end
2343
- ink_table_caption node, alignment, table_width, caption_max_width, caption_end if node.title? && caption_end == :bottom
2349
+ ink_table_caption node, alignment, table_width, caption_max_width, caption_end if caption_end == :bottom && node.title?
2344
2350
  theme_margin :block, :bottom, (next_enclosed_block node)
2345
2351
  rescue ::Prawn::Errors::CannotFit
2346
2352
  log :error, (message_with_context 'cannot fit contents of table cell into specified column width', source_location: node.source_location)
@@ -9,6 +9,6 @@ File.singleton_class.prepend (Module.new do
9
9
 
10
10
  # NOTE: JRuby < 9.4 doesn't implement this method; JRuby 9.4 implements it incorrectly
11
11
  def absolute_path? path
12
- (::Pathname.new path).absolute? && !(%r/\A[[:alpha:]][[:alnum:]\-+]*:\/\/\S/.match? path)
12
+ (Pathname.new path).absolute? && !(%r/\A[[:alpha:]][[:alnum:]\-+]*:\/\/\S/.match? path)
13
13
  end
14
14
  end) if RUBY_ENGINE == 'jruby'
@@ -4,7 +4,7 @@ Prawn::Font::AFM.instance_variable_set :@hide_m17n_warning, true
4
4
 
5
5
  require 'prawn/icon'
6
6
 
7
- Prawn::Icon::Compatibility.prepend (::Module.new { def warning *_args; end })
7
+ Prawn::Icon::Compatibility.prepend (Module.new { def warning *_args; end })
8
8
 
9
9
  module Asciidoctor
10
10
  module Prawn
@@ -3,7 +3,7 @@
3
3
  Prawn::SVG::Elements::Image.prepend (Module.new do
4
4
  def image_dimensions data
5
5
  unless (handler = find_image_handler data)
6
- raise ::Prawn::SVG::Elements::Base::SkipElementError, 'Unsupported image type supplied to image tag'
6
+ raise Prawn::SVG::Elements::Base::SkipElementError, 'Unsupported image type supplied to image tag'
7
7
  end
8
8
  image = handler.new data
9
9
  [image.width.to_f, image.height.to_f]
@@ -22,7 +22,7 @@ module Asciidoctor
22
22
  LoneVariableRx = /^\$([a-z0-9_-]+)$/
23
23
  HexColorEntryRx = /^(?<k> *\p{Graph}+): +(?!null$)(?<q>["']?)(?<h>#)?(?<v>\h\h\h\h{0,3})\k<q> *(?:#.*)?$/
24
24
  MultiplyDivideOpRx = %r((-?\d+(?:\.\d+)?) +([*/^]) +(-?\d+(?:\.\d+)?))
25
- AddSubtractOpRx = /(-?\d+(?:\.\d+)?) +([+\-]) +(-?\d+(?:\.\d+)?)/
25
+ AddSubtractOpRx = /(-?\d+(?:\.\d+)?) +([+-]) +(-?\d+(?:\.\d+)?)/
26
26
  PrecisionFuncRx = /^(round|floor|ceil)\(/
27
27
  RoleAlignKeyRx = /(?:_text)?_align$/
28
28
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Asciidoctor
4
4
  module PDF
5
- VERSION = '2.3.8'
5
+ VERSION = '2.3.9'
6
6
  end
7
7
  end
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: 2.3.8
4
+ version: 2.3.9
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: 2023-06-25 00:00:00.000000000 Z
12
+ date: 2023-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: asciidoctor