docbook: Cleanup formatter and generated DocBook

Comment and whitespace changes, changed docbook version to 4.5, changed
<literallayout> to <programlisting> (the latter implies a fixed-size font).
This commit is contained in:
Daniel Pfeifer 2012-09-07 10:41:49 +02:00 committed by Brad King
parent 55146ed0f0
commit 67e7d49cb8

View File

@ -96,28 +96,24 @@ void cmDocumentationPrintDocbookEscapes(std::ostream& os, const char* text)
} }
} }
//----------------------------------------------------------------------------
cmDocumentationFormatterDocbook::cmDocumentationFormatterDocbook() cmDocumentationFormatterDocbook::cmDocumentationFormatterDocbook()
:cmDocumentationFormatter() :cmDocumentationFormatter()
{ {
} }
//----------------------------------------------------------------------------
void cmDocumentationFormatterDocbook void cmDocumentationFormatterDocbook
::PrintSection(std::ostream& os, ::PrintSection(std::ostream& os,
const cmDocumentationSection &section, const cmDocumentationSection &section,
const char* name) const char* name)
{ {
if(name) os << "<sect1 id=\"";
{ this->PrintId(os, 0, name);
os << "<sect1 id=\""; os << "\">\n<title>" << name << "</title>\n";
this->PrintId(os, 0, name);
os << "\">\n<title>" << name << "</title>\n";
}
std::string prefix = this->ComputeSectionLinkPrefix(name); std::string prefix = this->ComputeSectionLinkPrefix(name);
const std::vector<cmDocumentationEntry> &entries = section.GetEntries();
const std::vector<cmDocumentationEntry> &entries =
section.GetEntries();
for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin(); for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin();
op != entries.end(); ++op) op != entries.end(); ++op)
@ -147,32 +143,36 @@ void cmDocumentationFormatterDocbook
this->PrintFormatted(os, op->Brief.c_str()); this->PrintFormatted(os, op->Brief.c_str());
} }
} }
if(name)
// empty sections are not allowed in docbook.
if(entries.empty())
{ {
os << "</sect1>\n"; os << "<para/>\n";
} }
}
void cmDocumentationFormatterDocbook::PrintPreformatted(std::ostream& os, os << "</sect1>\n";
const char* text)
{
os << "<literallayout>";
cmDocumentationPrintDocbookEscapes(os, text);
os << "</literallayout>\n ";
}
void cmDocumentationFormatterDocbook::PrintParagraph(std::ostream& os,
const char* text)
{
os << "<para>";
cmDocumentationPrintDocbookEscapes(os, text);
os << "</para>";
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void cmDocumentationFormatterDocbook::PrintHeader(const char* docname, void cmDocumentationFormatterDocbook
const char* appname, ::PrintPreformatted(std::ostream& os, const char* text)
std::ostream& os) {
os << "<programlisting>";
cmDocumentationPrintDocbookEscapes(os, text);
os << "</programlisting>\n";
}
void cmDocumentationFormatterDocbook
::PrintParagraph(std::ostream& os, const char* text)
{
os << "<para>";
cmDocumentationPrintDocbookEscapes(os, text);
os << "</para>\n";
}
//----------------------------------------------------------------------------
void cmDocumentationFormatterDocbook
::PrintHeader(const char* docname, const char* appname, std::ostream& os)
{ {
this->docname = docname; this->docname = docname;
@ -182,8 +182,8 @@ void cmDocumentationFormatterDocbook::PrintHeader(const char* docname,
this->EmittedLinkIds.clear(); this->EmittedLinkIds.clear();
os << "<?xml version=\"1.0\" ?>\n" os << "<?xml version=\"1.0\" ?>\n"
"<!DOCTYPE article PUBLIC \"-//OASIS//DTD DocBook V4.2//EN\" " "<!DOCTYPE article PUBLIC \"-//OASIS//DTD DocBook V4.5//EN\" "
"\"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd\" [\n" "\"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\" [\n"
"<!ENTITY % addindex \"IGNORE\">\n" "<!ENTITY % addindex \"IGNORE\">\n"
"<!ENTITY % English \"INCLUDE\"> ]>\n" "<!ENTITY % English \"INCLUDE\"> ]>\n"
"<article>\n" "<article>\n"