class Asciidoctor::ListItem

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

In a description list (dlist), each item is a tuple that consists of a 2-item Array of ListItem terms and a ListItem description (i.e., [[term, term, …], desc]. If a description is not set, then the second entry in the tuple is nil.

Attributes

marker[RW]

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

text[W]

Public: Set the String text assigned to this ListItem

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 59
def initialize parent, text = nil
  super parent, :list_item
  @text = text
  @level = parent.level
  @subs = NORMAL_SUBS.drop 0
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 98
def compound?
  !simple?
end
fold_first() click to toggle source

Internal: Fold the adjacent paragraph block into the list item text

Returns nothing

# File lib/asciidoctor/list.rb, line 105
def fold_first
  @text = @text.nil_or_empty? ? @blocks.shift.source : %(#{@text}#{LF}#{@blocks.shift.source})
  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 90
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 78
def text
  # NOTE @text can be nil if dd node only has block content
  @text && (apply_subs @text, @subs)
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 68
def text?
  @text.nil_or_empty? ? false : true
end
to_s() click to toggle source
# File lib/asciidoctor/list.rb, line 110
def to_s
  %(#<#{self.class}@#{object_id} {list_context: #{parent.context.inspect}, text: #{@text.inspect}, blocks: #{(@blocks || []).size}}>)
end