class Node
attr_accessor :rawtext, :children, :filename, :parent, :name
def initialize(name = "", filename = nil, parent = nil)
@name = name
if filename == nil or filename == ''
if parent == nil
@filename = 'index' # This is the root element
else
@filename = name.scan(/./).select {|c| (?A..?Z) === c[0] or (?a..?z) === c[0]}.join
end
else
@filename = filename.scan(/./).select {|c| (?A..?Z) === c[0] or (?a..?z) === c[0]}.join
end
unless parent == nil or parent.parent == nil
@filename = parent.filename + '-' + @filename
end
@parent = parent
@children = []
@rawtext = ""
end
def html
RedCloth.new(@rawtext).to_html
end
def append(str)
@rawtext << str.to_s
end
def append_child(node)
@children << node
end
end
|