Class Asciidoctor::Section
In: lib/asciidoctor/section.rb
Parent: AbstractBlock

Public: Methods for managing sections of AsciiDoc content in a document. The section responds as an Array of content blocks by delegating block-related methods to its @blocks Array.

Examples

  section = Asciidoctor::Section.new
  section.title = 'Section 1'
  section.id = 'sect1'

  section.size
  => 0

  section.id
  => "sect1"

  section << new_block
  section.size
  => 1

Methods

<<   generate_id   new   sectnum   to_s  

External Aliases

title -> name
  Public: The name of this section, an alias of the section title

Attributes

index  [RW]  Public: Get/Set the 0-based index order of this section within the parent block
number  [RW]  Public: Get/Set the number of this section within the parent block Only relevant if the attribute numbered is true
numbered  [RW]  Public: Get the state of the numbered attribute at this section (need to preserve for creating TOC)
sectname  [RW]  Public: Get/Set the section name of this section
special  [RW]  Public: Get/Set the flag to indicate whether this is a special section or a child of one

Public Class methods

Public: Initialize an Asciidoctor::Section object.

parent - The parent Asciidoc Object.

Public Instance methods

Public: Append a content block to this block‘s list of blocks.

If the child block is a Section, assign an index to it.

block - The child Block to append to this parent Block

Returns The parent Block

Public: Generate a String id for this section.

The generated id is prefixed with value of the ‘idprefix’ attribute, which is an underscore by default.

Section id synthesis can be disabled by undefining the ‘sectids’ attribute.

If the generated id is already in use in the document, a count is appended until a unique id is found.

Examples

  section = Section.new(parent)
  section.title = "Foo"
  section.generate_id
  => "_foo"

  another_section = Section.new(parent)
  another_section.title = "Foo"
  another_section.generate_id
  => "_foo_1"

  yet_another_section = Section.new(parent)
  yet_another_section.title = "Ben & Jerry"
  yet_another_section.generate_id
  => "_ben_jerry"

Public: Get the section number for the current Section

The section number is a unique, dot separated String where each entry represents one level of nesting and the value of each entry is the 1-based outline number of the Section amongst its numbered sibling Sections

delimiter - the delimiter to separate the number for each level append - the String to append at the end of the section number

            or Boolean to indicate the delimiter should not be
            appended to the final level
            (default: nil)

Examples

  sect1 = Section.new(document)
  sect1.level = 1
  sect1_1 = Section.new(sect1)
  sect1_1.level = 2
  sect1_2 = Section.new(sect1)
  sect1_2.level = 2
  sect1 << sect1_1
  sect1 << sect1_2
  sect1_1_1 = Section.new(sect1_1)
  sect1_1_1.level = 3
  sect1_1 << sect1_1_1

  sect1.sectnum
  # => 1.

  sect1_1.sectnum
  # => 1.1.

  sect1_2.sectnum
  # => 1.2.

  sect1_1_1.sectnum
  # => 1.1.1.

  sect1_1_1.sectnum(',', false)
  # => 1,1,1

Returns the section number as a String

[Validate]