Hey,

    I don't know if someone has noticed that the master overview of
the docs produced by monodocer (and loaded via the --edit command)
doesn't show at all. Also, the link at the home page for that content
is broken.

This patch fix those issues, although the master overview showed is
just a list of  namespaces (without summary or remmarks).

Any comments before submitting?

Mario.
Index: engine/provider.cs
===================================================================
--- engine/provider.cs  (revision 51172)
+++ engine/provider.cs  (working copy)
@@ -895,7 +895,9 @@
                foreach (string path in UncompiledHelpSources) {
                        EcmaUncompiledHelpSource hs = new 
EcmaUncompiledHelpSource(path);
                        root.help_sources.Add (hs);
-                       Node hsn = root.CreateNode(hs.Name, 
"extra-help-source-" + hs.Name);
+                       string epath = "extra-help-source-" + hs.Name;
+                       Node hsn = root.CreateNode (hs.Name, "root:/" + epath);
+                       root.name_to_hs [epath] = hs;
                        hsn.EnsureNodes ();
                        foreach (Node n in hs.Tree.Nodes){
                                hsn.AddNode (n);
Index: engine/ecma-provider.cs
===================================================================
--- engine/ecma-provider.cs     (revision 51172)
+++ engine/ecma-provider.cs     (working copy)
@@ -1005,7 +1005,7 @@
                return Htmlize(ecma_xml, null);
        }
        
-       static string Htmlize (IXPathNavigable ecma_xml, XsltArgumentList args)
+       public static string Htmlize (IXPathNavigable ecma_xml, 
XsltArgumentList args)
        {
                EnsureTransform ();
                
@@ -1842,7 +1842,32 @@
        public override string GetText (string url, out Node match_node) {
                if (url == "root:") {
                        match_node = null;
-                       return null;
+                       
+                       //load index.xml
+                       XmlDocument index = new XmlDocument ();
+                       index.Load (Path.Combine (basedir.FullName, 
"index.xml"));
+                       XmlNodeList nodes = index.SelectNodes 
("/Overview/Types/Namespace");
+                       
+                       //recreate masteroverview.xml
+                       XmlDocument summary = new XmlDocument ();
+                       XmlElement elements = summary.CreateElement 
("elements");
+                       foreach (XmlNode node in nodes) {
+                               XmlElement ns = summary.CreateElement 
("namespace");
+                               XmlAttribute attr = summary.CreateAttribute 
("ns");
+                               attr.Value = node.Attributes["Name"].Value;
+                               ns.Attributes.Append (attr);
+                               elements.AppendChild (ns);
+                       }
+                       summary.AppendChild (elements);
+
+                       XmlReader reader = new XmlTextReader (new StringReader 
(summary.OuterXml));
+
+                       //transform the recently created masteroverview.xml
+                       XsltArgumentList args = new XsltArgumentList();
+                       args.AddExtensionObject("monodoc://extensions", 
ExtObject);
+                       args.AddParam("show", "", "masteroverview");
+                       string s = EcmaHelpSource.Htmlize(new XPathDocument 
(reader), args);
+                       return BuildHtml (css_ecma_code, s); 
                }
                return base.GetText(url, out match_node);
        }
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to