ENH: add master index into html full help

This commit is contained in:
Bill Hoffman 2008-03-05 11:05:22 -05:00
parent 68bcb056eb
commit 7173f2db0e
4 changed files with 24 additions and 1 deletions

View File

@ -846,6 +846,9 @@ void cmDocumentation::Print(Form f, std::ostream& os)
//----------------------------------------------------------------------------
void cmDocumentation::Print(std::ostream& os)
{
// if the formatter supports it, print a master index for
// all sections
this->CurrentFormatter->PrintIndex(os, this->PrintSections);
for(unsigned int i=0; i < this->PrintSections.size(); ++i)
{
std::string name = this->PrintSections[i]->

View File

@ -59,6 +59,9 @@ public:
const char* name) = 0;
virtual void PrintPreformatted(std::ostream& os, const char* text) = 0;
virtual void PrintParagraph(std::ostream& os, const char* text) = 0;
virtual void PrintIndex(std::ostream& ,
std::vector<const cmDocumentationSection *>&)
{}
};
#endif

View File

@ -206,3 +206,18 @@ void cmDocumentationFormatterHTML::PrintHTMLEscapes(std::ostream& os,
}
}
}
void cmDocumentationFormatterHTML
::PrintIndex(std::ostream& os,
std::vector<const cmDocumentationSection *>& sections)
{
os << "<h2><a name=\"section_Index\"/>Master Index</h2>\n";
os << "<ul>\n";
for(unsigned int i=0; i < sections.size(); ++i)
{
std::string name = sections[i]->
GetName((this->GetForm()));
os << " <li><a href=\"#section_" << name << "\"<b>" << name << "</b></a></li>\n";
}
os << "</ul>\n";
}

View File

@ -36,7 +36,9 @@ public:
const cmDocumentationSection& section,
const char* name);
virtual void PrintPreformatted(std::ostream& os, const char* text);
virtual void PrintParagraph(std::ostream& os, const char* text);
virtual void PrintParagraph(std::ostream& os, const char* text);
virtual void PrintIndex(std::ostream& ,
std::vector<const cmDocumentationSection *>&);
private:
void PrintHTMLEscapes(std::ostream& os, const char* text);
};