37 t <<
"<simplesect kind=\"";
47 t <<
"authors";
break;
49 t <<
"version";
break;
57 t <<
"warning";
break;
63 t <<
"copyright";
break;
65 t <<
"invariant";
break;
69 t <<
"attention";
break;
71 t <<
"important";
break;
83 t <<
"</simplesect>\n";
88 for (
const auto &n : children)
90 std::visit(visitor,n);
125 if (!engine.isEmpty())
135 t <<
" inline=\"yes\"";
148 t <<
"</" << cmd <<
">\n";
210 m_t <<
"<emoji name=\"" << name <<
"\" unicode=\"";
223 m_t <<
"<ulink url=\"";
234 m_t <<
"<linebreak/>\n";
240 m_t <<
"<hruler/>\n";
255 if (s.
enable())
m_t <<
"<strike>";
else m_t <<
"</strike>";
261 if (s.
enable())
m_t <<
"<underline>";
else m_t <<
"</underline>";
267 if (s.
enable())
m_t <<
"<emphasis>";
else m_t <<
"</emphasis>";
272 if (s.
enable())
m_t <<
"<computeroutput>";
else m_t <<
"</computeroutput>";
275 if (s.
enable())
m_t <<
"<subscript>";
else m_t <<
"</subscript>";
278 if (s.
enable())
m_t <<
"<superscript>";
else m_t <<
"</superscript>";
281 if (s.
enable())
m_t <<
"<center>";
else m_t <<
"</center>";
284 if (s.
enable())
m_t <<
"<small>";
else m_t <<
"</small>";
292 m_t <<
"<preformatted>";
297 m_t <<
"</preformatted>";
318 m_t <<
"<programlisting";
320 m_t <<
" filename=\"" << lang <<
"\">";
326 m_t <<
"</programlisting>";
329 m_t <<
"<javadocliteral>";
331 m_t <<
"</javadocliteral>";
334 m_t <<
"<javadoccode>";
336 m_t <<
"</javadoccode>";
341 m_t <<
"</verbatim>";
346 m_t <<
"<htmlonly block=\"yes\">";
353 m_t <<
"</htmlonly>";
366 m_t <<
"<latexonly>";
368 m_t <<
"</latexonly>";
371 m_t <<
"<docbookonly>";
373 m_t <<
"</docbookonly>";
389 visitPreStart(
m_t,
"plantuml", s.
hasCaption(), *
this, s.
children(),
QCString(
""),
FALSE,
DocImage::Html, s.
width(), s.
height(), s.
engine());
399 m_t <<
"<anchor id=\"" << anc.
file() <<
"_1" << anc.
anchor() <<
"\"/>";
411 m_t <<
"<programlisting filename=\"" << inc.
file() <<
"\">";
427 m_t <<
"</programlisting>";
431 m_t <<
"<programlisting filename=\"" << inc.
file() <<
"\">";
445 m_t <<
"</programlisting>";
453 m_t <<
"<htmlonly block=\"yes\">";
460 m_t <<
"</htmlonly>";
463 m_t <<
"<latexonly>";
465 m_t <<
"</latexonly>";
481 m_t <<
"<docbookonly>";
483 m_t <<
"</docbookonly>";
488 m_t <<
"</verbatim>";
492 m_t <<
"<programlisting filename=\"" << inc.
file() <<
"\">";
501 m_t <<
"</programlisting>";
527 std::unique_ptr<FileDef> fd;
564 m_t <<
"<formula id=\"" << f.
id() <<
"\">";
572 m_t <<
"<indexentry>"
575 m_t <<
"</primaryie>"
576 "<secondaryie></secondaryie>"
605 if (!opt.noPar())
filter(
"[");
607 if (!opt.noPar())
filter(
"]");
621 m_t <<
"<orderedlist>\n";
625 m_t <<
"<itemizedlist>\n";
630 m_t <<
"</orderedlist>\n";
634 m_t <<
"</itemizedlist>\n";
644 m_t <<
"<listitem override=\"unchecked\">";
648 m_t <<
"<listitem override=\"checked\">";
655 m_t <<
"</listitem>";
677 std::visit(*
this,*s.
title());
694 m_t <<
"<itemizedlist>\n";
696 m_t <<
"</itemizedlist>\n";
707 m_t <<
"</listitem>\n";
722 m_t <<
"<sect" << s.
level() <<
" id=\"" << sectId <<
"\">\n";
725 std::visit(*
this,*s.
title());
728 m_t <<
"</sect" << s.
level() <<
">";
743 m_t <<
"<orderedlist";
744 for (
const auto &opt : s.
attribs())
746 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
752 m_t <<
"<itemizedlist>\n";
757 m_t <<
"</orderedlist>\n";
761 m_t <<
"</itemizedlist>\n";
769 for (
const auto &opt : l.
attribs())
771 if (opt.name==
"value")
773 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
778 m_t <<
"</listitem>\n";
784 m_t <<
"<variablelist>\n";
786 m_t <<
"</variablelist>\n";
792 m_t <<
"<varlistentry><term>";
794 m_t <<
"</term></varlistentry>\n";
802 m_t <<
"</listitem>\n";
810 for (
const auto &opt : t.
attribs())
812 if (opt.name==
"width")
814 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
820 std::visit(*
this,*t.
caption());
837 if (c.
isHeading())
m_t <<
"<entry thead=\"yes\"";
else m_t <<
"<entry thead=\"no\"";
838 for (
const auto &opt : c.
attribs())
840 if (opt.name==
"colspan" || opt.name==
"rowspan")
842 m_t <<
" " << opt.name <<
"=\"" << opt.value.toInt() <<
"\"";
844 else if (opt.name==
"align" &&
845 (opt.value==
"right" || opt.value==
"left" || opt.value==
"center"))
847 m_t <<
" align=\"" << opt.value <<
"\"";
849 else if (opt.name==
"valign" &&
850 (opt.value ==
"bottom" || opt.value ==
"top" || opt.value ==
"middle"))
852 m_t <<
" valign=\"" << opt.value <<
"\"";
854 else if (opt.name==
"width")
856 m_t <<
" width=\"" << opt.value <<
"\"";
858 else if (opt.name==
"class")
860 if (opt.value.startsWith(
"markdownTable"))
862 if (opt.value.endsWith(
"Right"))
864 m_t <<
" align='right'";
866 else if (opt.value.endsWith(
"Left"))
868 m_t <<
" align='left'";
870 else if (opt.value.endsWith(
"Center"))
872 m_t <<
" align='center'";
876 else if (!opt.value.isEmpty())
897 m_t <<
"</caption>\n";
905 m_t <<
"</internal>\n";
931 std::visit(*
this,*summary);
940 m_t <<
"<heading level=\"" << header.
level() <<
"\">";
942 m_t <<
"</heading>\n";
960 auto it = std::find_if(attribs.begin(),attribs.end(),
961 [](
const auto &att) { return att.name==
"alt"; });
962 QCString altValue = it!=attribs.end() ? it->value :
"";
1037 m_t <<
"<tocitem id=\"" << ref.
file();
1042 m_t <<
"</tocitem>\n";
1048 m_t <<
"<toclist>\n";
1050 m_t <<
"</toclist>\n";
1056 m_t <<
"<parameterlist kind=\"";
1060 m_t <<
"param";
break;
1062 m_t <<
"retval";
break;
1064 m_t <<
"exception";
break;
1066 m_t <<
"templateparam";
break;
1072 m_t <<
"</parameterlist>\n";
1077 m_t <<
"</parametertype>\n";
1078 m_t <<
"<parametertype>";
1084 m_t <<
"<parameteritem>\n";
1085 m_t <<
"<parameternamelist>\n";
1090 m_t <<
"<parametertype>";
1093 std::visit(*
this,type);
1095 m_t <<
"</parametertype>\n";
1097 m_t <<
"<parametername";
1100 m_t <<
" direction=\"";
1116 std::visit(*
this,param);
1117 m_t <<
"</parametername>\n";
1119 m_t <<
"</parameternamelist>\n";
1120 m_t <<
"<parameterdescription>\n";
1123 std::visit(*
this,par);
1125 m_t <<
"</parameterdescription>\n";
1126 m_t <<
"</parameteritem>\n";
1133 m_t <<
"<xrefsect id=\"";
1136 m_t <<
"<xreftitle>";
1138 m_t <<
"</xreftitle>";
1139 m_t <<
"<xrefdescription>";
1142 m_t <<
"</xrefdescription>";
1143 m_t <<
"</xrefsect>";
1163 m_t <<
"<blockquote>";
1165 m_t <<
"</blockquote>";
1175 m_t <<
"<parblock>";
1177 m_t <<
"</parblock>";
1189 m_t <<
"<ref refid=\"" << file;
1190 if (!anchor.
isEmpty())
m_t <<
"_1" << anchor;
1191 m_t <<
"\" kindref=\"";
1192 if (!anchor.
isEmpty())
m_t <<
"member";
else m_t <<
"compound";
1194 if (!ref.
isEmpty())
m_t <<
" external=\"" << ref <<
"\"";
void parseCodeFragment(OutputCodeList &codeOutList, const QCString &fileName, const QCString &blockId, const QCString &scopeName, bool showLineNumbers, bool trimLeft, bool stripCodeComments)
static CodeFragmentManager & instance()
virtual void parseCode(OutputCodeList &codeOutList, const QCString &scopeName, const QCString &input, SrcLangExt lang, bool stripCodeComments, bool isExampleBlock, const QCString &exampleName=QCString(), const FileDef *fileDef=nullptr, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, const MemberDef *memberDef=nullptr, bool showLineNumbers=TRUE, const Definition *searchCtx=nullptr, bool collectXRefs=TRUE)=0
Parses a source file or fragment with the goal to produce highlighted and cross-referenced output.
Node representing an anchor.
Node representing an auto List.
Node representing an item of a auto list.
Node representing a citation of some bibliographic reference.
CiteInfoOption option() const
Node representing a dia file.
Node representing a dot file.
Node representing an emoji.
Node representing a Hypertext reference.
Node representing a horizontal ruler.
Node representing an HTML blockquote.
Node representing a HTML table caption.
Node representing a HTML table cell.
const HtmlAttribList & attribs() const
Node representing a HTML description data.
Node representing a Html description list.
Node representing a Html description item.
const DocNodeVariant * summary() const
Node representing a Html list.
const HtmlAttribList & attribs() const
Node representing a HTML list item.
const HtmlAttribList & attribs() const
Node representing a HTML table row.
Node representing a HTML table.
size_t numColumns() const
const DocNodeVariant * caption() const
const HtmlAttribList & attribs() const
Node representing an image.
const HtmlAttribList & attribs() const
bool isInlineImage() const
Node representing a include/dontinclude operator block.
bool stripCodeComments() const
QCString includeFileName() const
QCString exampleFile() const
Node representing an included text block from file.
QCString extension() const
bool stripCodeComments() const
QCString exampleFile() const
Node representing an entry in the index.
Node representing an internal section of documentation.
Node representing an internal reference to some item.
Node representing a line break.
Node representing a link to some item.
Node representing a word that can be linked to something.
Node representing a msc file.
DocNodeVariant * parent()
Node representing an block of paragraphs.
Node representing a paragraph in the documentation tree.
Node representing a parameter list.
const DocNodeList & parameters() const
const DocNodeList & paramTypes() const
DocParamSect::Direction direction() const
const DocNodeList & paragraphs() const
Node representing a parameter section.
Node representing a uml file.
Node representing a reference to some item.
QCString targetTitle() const
Root node of documentation tree.
Node representing a reference to a section.
Node representing a list of section references.
Node representing a normal section.
const DocNodeVariant * title() const
Node representing a separator.
Node representing a simple list.
Node representing a simple list item.
const DocNodeVariant * paragraph() const
Node representing a simple section.
const DocNodeVariant * title() const
Node representing a separator between two simple sections of the same type.
Node representing a style change.
Node representing a special symbol.
HtmlEntityMapper::SymType symbol() const
Root node of a text fragment.
Node representing a simple section title.
Node representing a URL (or email address)
Node representing a verbatim, unparsed text fragment.
QCString language() const
const DocNodeList & children() const
QCString exampleFile() const
Node representing a VHDL flow chart.
CodeParserInterface & getCodeParser(const QCString &langExt)
void pushHidden(bool hide)
Node representing some amount of white space.
Node representing a word.
Node representing an item of a cross-referenced list.
static FileNameLinkedMap * imageNameLinkedMap
const char * name(int index) const
Access routine to the name of the Emoji entity.
static EmojiEntityMapper & instance()
Returns the one and only instance of the Emoji entity mapper.
A model of a file symbol.
virtual QCString absFilePath() const =0
Minimal replacement for QFileInfo.
std::string fileName() const
std::string dirPath(bool absPath=true) const
bool empty() const
checks whether the container is empty
Class representing a list of HTML attributes.
const char * xml(SymType symb) const
Access routine to the XML code of the HTML entity.
static HtmlEntityMapper & instance()
Returns the one and only instance of the HTML entity mapper.
Class representing a list of different code generators.
This is an alternative implementation of QCString.
size_t length() const
Returns the length of the string, not counting the 0-terminator.
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
Text streaming class that buffers data.
Concrete visitor implementation for XML output.
void visitChildren(const T &t)
void filter(const QCString &str)
void startLink(const QCString &ref, const QCString &file, const QCString &anchor)
XmlDocVisitor(TextStream &t, OutputCodeList &ci, const QCString &langExt)
void operator()(const DocWord &)
#define Config_getBool(name)
#define Config_getString(name)
std::unique_ptr< FileDef > createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
static void visitPreStart(TextStream &t, bool hasCaption, QCString name, QCString width, QCString height, bool inlineImage=FALSE)
static void visitPostEnd(TextStream &t, bool hasCaption, bool inlineImage=FALSE)
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
QCString correctURL(const QCString &url, const QCString &relPath)
Corrects URL url according to the relative path relPath.
QCString stripPath(const QCString &s)
SrcLangExt getLanguageFromCodeLang(QCString &fileName)
Routine to handle the language attribute of the \code command.
QCString convertToXML(const QCString &s, bool keepEntities)
bool copyFile(const QCString &src, const QCString &dest)
Copies the contents of file with name src to the newly created file with name dest.
QCString getFileNameExtension(const QCString &fn)
FileDef * findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig)
A bunch of utility functions.
static void visitCaption(XmlDocVisitor &visitor, const DocNodeList &children)
static void visitPostEnd(TextStream &t, const char *cmd)
static void endSimpleSect(TextStream &t, const DocSimpleSect &)
static void startSimpleSect(TextStream &t, const DocSimpleSect &s)
static void visitPreStart(TextStream &t, const char *cmd, bool doCaption, XmlDocVisitor &visitor, const DocNodeList &children, const QCString &name, bool writeType, DocImage::Type type, const QCString &width, const QCString &height, const QCString engine=QCString(), const QCString &alt=QCString(), bool inlineImage=FALSE)