Module Amrita::ElementProcessorCommon
|
|
generate_element(tag, attrs=nil, &block)
|
# File lib/amrita/node.rb, line 903
def generate_element(tag, attrs=nil, &block)
case attrs
when nil
Element.new(tag, &block)
when Hash
a = attrs.collect do |k, v|
k = k.intern
k = :__id__ if k == escaped_id or (amrita_id and k == :id)
k = :id if k == amrita_id
Attr.new(k, v)
end
Element.new(tag, a, &block)
else
raise "invalid parameter #{attrs}"
end
end
# File lib/amrita/node.rb, line 920
def generate_text(text)
ret = []
text.scan(/([^@]*)(@\{(\w+)\})?/) do |str, dummy, w|
ret << TextElement.new(str) if str.size > 0
ret << generate_element(:span, :id=>w) if w
end
Node::to_node(ret)
end
taginfo_of_element(element)
|
# File lib/amrita/node.rb, line 972
def taginfo_of_element(element)
if tagdict
tagdict.get_tag_info2(element.tag_symbol)
else
nil
end
end
# File lib/amrita/node.rb, line 1015
def format_special(s)
]<#{s.tag} #{s.body} #{s.etag}>]
end
# File lib/amrita/node.rb, line 1019
def format_node(n)
case n
when Null
""
when NodeArray
ret = n.children.collect do |n|
format_node(n)
end.join("")
ret
when Element
if n.no_child?
format_single_tag(n)
else
format_start_tag(n).to_s +
format_node(n.body).to_s +
format_end_tag(n).to_s
end
when AmritaPragma
if delete_pragma
""
else
format_special(n)
end
when SpecialElement
format_special(n)
else
n.to_s.amrita_sanitize
end
end