diff --git a/lib/rtf/node.rb b/lib/rtf/node.rb index 2b79242..41e8060 100755 --- a/lib/rtf/node.rb +++ b/lib/rtf/node.rb @@ -595,12 +595,14 @@ def initialize(parent, template, kind, level=1) super(parent, prefix, nil, true, false) end + attr_reader :kind + def level @level.level end def item - node = ListTextNode.new(parent, @level) + node = ListTextNode.new(self, @level) yield node self.store(node) end @@ -614,13 +616,19 @@ def list(kind=@kind) class ListTextNode < CommandNode def initialize(parent, level) - @level = level + @level = level + @parent = parent - prefix = "{\\listtext#{@level.marker.text_format}}" + number = siblings_count + 1 if parent.kind == :decimal + prefix = "{\\listtext#{@level.marker.text_format(number)}}" suffix = '\\' super(parent, prefix, suffix, false, false) end + + def siblings_count + parent.children.select {|n| n.kind_of?(self.class)}.size + end end # This class represents a table node within an RTF document. Table nodes are