class Node

squi.rb

 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