[CMake] Re: Re: Re: Re: Hyperlinked indexed reference?

Fernando Cacciola fernando_cacciola at hotmail.com
Mon Oct 22 18:51:35 EDT 2007


Hi Bill,

> Just create a patch and send it to me.
>
OK.
Here's a patch for cmDocumentationFormatterHTML.cxx

It adds, at the beginning of each section, a list with hyperlinks to each 
entry in it.

Unfortunately, adding a similar list to the whole document is more difficult 
given the current documentation arquitecture, so it will take me some more 
(free) time to di it, but this is a good start.
At least within each section you can easily see all entries 
(options,commands,properties,modules) at once, and jump directly to the one 
you are interested in.



--- cmDocumentationFormatterHTML - Copy.cxx 2007-10-22 
13:48:39.000000000 -0300
+++ cmDocumentationFormatterHTML.cxx 2007-10-22 19:33:45.794000000 -0300
@@ -97,6 +97,20 @@

   const std::vector<cmDocumentationEntry> &entries =
     section.GetEntries();
+
+  os << "<ul>\n";
+  for(std::vector<cmDocumentationEntry>::const_iterator op = 
entries.begin();
+      op != entries.end(); ++ op )
+    {
+    if(op->Name.size())
+      {
+          os << "    <li><a href=\"#command_"<< op->Name.c_str() << 
"\"><b><code>";
+          this->PrintHTMLEscapes(os, op->Name.c_str());
+          os << "</code></b></a></li>";
+      }
+    }
+  os << "</ul>\n" ;
+
   for(std::vector<cmDocumentationEntry>::const_iterator op = 
entries.begin();
       op != entries.end();)
     {
@@ -108,9 +122,9 @@
         os << "  <li>\n";
         if(op->Name.size())
           {
-          os << "    <b><code>";
+          os << "    <a name=\"command_"<< op->Name.c_str() << 
"\"><b><code>";
           this->PrintHTMLEscapes(os, op->Name.c_str());
-          os << "</code></b>: ";
+          os << "</code></b></a>: ";
           }
         this->PrintHTMLEscapes(os, op->Brief.c_str());
         if(op->Full.size())


I compiled and tested it locally and it works AFAICT.

Best


-- 
Fernando Cacciola
SciSoft
http://fcacciola.50webs.com




More information about the CMake mailing list