Sha256: 08cc7b1e502bf9722c0899e72c88e62354adca3f283fe71dc1cc2e829f819a98

Contents?: true

Size: 1.03 KB

Versions: 21

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

class Asciidoctor::Document
  # promote preface block (i.e., preamble block with title in book doctype) to preface section
  # FIXME: this should be handled by core
  def promote_preface_block
    if doctype == 'book' && (blk0 = blocks[0])&.context == :preamble && blk0.title? && !blk0.title.nil_or_empty? &&
        blk0.blocks[0]&.style != 'abstract' && (blk1 = blocks[1])&.context == :section
      preface = Asciidoctor::Section.new self, blk1.level, false, attributes: { 1 => 'preface', 'style' => 'preface' }
      preface.special = true
      preface.sectname = 'preface'
      preface.title = blk0.instance_variable_get :@title
      preface.id = preface.generate_id
      if (first_child = blk0.blocks[0])&.option? 'notitle'
        preface.set_option 'notitle'
        first_child.role = 'lead' if first_child.context == :paragraph && !first_child.role?
      end
      preface.blocks.replace (blk0.blocks.map do |b|
        b.parent = preface
        b
      end)
      blocks[0] = preface
    end
    nil
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
asciidoctor-pdf-2.1.6 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.1.5 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.1.4 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.1.3 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.1.2 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.1.1 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.1.0 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.8 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.7 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.6 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.5 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.4 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.3 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.2 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.1 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.0 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.0.rc.1 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.0.beta.2 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.0.beta.1 lib/asciidoctor/pdf/ext/asciidoctor/document.rb
asciidoctor-pdf-2.0.0.alpha.3 lib/asciidoctor/pdf/ext/asciidoctor/document.rb