浏览该文件的文档.
35 for (
const auto &n : children) n->accept(parent);
69 if (!engine.isEmpty())
79 t <<
" inline=\"yes\"";
92 t <<
"</" << cmd <<
">\n";
154 m_t <<
"<emoji name=\"" << name <<
"\" unicode=\"";
167 m_t <<
"<ulink url=\"";
178 m_t <<
"<linebreak/>\n";
184 m_t <<
"<hruler/>\n";
193 if (s->
enable())
m_t <<
"<bold>";
else m_t <<
"</bold>";
199 if (s->
enable())
m_t <<
"<strike>";
else m_t <<
"</strike>";
205 if (s->
enable())
m_t <<
"<underline>";
else m_t <<
"</underline>";
211 if (s->
enable())
m_t <<
"<emphasis>";
else m_t <<
"</emphasis>";
214 if (s->
enable())
m_t <<
"<computeroutput>";
else m_t <<
"</computeroutput>";
217 if (s->
enable())
m_t <<
"<subscript>";
else m_t <<
"</subscript>";
220 if (s->
enable())
m_t <<
"<superscript>";
else m_t <<
"</superscript>";
223 if (s->
enable())
m_t <<
"<center>";
else m_t <<
"</center>";
226 if (s->
enable())
m_t <<
"<small>";
else m_t <<
"</small>";
231 m_t <<
"<preformatted>";
236 m_t <<
"</preformatted>";
257 m_t <<
"<programlisting";
259 m_t <<
" filename=\"" << lang <<
"\">";
264 m_t <<
"</programlisting>";
269 m_t <<
"</verbatim>";
274 m_t <<
"<htmlonly block=\"yes\">";
281 m_t <<
"</htmlonly>";
294 m_t <<
"<latexonly>";
296 m_t <<
"</latexonly>";
299 m_t <<
"<docbookonly>";
301 m_t <<
"</docbookonly>";
317 visitPreStart(
m_t,
"plantuml", s->
hasCaption(),
this, s->
children(),
QCString(
""),
FALSE,
DocImage::Html, s->
width(), s->
height(), s->
engine());
327 m_t <<
"<anchor id=\"" << anc->
file() <<
"_1" << anc->
anchor() <<
"\"/>";
338 m_t <<
"<programlisting filename=\"" << inc->
file() <<
"\">";
354 m_t <<
"</programlisting>";
358 m_t <<
"<programlisting filename=\"" << inc->
file() <<
"\">";
371 m_t <<
"</programlisting>";
379 m_t <<
"<htmlonly block=\"yes\">";
386 m_t <<
"</htmlonly>";
389 m_t <<
"<latexonly>";
391 m_t <<
"</latexonly>";
407 m_t <<
"<docbookonly>";
409 m_t <<
"</docbookonly>";
414 m_t <<
"</verbatim>";
417 m_t <<
"<programlisting filename=\"" << inc->
file() <<
"\">";
425 m_t <<
"</programlisting>";
429 m_t <<
"<programlisting filename=\"" << inc->
file() <<
"\">";
446 m_t <<
"</programlisting>";
451 err(
"Internal inconsistency: found switch SnippetDoc / IncludeDoc in file: %s"
452 "Please create a bug report\n",__FILE__);
514 m_t <<
"<formula id=\"" << f->
id() <<
"\">";
522 m_t <<
"<indexentry>"
525 m_t <<
"</primaryie>"
526 "<secondaryie></secondaryie>"
556 m_t <<
"<orderedlist>\n";
560 m_t <<
"<itemizedlist>\n";
569 m_t <<
"</orderedlist>\n";
573 m_t <<
"</itemizedlist>\n";
586 m_t <<
"</listitem>";
614 m_t <<
"<simplesect kind=\"";
620 m_t <<
"return";
break;
622 m_t <<
"author";
break;
624 m_t <<
"authors";
break;
626 m_t <<
"version";
break;
628 m_t <<
"since";
break;
630 m_t <<
"date";
break;
632 m_t <<
"note";
break;
634 m_t <<
"warning";
break;
638 m_t <<
"post";
break;
640 m_t <<
"copyright";
break;
642 m_t <<
"invariant";
break;
644 m_t <<
"remark";
break;
646 m_t <<
"attention";
break;
659 m_t <<
"</simplesect>\n";
677 m_t <<
"<itemizedlist>\n";
683 m_t <<
"</itemizedlist>\n";
695 m_t <<
"</listitem>\n";
711 m_t <<
"</sect" << s->
level() <<
">\n";
719 m_t <<
"<orderedlist";
720 for (
const auto &opt : s->
attribs())
722 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
727 m_t <<
"<itemizedlist>\n";
734 m_t <<
"</orderedlist>\n";
736 m_t <<
"</itemizedlist>\n";
743 for (
const auto &opt : l->
attribs())
745 if (opt.name==
"value")
747 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
756 m_t <<
"</listitem>\n";
762 m_t <<
"<variablelist>\n";
768 m_t <<
"</variablelist>\n";
774 m_t <<
"<varlistentry><term>";
780 m_t <<
"</term></varlistentry>\n";
792 m_t <<
"</listitem>\n";
800 for (
const auto &opt : t->
attribs())
802 if (opt.name==
"width")
804 m_t <<
" " << opt.name <<
"=\"" << opt.value <<
"\"";
831 if (c->
isHeading())
m_t <<
"<entry thead=\"yes\"";
else m_t <<
"<entry thead=\"no\"";
832 for (
const auto &opt : c->
attribs())
834 if (opt.name==
"colspan" || opt.name==
"rowspan")
836 m_t <<
" " << opt.name <<
"=\"" << opt.value.toInt() <<
"\"";
838 else if (opt.name==
"align" &&
839 (opt.value==
"right" || opt.value==
"left" || opt.value==
"center"))
841 m_t <<
" align=\"" << opt.value <<
"\"";
843 else if (opt.name==
"valign" &&
844 (opt.value ==
"bottom" || opt.value ==
"top" || opt.value ==
"middle"))
846 m_t <<
" valign=\"" << opt.value <<
"\"";
848 else if (opt.name==
"width")
850 m_t <<
" width=\"" << opt.value <<
"\"";
852 else if (opt.name==
"class")
854 if (opt.value.left(13)==
"markdownTable")
856 if (opt.value.right(5)==
"Right")
858 m_t <<
" align='right'";
860 else if (opt.value.right(4)==
"Left")
862 m_t <<
" align='left'";
864 else if (opt.value.right(6)==
"Center")
866 m_t <<
" align='center'";
870 else if (!opt.value.isEmpty())
894 m_t <<
"</caption>\n";
906 m_t <<
"</internal>\n";
924 m_t <<
"<heading level=\"" << header->
level() <<
"\">";
930 m_t <<
"</heading>\n";
948 auto it = std::find_if(attribs.begin(),attribs.end(),
949 [](
const auto &att) { return att.name==
"alt"; });
950 QCString altValue = it!=attribs.end() ? it->value :
"";
1038 m_t <<
"<tocitem id=\"" << ref->
file();
1047 m_t <<
"</tocitem>\n";
1053 m_t <<
"<toclist>\n";
1059 m_t <<
"</toclist>\n";
1077 m_t <<
"<parameterlist kind=\"";
1081 m_t <<
"param";
break;
1083 m_t <<
"retval";
break;
1085 m_t <<
"exception";
break;
1087 m_t <<
"templateparam";
break;
1097 m_t <<
"</parameterlist>\n";
1103 m_t <<
"<parameteritem>\n";
1104 m_t <<
"<parameternamelist>\n";
1109 m_t <<
"<parametertype>";
1122 m_t <<
"</parametertype>\n";
1123 m_t <<
"<parametertype>";
1126 m_t <<
"</parametertype>\n";
1128 m_t <<
"<parametername";
1131 m_t <<
" direction=\"";
1155 m_t <<
"</parametername>\n";
1157 m_t <<
"</parameternamelist>\n";
1158 m_t <<
"<parameterdescription>\n";
1164 m_t <<
"</parameterdescription>\n";
1165 m_t <<
"</parameteritem>\n";
1172 m_t <<
"<xrefsect id=\"";
1175 m_t <<
"<xreftitle>";
1177 m_t <<
"</xreftitle>";
1178 m_t <<
"<xrefdescription>";
1185 m_t <<
"</xrefdescription>";
1186 m_t <<
"</xrefsect>";
1213 m_t <<
"<blockquote>";
1219 m_t <<
"</blockquote>";
1233 m_t <<
"<parblock>";
1239 m_t <<
"</parblock>";
1251 m_t <<
"<ref refid=\"" << file;
1252 if (!anchor.
isEmpty())
m_t <<
"_1" << anchor;
1253 m_t <<
"\" kindref=\"";
1254 if (!anchor.isEmpty())
m_t <<
"member";
else m_t <<
"compound";
1256 if (!ref.
isEmpty())
m_t <<
" external=\"" << ref <<
"\"";
Node representing an HTML blockquote
Node representing an item of a auto list
Node representing a Hypertext reference
Node representing a style change
void visitPost(DocAutoList *)
Node representing a verbatim, unparsed text fragment
DocNodeList & paramTypes()
Node representing a simple section title
Node representing a paragraph in the documentation tree
bool isInlineImage() const
FileDef * findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig)
Node representing a dot file
void pushHidden(bool hide)
Node representing a HTML table
void visitPre(DocAutoList *)
const char * xml(DocSymbol::SymType symb) const
Access routine to the XML code of the HTML entity
static FileNameLinkedMap * imageNameLinkedMap
Root node of documentation tree
uint length() const
Returns the length of the string, not counting the 0-terminator.
Class representing a list of HTML attributes.
Node representing a HTML list item
bool isEmpty() const
Returns TRUE iff the string is empty
size_t numColumns() const
Node representing a VHDL flow chart
static void visitCaption(XmlDocVisitor *parent, const DocNodeList &children)
Node representing a HTML description data
bool copyFile(const QCString &src, const QCString &dest)
Copies the contents of file with name src to the newly created file with name dest.
Node representing a Html description item
Node representing a n emoji
Node representing a msc file
SrcLangExt
Language as given by extension
QCString targetTitle() const
QCString exampleFile() const
Node representing a reference to a section
Node representing an anchor
QCString correctURL(const QCString &url, const QCString &relPath)
Corrects URL url according to the relative path relPath.
void err(const char *fmt,...)
Text streaming class that buffers data.
Root node of a text fragment
const HtmlAttribList & attribs() const
Abstract visitor that participates in the visitor pattern.
static HtmlEntityMapper * instance()
Returns the one and only instance of the HTML entity mapper
static void visitPostEnd(TextStream &t, const char *cmd)
Node representing a Html description list
CodeParserInterface & getCodeParser(const QCString &langExt)
Node representing a include/dontinclude operator block
Node representing an entry in the index.
Node representing a list of section references
Node representing a line break
Node representing a special symbol
const char * name(int index) const
Access routine to the name of the Emoji entity
QCString extractBlock(const QCString &text, const QCString &marker)
Returns the section of text, in between a pair of markers.
Node representing an item of a cross-referenced list
const HtmlAttribList & attribs() const
FileDef * createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
Node representing an image
const HtmlAttribList & attribs() const
virtual Kind kind() const =0
std::vector< std::unique_ptr< DocNode > > DocNodeList
Node representing a URL (or email address)
static void visitPreStart(TextStream &t, const char *cmd, bool doCaption, XmlDocVisitor *parent, 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)
Node representing a HTML table caption
Node representing a parameter list.
QCString exampleFile() const
Node representing an block of paragraphs
Node representing a separator between two simple sections of the same type.
Node representing a citation of some bibliographic reference
Node representing a reference to some item
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
Node representing a parameter section
const DocNodeList & children() const
Node representing a Html list
int lineBlock(const QCString &text, const QCString &marker)
Returns the line number of the line following the line with the marker.
DocParamSect::Direction direction() const
Node representing a simple section
Node representing a normal section
Node representing a horizontal ruler
QCString language() const
CodeOutputInterface & m_ci
Node representing an included text block from file
virtual void parseCode(CodeOutputInterface &codeOutIntf, const QCString &scopeName, const QCString &input, SrcLangExt lang, bool isExampleBlock, const QCString &exampleName=QCString(), const FileDef *fileDef=0, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, const MemberDef *memberDef=0, bool showLineNumbers=TRUE, const Definition *searchCtx=0, bool collectXRefs=TRUE)=0
Parses a source file or fragment with the goal to produce highlighted and cross-referenced output.
Node representing an auto List
Node representing an internal section of documentation
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
std::string dirPath(bool absPath=true) const
Node representing a word that can be linked to something
SrcLangExt getLanguageFromCodeLang(QCString &fileName)
Routine to handle the language attribute of the \code command
Output interface for code parser.
Node representing a link to some item
Node representing a dia file
Minimal replacement for QFileInfo.
virtual QCString absFilePath() const =0
#define Config_getString(name)
void startLink(const QCString &ref, const QCString &file, const QCString &anchor)
QCString convertCharEntitiesToUTF8(const QCString &str)
Node representing a simple list
QCString getFileNameExtension(const QCString &fn)
Node representing a simple list item
QCString convertToXML(const QCString &s, bool keepEntities)
QCString includeFileName() const
A model of a file symbol.
const DocNodeList & children() const
Node representing some amount of white space
XmlDocVisitor(TextStream &t, CodeOutputInterface &ci, const QCString &langExt)
static EmojiEntityMapper * instance()
Returns the one and only instance of the Emoji entity mapper
std::string fileName() const
Node representing a HTML table cell
QCString extension() const
void filter(const QCString &str)
Node representing an internal reference to some item
DocNodeList & parameters()
Concrete visitor implementation for XML output.
A bunch of utility functions.
const HtmlAttribList & attribs() const
Node representing a HTML table row
QCString exampleFile() const
const HtmlAttribList & attribs() const
This is an alternative implementation of QCString.