class Asciidoctor::ListItem - asciidoctor-1.5.6.2 Documentation

# class Asciidoctor::ListItem

Public: Methods for managing items for AsciiDoc olists, ulist, and dlists.

### Attributes

marker[RW]

Public: Get/Set the String used to mark this list item

### Public Class Methods

new(parent, text = nil) click to toggle source

Public: Initialize an Asciidoctor::ListItem object.

parent - The parent list block for this list item text - the String text (default nil)

Calls superclass method Asciidoctor::AbstractBlock.new

    # File lib/asciidoctor/list.rb, line 55
    def initialize parent, text = nil
      super parent, :list_item
      @text = text
      @level = parent.level
      @subs = NORMAL_SUBS.dup
    end

### Public Instance Methods

compound?() click to toggle source

Check whether this list item has compound content (nested blocks aside from a single outline list). Primarily relevant for outline lists.

Return true if the list item contains blocks other than a single outline list. Otherwise, return false.

    # File lib/asciidoctor/list.rb, line 97
    def compound?
      !simple?
    end

fold_first(continuation_connects_first_block = false, content_adjacent = false) click to toggle source

Public: Fold the first paragraph block into the text

Here are the rules for when a folding occurs:

Given: this list item has at least one block When: the first block is a paragraph that's not connected by a list continuation Or: the first block is an indented paragraph that's adjacent (wrapped line) Or: the first block is an indented paragraph that's not connected by a list continuation Then: then drop the first block and fold it's content (buffer) into the list text

Returns nothing

    # File lib/asciidoctor/list.rb, line 112
    def fold_first(continuation_connects_first_block = false, content_adjacent = false)
      if (first_block = @blocks[0]) && Block === first_block &&
          ((first_block.context == :paragraph && !continuation_connects_first_block) ||
          ((content_adjacent || !continuation_connects_first_block) && first_block.context == :literal &&
              first_block.option?('listparagraph')))

        block = blocks.shift
        block.lines.unshift @text unless @text.nil_or_empty?
        @text = block.source
      end
      nil
    end

simple?() click to toggle source

Check whether this list item has simple content (no nested blocks aside from a single outline list). Primarily relevant for outline lists.

Return true if the list item contains no blocks or it contains a single outline list. Otherwise, return false.

    # File lib/asciidoctor/list.rb, line 89
    def simple?
      @blocks.empty? || (@blocks.size == 1 && List === (blk = @blocks[0]) && blk.outline?)
    end

text() click to toggle source

Public: Get the String text of this ListItem with substitutions applied.

By default, normal substitutions are applied to the text. The substitutions can be modified by altering the subs property of this object.

Returns the converted String text for this ListItem

    # File lib/asciidoctor/list.rb, line 74
    def text
      apply_subs @text, @subs
    end

text=(val) click to toggle source

Public: Set the String text.

Returns the new String text assigned to this ListItem

    # File lib/asciidoctor/list.rb, line 81
    def text= val
      @text = val
    end

text?() click to toggle source

Public: A convenience method that checks whether the text of this list item is not blank (i.e., not nil or empty string).

    # File lib/asciidoctor/list.rb, line 64
    def text?
      !@text.nil_or_empty?
    end

to_s() click to toggle source

    # File lib/asciidoctor/list.rb, line 125
    def to_s
      %Q(#<#{self.class}@#{object_id} {list_context: #{parent.context.inspect}, text: #{@text.inspect}, blocks: #{(@blocks || []).size}}>)
    end