summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2023-04-13 23:50:40 -0600
committerDan Allen <dan.j.allen@gmail.com>2023-04-14 01:40:59 -0600
commit6d8c51061423c0ece23187f4d09b5767bbba32cd (patch)
treecf9b28c1a3e3e615070b0a49c535a1a0f166e176 /lib
parent171da29bf808e740251f6c108557c2073f47d3f2 (diff)
add support for nowrap and nobreak roles on formatted text
Diffstat (limited to 'lib')
-rw-r--r--lib/asciidoctor/pdf/ext/prawn/formatted_text/line_wrap.rb2
-rw-r--r--lib/asciidoctor/pdf/formatted_text/transform.rb1
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/asciidoctor/pdf/ext/prawn/formatted_text/line_wrap.rb b/lib/asciidoctor/pdf/ext/prawn/formatted_text/line_wrap.rb
index b7125746..28013917 100644
--- a/lib/asciidoctor/pdf/ext/prawn/formatted_text/line_wrap.rb
+++ b/lib/asciidoctor/pdf/ext/prawn/formatted_text/line_wrap.rb
@@ -14,7 +14,7 @@ Prawn::Text::Formatted::LineWrap.prepend (Module.new do
else
joined_string_width = 0
end
- last_idx = (segments = tokenize fragment).length - 1
+ last_idx = (segments = @arranger.current_format_state[:single_token] ? [fragment] : (tokenize fragment)).length - 1
segments.each_with_index do |segment, idx|
if segment == (zero_width_space segment.encoding)
segment_width = effective_segment_width = 0
diff --git a/lib/asciidoctor/pdf/formatted_text/transform.rb b/lib/asciidoctor/pdf/formatted_text/transform.rb
index a614fd0e..223c1335 100644
--- a/lib/asciidoctor/pdf/formatted_text/transform.rb
+++ b/lib/asciidoctor/pdf/formatted_text/transform.rb
@@ -362,6 +362,7 @@ module Asciidoctor
end
# TODO: we could limit to select tags, but doesn't seem to really affect performance
attrs[:class].split.each do |class_name|
+ fragment[:single_token] = true if class_name == 'nobreak' || class_name == 'nowrap'
fragment[:wj] = true if class_name == 'wj'
fragment[:preserve_space] = true if class_name == 'pre-wrap'
next unless @theme_settings.key? class_name