| Class | Tags::SitemapTag |
| In: |
lib/webgen/plugins/tags/sitemap.rb
|
| Parent: | DefaultTag |
Generates a sitemap. The sitemap contains the hierarchy of all pages on the web site.
# File lib/webgen/plugins/tags/sitemap.rb, line 44
44: def process_tag( tag, chain )
45: root = Node.root( chain.last )
46: output_node( root, chain.last )
47: end
# File lib/webgen/plugins/tags/sitemap.rb, line 53
53: def output_node( node, src_node )
54: nodes = node.select do |child|
55: child.is_directory? || (child.kind_of?( FileHandlers::PageHandler::PageNode ) && child['lang'] == src_node['lang'])
56: end
57: return '' if nodes.empty?
58:
59: out = "<#{param( 'levelTag' )}>"
60: temp = ''
61: nodes.sort.each do |child|
62: next if !child.is_directory? &&
63: ((param( 'honorInMenu' ) && !child['inMenu']) ||
64: (!node['indexFile'].nil? && node['indexFile'].node_info[:pagename] == child.node_info[:pagename] && !node.parent.nil?))
65:
66: subout = output_node( child, src_node )
67: link = child.link_from( src_node, :context => { :caller => self.class.plugin_name } ) if !child.is_directory? || subout != ''
68:
69: temp += "<#{param( 'itemTag' )}>#{link}" if !child.is_directory? || subout != ''
70: temp += subout if child.is_directory?
71: temp += "</#{param( 'itemTag' )}>" if !child.is_directory? || subout != ''
72: end
73:
74: out += temp
75: out += "</#{param( 'levelTag' )}>"
76:
77: (temp == '' ? temp : out)
78: end