Doxygen
Loading...
Searching...
No Matches
docbookgen.h File Reference
#include <memory>
#include <array>
#include "config.h"
#include "outputgen.h"
Include dependency graph for docbookgen.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DocbookCodeGenerator
class  DocbookGenerator
struct  DocbookGenerator::TocState

Macros

#define DB_GEN_EMPTY
#define DB_GEN_H
#define DB_GEN_H1(x)
#define DB_GEN_H2(y)
#define DB_GEN_H2a(x, y)
#define DB_GEN_NEW

Functions

QCString convertToDocBook (const QCString &s, const bool retainNewline=false)

Macro Definition Documentation

◆ DB_GEN_EMPTY

#define DB_GEN_EMPTY

Definition at line 26 of file docbookgen.h.

Referenced by DocbookGenerator::endAnonTypeScope(), DocbookGenerator::endContents(), DocbookGenerator::endDescForItem(), DocbookGenerator::endHeaderSection(), DocbookGenerator::endIndent(), DocbookGenerator::endItemList(), DocbookGenerator::endItemListItem(), DocbookGenerator::endMemberDeclaration(), DocbookGenerator::endMemberDescription(), DocbookGenerator::endMemberGroupDocs(), DocbookGenerator::endMemberSections(), DocbookGenerator::endMemberSubtitle(), DocbookGenerator::endPageDoc(), DocbookGenerator::endParameterType(), DocbookGenerator::endQuickIndices(), DocbookGenerator::insertMemberAlign(), DocbookGenerator::insertMemberAlignLeft(), DocbookGenerator::lastIndexPage(), DocbookGenerator::startAnonTypeScope(), DocbookGenerator::startContents(), DocbookGenerator::startDescForItem(), DocbookGenerator::startHeaderSection(), DocbookGenerator::startIndent(), DocbookGenerator::startItemList(), DocbookGenerator::startItemListItem(), DocbookGenerator::startMemberDeclaration(), DocbookGenerator::startMemberDescription(), DocbookGenerator::startMemberGroupDocs(), DocbookGenerator::startMemberSections(), DocbookGenerator::startMemberSubtitle(), DocbookGenerator::startPageDoc(), DocbookGenerator::startParameterType(), DocbookGenerator::startQuickIndices(), DocbookGenerator::writeAnchor(), DocbookGenerator::writeLatexSpacing(), DocbookGenerator::writePageOutline(), DocbookGenerator::writeQuickLinks(), DocbookGenerator::writeSearchInfo(), DocbookGenerator::writeSplitBar(), DocbookGenerator::writeStyleInfo(), DocbookGenerator::writeSummaryLink(), and DocbookGenerator::writeSynopsis().

◆ DB_GEN_H

#define DB_GEN_H

Definition at line 38 of file docbookgen.h.

◆ DB_GEN_H1

#define DB_GEN_H1 ( x)

Definition at line 39 of file docbookgen.h.

◆ DB_GEN_H2

#define DB_GEN_H2 ( y)

Definition at line 40 of file docbookgen.h.

◆ DB_GEN_H2a

#define DB_GEN_H2a ( x,
y )

Definition at line 41 of file docbookgen.h.

◆ DB_GEN_NEW

Function Documentation

◆ convertToDocBook()

QCString convertToDocBook ( const QCString & s,
const bool retainNewline )

Converts a string to an DocBook-encoded string

Definition at line 1484 of file docbookgen.cpp.

1485{
1486 if (s.isEmpty()) return s;
1487 QCString result;
1488 result.reserve(s.length()+32);
1489 const char *p = s.data();
1490 const char *q = nullptr;
1491 int cnt = 0;
1492 char c = 0;
1493 while ((c=*p++))
1494 {
1495 switch (c)
1496 {
1497 case '\n':
1498 if (retainNewline) result+="<literallayout>&#160;&#xa;</literallayout>";
1499 result+=c;
1500 break;
1501 case '<': result+="&lt;"; break;
1502 case '>': result+="&gt;"; break;
1503 case '&': // possibility to have a special symbol
1504 q = p;
1505 cnt = 2; // we have to count & and ; as well
1506 while ((*q >= 'a' && *q <= 'z') || (*q >= 'A' && *q <= 'Z') || (*q >= '0' && *q <= '9'))
1507 {
1508 cnt++;
1509 q++;
1510 }
1511 if (*q == ';')
1512 {
1513 --p; // we need & as well
1516 {
1517 p++;
1518 result+="&amp;";
1519 }
1520 else
1521 {
1522 result+=HtmlEntityMapper::instance().docbook(res);
1523 q++;
1524 p = q;
1525 }
1526 }
1527 else
1528 {
1529 result+="&amp;";
1530 }
1531 break;
1532 case '\'': result+="&apos;"; break;
1533 case '"': result+="&quot;"; break;
1534 case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8:
1535 case 11: case 12: case 14: case 15: case 16: case 17: case 18:
1536 case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26:
1537 case 27: case 28: case 29: case 30: case 31:
1538 result+="&#x24";
1539 result+=hex[static_cast<uint8_t>(c)>>4];
1540 result+=hex[static_cast<uint8_t>(c)&0xF];
1541 result+=';';
1542 break;
1543 default:
1544 result+=c;
1545 break;
1546 }
1547 }
1548 return result;
1549}
static HtmlEntityMapper & instance()
Returns the one and only instance of the HTML entity mapper.
const char * docbook(SymType symb) const
Access routine to the docbook code of the HTML entity.
SymType name2sym(const QCString &symName) const
Give code of the requested HTML entity name.
This is an alternative implementation of QCString.
Definition qcstring.h:101
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition qcstring.h:166
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:163
void reserve(size_t size)
Reserve space for size bytes without changing the string contents.
Definition qcstring.h:185
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
Definition qcstring.h:172
static constexpr auto hex

References QCString::data(), HtmlEntityMapper::docbook(), hex, HtmlEntityMapper::instance(), QCString::isEmpty(), QCString::length(), HtmlEntityMapper::name2sym(), QCString::reserve(), and HtmlEntityMapper::Sym_Unknown.

Referenced by addIndexTerm(), DocbookGenerator::docify(), DocbookDocVisitor::filter(), objectLinkToString(), DocbookDocVisitor::operator()(), DocbookDocVisitor::operator()(), DocbookDocVisitor::operator()(), DocbookDocVisitor::operator()(), DocbookGenerator::startDescTable(), DocbookGenerator::startIndexSection(), DocbookGenerator::startMemberDoc(), DocbookGenerator::startMemberDocSimple(), DocbookGenerator::startTocEntry(), DocbookDocVisitor::visitPreStart(), writeDocbookString(), and DocbookGenerator::writeInheritedSectionTitle().