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.
Public: Get/Set the String used to mark this list item
Public: Initialize an Asciidoctor::ListItem object.
parent - The parent list block for this list item text - the String text (default nil)
# 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
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
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 : %Q(#{@text}#{LF}#{@blocks.shift.source}) nil end
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
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
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
# File lib/asciidoctor/list.rb, line 110 def to_s %Q(#<#{self.class}@#{object_id} {list_context: #{parent.context.inspect}, text: #{@text.inspect}, blocks: #{(@blocks || []).size}}>) end