36 t <<
"<simplesect kind=\"";
46 t <<
"authors";
break;
48 t <<
"version";
break;
56 t <<
"warning";
break;
62 t <<
"copyright";
break;
64 t <<
"invariant";
break;
68 t <<
"attention";
break;
70 t <<
"important";
break;
82 t <<
"</simplesect>\n";
87 for (
const auto &n : children)
89 std::visit(visitor,n);
124 if (!engine.isEmpty())
134 t <<
" inline=\"yes\"";
147 t <<
"</" << cmd <<
">\n";
209 m_t <<
"<emoji name=\"" << name <<
"\" unicode=\"";
222 m_t <<
"<ulink url=\"";
233 m_t <<
"<linebreak/>\n";
239 m_t <<
"<hruler/>\n";
254 if (s.
enable())
m_t <<
"<strike>";
else m_t <<
"</strike>";
260 if (s.
enable())
m_t <<
"<underline>";
else m_t <<
"</underline>";
266 if (s.
enable())
m_t <<
"<emphasis>";
else m_t <<
"</emphasis>";
271 if (s.
enable())
m_t <<
"<computeroutput>";
else m_t <<
"</computeroutput>";
274 if (s.
enable())
m_t <<
"<subscript>";
else m_t <<
"</subscript>";
277 if (s.
enable())
m_t <<
"<superscript>";
else m_t <<
"</superscript>";
280 if (s.
enable())
m_t <<
"<center>";
else m_t <<
"</center>";
283 if (s.
enable())
m_t <<
"<small>";
else m_t <<
"</small>";
291 m_t <<
"<preformatted>";
296 m_t <<
"</preformatted>";
317 m_t <<
"<programlisting";
319 m_t <<
" filename=\"" << lang <<
"\">";
325 m_t <<
"</programlisting>";
328 m_t <<
"<javadocliteral>";
330 m_t <<
"</javadocliteral>";
333 m_t <<
"<javadoccode>";
335 m_t <<
"</javadoccode>";
340 m_t <<
"</verbatim>";
345 m_t <<
"<htmlonly block=\"yes\">";
352 m_t <<
"</htmlonly>";
365 m_t <<
"<latexonly>";
367 m_t <<
"</latexonly>";
370 m_t <<
"<docbookonly>";
372 m_t <<
"</docbookonly>";
388 visitPreStart(
m_t,
"plantuml", s.
hasCaption(), *
this, s.
children(),
QCString(
""),
FALSE,
DocImage::Html, s.
width(), s.
height(), s.
engine());
398 m_t <<
"<anchor id=\"" << anc.
file() <<
"_1" << anc.
anchor() <<
"\"/>";
410 m_t <<
"<programlisting filename=\"" << inc.
file() <<
"\">";
426 m_t <<
"</programlisting>";
430 m_t <<
"<programlisting filename=\"" << inc.
file() <<
"\">";
444 m_t <<
"</programlisting>";
452 m_t <<
"<htmlonly block=\"yes\">";
459 m_t <<
"</htmlonly>";
462 m_t <<
"<latexonly>";
464 m_t <<
"</latexonly>";
480 m_t <<
"<docbookonly>";
482 m_t <<
"</docbookonly>";
487 m_t <<
"</verbatim>";
491 m_t <<
"<programlisting filename=\"" << inc.
file() <<
"\">";
500 m_t <<
"</programlisting>";
526 std::unique_ptr<FileDef> fd;
563 m_t <<
"<formula id=\"" << f.
id() <<
"\">";
571 m_t <<
"<indexentry>"
574 m_t <<
"</primaryie>"
575 "<secondaryie></secondaryie>"
606 m_t <<
"<orderedlist>\n";
610 m_t <<
"<itemizedlist>\n";
615 m_t <<
"</orderedlist>\n";
619 m_t <<
"</itemizedlist>\n";
629 m_t <<
"<listitem override=\"unchecked\">";
633 m_t <<
"<listitem override=\"checked\">";
640 m_t <<
"</listitem>";
662 std::visit(*
this,*s.
title());
679 m_t <<
"<itemizedlist>\n";
681 m_t <<
"</itemizedlist>\n";
692 m_t <<
"</listitem>\n";
707 m_t <<
"<sect" << s.
level() <<
" id=\"" << sectId <<
"\">\n";
710 std::visit(*
this,*s.
title());
713 m_t <<
"</sect" << s.
level() <<
">";
728 m_t <<
"<orderedlist";
729 for (
const auto &opt : s.
attribs())
731 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
737 m_t <<
"<itemizedlist>\n";
742 m_t <<
"</orderedlist>\n";
746 m_t <<
"</itemizedlist>\n";
754 for (
const auto &opt : l.
attribs())
756 if (opt.name==
"value")
758 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
763 m_t <<
"</listitem>\n";
769 m_t <<
"<variablelist>\n";
771 m_t <<
"</variablelist>\n";
777 m_t <<
"<varlistentry><term>";
779 m_t <<
"</term></varlistentry>\n";
787 m_t <<
"</listitem>\n";
795 for (
const auto &opt : t.
attribs())
797 if (opt.name==
"width")
799 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
805 std::visit(*
this,*t.
caption());
822 if (c.
isHeading())
m_t <<
"<entry thead=\"yes\"";
else m_t <<
"<entry thead=\"no\"";
823 for (
const auto &opt : c.
attribs())
825 if (opt.name==
"colspan" || opt.name==
"rowspan")
827 m_t <<
" " << opt.name <<
"=\"" << opt.value.toInt() <<
"\"";
829 else if (opt.name==
"align" &&
830 (opt.value==
"right" || opt.value==
"left" || opt.value==
"center"))
832 m_t <<
" align=\"" << opt.value <<
"\"";
834 else if (opt.name==
"valign" &&
835 (opt.value ==
"bottom" || opt.value ==
"top" || opt.value ==
"middle"))
837 m_t <<
" valign=\"" << opt.value <<
"\"";
839 else if (opt.name==
"width")
841 m_t <<
" width=\"" << opt.value <<
"\"";
843 else if (opt.name==
"class")
845 if (opt.value.startsWith(
"markdownTable"))
847 if (opt.value.endsWith(
"Right"))
849 m_t <<
" align='right'";
851 else if (opt.value.endsWith(
"Left"))
853 m_t <<
" align='left'";
855 else if (opt.value.endsWith(
"Center"))
857 m_t <<
" align='center'";
861 else if (!opt.value.isEmpty())
882 m_t <<
"</caption>\n";
890 m_t <<
"</internal>\n";
916 std::visit(*
this,*summary);
925 m_t <<
"<heading level=\"" << header.
level() <<
"\">";
927 m_t <<
"</heading>\n";
945 auto it = std::find_if(attribs.begin(),attribs.end(),
946 [](
const auto &att) { return att.name==
"alt"; });
947 QCString altValue = it!=attribs.end() ? it->value :
"";
1022 m_t <<
"<tocitem id=\"" << ref.
file();
1027 m_t <<
"</tocitem>\n";
1033 m_t <<
"<toclist>\n";
1035 m_t <<
"</toclist>\n";
1041 m_t <<
"<parameterlist kind=\"";
1045 m_t <<
"param";
break;
1047 m_t <<
"retval";
break;
1049 m_t <<
"exception";
break;
1051 m_t <<
"templateparam";
break;
1057 m_t <<
"</parameterlist>\n";
1062 m_t <<
"</parametertype>\n";
1063 m_t <<
"<parametertype>";
1069 m_t <<
"<parameteritem>\n";
1070 m_t <<
"<parameternamelist>\n";
1075 m_t <<
"<parametertype>";
1078 std::visit(*
this,type);
1080 m_t <<
"</parametertype>\n";
1082 m_t <<
"<parametername";
1085 m_t <<
" direction=\"";
1101 std::visit(*
this,param);
1102 m_t <<
"</parametername>\n";
1104 m_t <<
"</parameternamelist>\n";
1105 m_t <<
"<parameterdescription>\n";
1108 std::visit(*
this,par);
1110 m_t <<
"</parameterdescription>\n";
1111 m_t <<
"</parameteritem>\n";
1118 m_t <<
"<xrefsect id=\"";
1121 m_t <<
"<xreftitle>";
1123 m_t <<
"</xreftitle>";
1124 m_t <<
"<xrefdescription>";
1127 m_t <<
"</xrefdescription>";
1128 m_t <<
"</xrefsect>";
1148 m_t <<
"<blockquote>";
1150 m_t <<
"</blockquote>";
1160 m_t <<
"<parblock>";
1162 m_t <<
"</parblock>";
1174 m_t <<
"<ref refid=\"" << file;
1175 if (!anchor.
isEmpty())
m_t <<
"_1" << anchor;
1176 m_t <<
"\" kindref=\"";
1177 if (!anchor.
isEmpty())
m_t <<
"member";
else m_t <<
"compound";
1179 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.
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)