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