diff options
| author | Dan Allen <dan.j.allen@gmail.com> | 2022-10-29 23:13:13 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-29 23:13:13 -0600 |
| commit | 22b98c054c940d10f5eef8db03169ac0fa5823b7 (patch) | |
| tree | 3357fd9de83b4f712f1bbf0d6bf9dfe762be2fe9 /lib | |
| parent | 90fb17543fa8f2df2defa3ae9383b4389bb5b5fb (diff) | |
resolves #2362 allow revision content to be customized by theme (PR #2366)
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/asciidoctor/pdf/converter.rb | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/lib/asciidoctor/pdf/converter.rb b/lib/asciidoctor/pdf/converter.rb index caf80896..fb583f54 100644 --- a/lib/asciidoctor/pdf/converter.rb +++ b/lib/asciidoctor/pdf/converter.rb @@ -593,7 +593,6 @@ module Asciidoctor theme.kbd_separator_content ||= %(+#{ZeroWidthSpace}) theme.menu_caret_content ||= %(#{NoBreakSpace}\u203a ) theme.title_page_authors_delimiter ||= ', ' - theme.title_page_revision_delimiter ||= ', ' theme.toc_indent ||= 0 theme.toc_hanging_indent ||= 0 if ::Array === (quotes = theme.quotes) @@ -3795,18 +3794,35 @@ module Asciidoctor end move_down @theme.title_page_authors_margin_bottom || 0 end - unless @theme.title_page_revision_display == 'none' || (revision_info = [(doc.attr? 'revnumber') ? %(#{doc.attr 'version-label'} #{doc.attr 'revnumber'}) : nil, (doc.attr 'revdate')].compact).empty? - move_down @theme.title_page_revision_margin_top || 0 - revision_text = revision_info.join @theme.title_page_revision_delimiter - if (revremark = doc.attr 'revremark') - revision_text = %(#{revision_text}: #{revremark}) + if @theme.title_page_revision_display != 'none' + if (revision_content = @theme.title_page_revision_content) + revision_content = apply_subs_discretely doc, revision_content, drop_lines_with_unresolved_attributes: true, imagesdir: @themesdir + else + delimiters = [', ', ': '] + if (delimiter_overrides = @theme.title_page_revision_delimiter) + delimiter_overrides = [delimiter_overrides] unless Array === delimiter_overrides + delimiters[0..delimiter_overrides.size - 1] = delimiter_overrides + end + revision_content = (doc.attr? 'revnumber') ? [([(doc.attr 'version-label'), (doc.attr 'revnumber')].compact.join ' ')] : [] + if doc.attr? 'revdate' + revision_content << delimiters[0] unless revision_content.empty? + revision_content << (doc.attr 'revdate') + end + if doc.attr? 'revremark' + revision_content << delimiters[1] unless revision_content.empty? + revision_content << (doc.attr 'revremark') + end + revision_content = revision_content.join end - indent (@theme.title_page_revision_margin_left || 0), (@theme.title_page_revision_margin_right || 0) do - theme_font :title_page_revision do - ink_prose revision_text, align: title_text_align, margin: 0, normalize: false + unless revision_content.empty? + move_down @theme.title_page_revision_margin_top || 0 + indent (@theme.title_page_revision_margin_left || 0), (@theme.title_page_revision_margin_right || 0) do + theme_font :title_page_revision do + ink_prose revision_content, align: title_text_align, margin: 0, normalize: false + end end + move_down @theme.title_page_revision_margin_bottom || 0 end - move_down @theme.title_page_revision_margin_bottom || 0 end end end |
