@using Umbraco.Core.Models @using Umbraco.Web @inherits Umbraco.Web.Macros.PartialViewMacroPage @* This snippet makes a list of links of all visible pages of the site, as nested unordered HTML lists. How it works: - It uses a custom Razor helper called Traverse() to select and display the markup and links. *@ @{ var selection = Model.Content.Site(); }
@* Render the sitemap by passing the root node to the traverse helper, below *@ @Traverse(selection)
@* Helper method to traverse through all descendants *@ @helper Traverse(IPublishedContent node) { @* Update the level to reflect how deep you want the sitemap to go *@ const int maxLevelForSitemap = 4; @* Select visible children *@ var selection = node.Children.Where(x => x.IsVisible() && x.Level <= maxLevelForSitemap).ToArray(); @* If any items are returned, render a list *@ if (selection.Length > 0) { } }