[monodoc] Parse and display mastersummary.xml on root:/ ECMA urls
authorJeremie Laval <jeremie.laval@gmail.com>
Tue, 12 Mar 2013 13:42:40 +0000 (13:42 +0000)
committerJeremie Laval <jeremie.laval@gmail.com>
Tue, 12 Mar 2013 13:42:40 +0000 (13:42 +0000)
mcs/class/monodoc/Monodoc/RootTree.cs
mcs/class/monodoc/Monodoc/generators/html/Ecma2Html.cs
mcs/class/monodoc/Monodoc/providers/ecma-provider.cs

index 031b1d72742afbec510ba787637e3e858a67780a..f679740da30dab1bde87e159e88e37fe8a77311f 100644 (file)
@@ -382,8 +382,10 @@ namespace Monodoc
                        internalId = null;
                        context = null;
 
-                       if (url.StartsWith ("root:/", StringComparison.OrdinalIgnoreCase))
-                               return this.GetHelpSourceAndIdFromName (url.Substring ("root:/".Length), out internalId, out node);
+                       if (url.StartsWith (RootNamespace, StringComparison.OrdinalIgnoreCase)) {
+                               context = new Dictionary<string, string> { {"specialpage", "root"} };
+                               return this.GetHelpSourceAndIdFromName (url.Substring (RootNamespace.Length), out internalId, out node);
+                       }
 
                        HelpSource helpSource = hintSource;
                        if (helpSource == null || string.IsNullOrEmpty (internalId = helpSource.GetInternalIdForUrl (url, out node, out context))) {
index 85a9511511f7c9556276a3c79322cdd52ac80bc3..1dcc72af1d4e8affb6415774f232c9415cce59dd 100644 (file)
@@ -49,10 +49,16 @@ namespace Monodoc.Generators.Html
                {
                        var args = new XsltArgumentList ();
                        args.AddExtensionObject("monodoc:///extensions", ExtObject);
+                       string specialPage;
+                       if (extraArgs.TryGetValue ("specialpage", out specialPage) && specialPage == "root") {
+                               extraArgs.Remove ("specialpage");
+                               extraArgs["show"] = "masteroverview";
+                       }
+
                        foreach (var kvp in extraArgs)
                                args.AddParam (kvp.Key, string.Empty, kvp.Value);
 
-                       return Htmlize(ecma_xml, args);
+                       return Htmlize (ecma_xml, args);
                }
 
                public string Htmlize (XmlReader ecma_xml, XsltArgumentList args)
index 2ba55098769f7f21d96808f7752f163b44db5f7b..d136fbfe5e4ee3c604e3085e03f246e03d91d44c 100644 (file)
@@ -192,7 +192,10 @@ namespace Monodoc.Providers
                public override Stream GetHelpStream (string id)
                {
                        var idParts = id.Split ('?');
-                       return base.GetHelpStream (idParts[0]);
+                       var name = idParts[0];
+                       if (name == "root:")
+                               name = "mastersummary.xml";
+                       return base.GetHelpStream (name);
                }
 
                public override Stream GetCachedHelpStream (string id)