diff --git a/WebApplication/Sitemap.aspx.cs b/WebApplication/Sitemap.aspx.cs
index 48d86d1..732aadd 100644
--- a/WebApplication/Sitemap.aspx.cs
+++ b/WebApplication/Sitemap.aspx.cs
@@ -18,6 +18,7 @@ namespace ScrewTurn.Wiki {
Response.ContentEncoding = System.Text.UTF8Encoding.UTF8;
string mainUrl = Settings.MainUrl;
+ string rootDefault = Settings.DefaultPage.ToLowerInvariant();
using(XmlWriter writer = XmlWriter.Create(Response.OutputStream)) {
writer.WriteStartDocument();
@@ -26,11 +27,13 @@ namespace ScrewTurn.Wiki {
writer.WriteAttributeString("schemaLocation", "xsi", "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/09/sitemap.xsd");
foreach(PageInfo page in Pages.GetPages(null)) {
- WritePage(mainUrl, page, writer);
+ WritePage(mainUrl, page, page.FullName.ToLowerInvariant() == rootDefault, writer);
}
foreach(NamespaceInfo nspace in Pages.GetNamespaces()) {
+ string nspaceDefault = nspace.DefaultPage.FullName.ToLowerInvariant();
+
foreach(PageInfo page in Pages.GetPages(nspace)) {
- WritePage(mainUrl, page, writer);
+ WritePage(mainUrl, page, page.FullName.ToLowerInvariant() == nspaceDefault, writer);
}
}
@@ -44,11 +47,12 @@ namespace ScrewTurn.Wiki {
///
/// The main wiki URL.
/// The page.
+ /// A value indicating whether the page is the default of its namespace.
/// The writer.
- private void WritePage(string mainUrl, PageInfo page, XmlWriter writer) {
+ private void WritePage(string mainUrl, PageInfo page, bool isDefault, XmlWriter writer) {
writer.WriteStartElement("url");
writer.WriteElementString("loc", mainUrl + Tools.UrlEncode(page.FullName) + Settings.PageExtension);
- writer.WriteElementString("priority", "0.5");
+ writer.WriteElementString("priority", isDefault ? "0.75" : "0.5");
writer.WriteElementString("changefreq", "daily");
writer.WriteEndElement();
}