diff options
| author | Dan Allen <dan.j.allen@gmail.com> | 2023-04-13 23:50:40 -0600 |
|---|---|---|
| committer | Dan Allen <dan.j.allen@gmail.com> | 2023-04-14 01:40:59 -0600 |
| commit | 6d8c51061423c0ece23187f4d09b5767bbba32cd (patch) | |
| tree | cf9b28c1a3e3e615070b0a49c535a1a0f166e176 /lib | |
| parent | 171da29bf808e740251f6c108557c2073f47d3f2 (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.rb | 2 | ||||
| -rw-r--r-- | lib/asciidoctor/pdf/formatted_text/transform.rb | 1 |
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 |
