diff options
| -rw-r--r-- | CHANGELOG.adoc | 1 | ||||
| -rw-r--r-- | data/themes/base-theme.yml | 4 | ||||
| -rw-r--r-- | spec/running_content_spec.rb | 42 |
3 files changed, 46 insertions, 1 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 5e143914..f6d899e3 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -17,6 +17,7 @@ Enhancements:: * add support for `smallcaps` text transform by replacing lowercase letters with small capital variants (#1192) * use `base-border-color` as default border color; control appearance of border using `border-width` value alone (#2134) * remove border colors in base theme so all border colors can be controlled using `base-border-color` when extending theme +* enable running footer when using base theme Bug Fixes:: diff --git a/data/themes/base-theme.yml b/data/themes/base-theme.yml index fdadb11b..90d7c040 100644 --- a/data/themes/base-theme.yml +++ b/data/themes/base-theme.yml @@ -42,7 +42,6 @@ heading_margin_top: 4 heading_margin_bottom: 12 heading_min_height_after: 20 title_page_text_align: center -title_page_line_height: 1.15 title_page_logo_top: 10% title_page_title_top: 40% title_page_title_font_size: 18 @@ -102,5 +101,8 @@ toc_indent: 15 toc_line_height: 1.4 footnotes_font_size: 9 footnotes_item_spacing: 3 +footer_border_width: 0.5 +footer_font_size: 10 +footer_height: 30 footer_recto_right_content: '{page-number}' footer_verso_left_content: '{page-number}' diff --git a/spec/running_content_spec.rb b/spec/running_content_spec.rb index e0502e8e..2aca9628 100644 --- a/spec/running_content_spec.rb +++ b/spec/running_content_spec.rb @@ -90,6 +90,48 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do end end + it 'should add running footer by default when using base theme' do + input = <<~'EOS' + = Document Title + :doctype: book + + first page + + <<< + + second page + + <<< + + third page + EOS + + pdf = to_pdf input, pdf_theme: { extends: 'base' }, enable_footer: true, analyze: true + expected_page_numbers = %w(1 2 3) + expected_x_positions = [553.72, 36.0] + + (expect pdf.pages).to have_size 4 + page_number_texts = pdf.find_text %r/^\d+$/ + (expect page_number_texts).to have_size expected_page_numbers.size + page_number_texts.each_with_index do |page_number_text, idx| + (expect page_number_text[:page_number]).to eql idx + 2 + (expect page_number_text[:x]).to eql expected_x_positions[idx.even? ? 0 : 1] + (expect page_number_text[:y]).to eql 14.606 + (expect page_number_text[:font_size]).to be 10 + end + + pdf_raw = to_pdf input, pdf_theme: { extends: 'base' }, enable_footer: true + p2_resources = (pdf_raw.page 2).page_object[:Resources] + (expect p2_resources).to have_key :XObject + p2_xobject = p2_resources[:XObject] + (expect p2_xobject).to have_key :Stamp1 + stamp_data = pdf_raw.objects[p2_xobject[:Stamp1]].data + stamp_gs = (pdf.extract_graphic_states stamp_data)[0] + ['0.0 0.0 0.0 SCN', '0.5 w', '36.0 30.0 m', '559.28 30.0 l'].each do |expected_line| + (expect stamp_gs).to include expected_line + end + end + it 'should use single column that spans width of page if columns value is empty' do pdf_theme = { footer_columns: '', |
