Doxygen
docbookvisitor.cpp
浏览该文件的文档.
1 /******************************************************************************
2  *
3  * Copyright (C) 1997-2020 by Dimitri van Heesch.
4  *
5  * Permission to use, copy, modify, and distribute this software and its
6  * documentation under the terms of the GNU General Public License is hereby
7  * granted. No representations are made about the suitability of this software
8  * for any purpose. It is provided "as is" without express or implied warranty.
9  * See the GNU General Public License for more details.
10  *
11  * Documents produced by Doxygen are derivative works derived from the
12  * input used in their production; they are not affected by this license.
13  *
14  */
15 
16 #include <fstream>
17 
18 #include "docbookvisitor.h"
19 #include "docparser.h"
20 #include "language.h"
21 #include "doxygen.h"
22 #include "outputgen.h"
23 #include "docbookgen.h"
24 #include "dot.h"
25 #include "message.h"
26 #include "util.h"
27 #include "parserintf.h"
28 #include "filename.h"
29 #include "config.h"
30 #include "filedef.h"
31 #include "msc.h"
32 #include "dia.h"
33 #include "htmlentity.h"
34 #include "emoji.h"
35 #include "plantuml.h"
36 #include "growbuf.h"
37 #include "fileinfo.h"
38 
39 #if 0
40 #define DB_VIS_C DB_VIS_C1(m_t)
41 #define DB_VIS_C1(x) x << "<!-- DB_VIS_C " << __LINE__ << " -->\n";
42 #define DB_VIS_C2(y) DB_VIS_C2a(m_t,y)
43 #define DB_VIS_C2a(x,y) x << "<!-- DB_VIS_C " << __LINE__ << " " << y << " -->\n";
44 #else
45 #define DB_VIS_C
46 #define DB_VIS_C1(x)
47 #define DB_VIS_C2(y)
48 #define DB_VIS_C2a(x,y)
49 #endif
50 
51 static QCString filterId(const QCString &s)
52 {
53  if (s.isEmpty()) return s;
54  static GrowBuf growBuf;
55  growBuf.clear();
56  const char *p=s.data();
57  char c;
58  while ((c=*p++))
59  {
60  switch (c)
61  {
62  case ':': growBuf.addStr("_1"); break;
63  default: growBuf.addChar(c); break;
64  }
65  }
66  growBuf.addChar(0);
67  return growBuf.get();
68 }
69 
70 static bool supportedHtmlAttribute(const QCString &name)
71 {
72  return (name=="align" ||
73  name=="bgcolor" ||
74  name=="border" ||
75  name=="cellpadding" ||
76  name=="cellspacing" ||
77  name=="class" ||
78  name=="frame" ||
79  name=="label" ||
80  name=="style" ||
81  name=="width" ||
82  name=="tabstyle" ||
83  name=="title");
84 }
85 
86 
88 {
89  for (const auto &n : children) n->accept(this);
90 }
91 
93  const DocNodeList &children,
94  bool hasCaption,
95  const QCString &name,
96  const QCString &width,
97  const QCString &height,
98  bool inlineImage)
99 {
100  if (hasCaption && !inlineImage)
101  {
102  t << " <figure>\n";
103  t << " <title>\n";
104  visitCaption(children);
105  t << " </title>\n";
106  }
107  else
108  {
109  t << " <informalfigure>\n";
110  }
111  t << " <mediaobject>\n";
112  t << " <imageobject>\n";
113  t << " <imagedata";
114  if (!width.isEmpty())
115  {
116  t << " width=\"" << convertToDocBook(width) << "\"";
117  }
118  else
119  {
120  if (!height.isEmpty() && !inlineImage) t << " width=\"50%\"";
121  }
122  if (!height.isEmpty())
123  {
124  t << " depth=\"" << convertToDocBook(height) << "\"";
125  }
126  t << " align=\"center\" valign=\"middle\" scalefit=\"0\" fileref=\"" << name << "\">";
127  t << "</imagedata>\n";
128  t << " </imageobject>\n";
129  if (hasCaption && !inlineImage)
130  {
131  t << " <!--\n"; // Needed for general formatting with title for other formats
132  }
133 }
134 
135 void DocbookDocVisitor::visitPostEnd(TextStream &t, bool hasCaption, bool inlineImage)
136 {
137  t << "\n";
138  if (hasCaption && !inlineImage)
139  {
140  t << " -->\n"; // Needed for general formatting with title for other formats
141  }
142  t << " </mediaobject>\n";
143  if (hasCaption && !inlineImage)
144  {
145  t << " </figure>\n";
146  }
147  else
148  {
149  t << " </informalfigure>\n";
150  }
151 }
152 
154  : DocVisitor(DocVisitor_Docbook), m_t(t), m_ci(ci),m_langExt(langExt)
155 {
156 DB_VIS_C
157  // m_t << "<section>\n";
158 }
160 {
161 DB_VIS_C
162  // m_t << "</section>\n";
163 }
164 
165 //--------------------------------------
166 // visitor functions for leaf nodes
167 //--------------------------------------
168 
170 {
171 DB_VIS_C
172  if (m_hide) return;
173  filter(w->word());
174 }
175 
177 {
178 DB_VIS_C
179  if (m_hide) return;
180  startLink(w->file(),w->anchor());
181  filter(w->word());
182  endLink();
183 }
184 
186 {
187 DB_VIS_C
188  if (m_hide) return;
189  if (m_insidePre)
190  {
191  m_t << w->chars();
192  }
193  else
194  {
195  m_t << " ";
196  }
197 }
198 
200 {
201 DB_VIS_C
202  if (m_hide) return;
203  const char *res = HtmlEntityMapper::instance()->docbook(s->symbol());
204  if (res)
205  {
206  m_t << res;
207  }
208  else
209  {
210  err("DocBook: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
211  }
212 }
213 
215 {
216 DB_VIS_C
217  if (m_hide) return;
218  const char *res = EmojiEntityMapper::instance()->unicode(s->index());
219  if (res)
220  {
221  m_t << res;
222  }
223  else
224  {
225  m_t << s->name();
226  }
227 }
228 
230 {
231 DB_VIS_C
232  if (m_hide) return;
233  m_t << "<link xlink:href=\"";
234  if (u->isEmail()) m_t << "mailto:";
235  filter(u->url());
236  m_t << "\">";
237  filter(u->url());
238  m_t << "</link>";
239 }
240 
242 {
243 DB_VIS_C
244  if (m_hide) return;
245  m_t << "\n<literallayout>&#160;&#xa;</literallayout>\n";
246  // gives nicer results but gives problems as it is not allowed in <pare> and also problems with dblatex
247  // m_t << "\n" << "<sbr/>\n";
248 }
249 
251 {
252 DB_VIS_C
253  if (m_hide) return;
254  m_t << "<informaltable frame='bottom'><tgroup cols='1'><colspec align='center'/><tbody><row><entry align='center'>\n";
255  m_t << "</entry></row></tbody></tgroup></informaltable>\n";
256 }
257 
259 {
260 DB_VIS_C
261  if (m_hide) return;
262  switch (s->style())
263  {
265  if (s->enable()) m_t << "<emphasis role=\"bold\">"; else m_t << "</emphasis>";
266  break;
268  if (s->enable()) m_t << "<emphasis>"; else m_t << "</emphasis>";
269  break;
271  if (s->enable()) m_t << "<computeroutput>"; else m_t << "</computeroutput>";
272  break;
274  if (s->enable()) m_t << "<subscript>"; else m_t << "</subscript>";
275  break;
277  if (s->enable()) m_t << "<superscript>"; else m_t << "</superscript>";
278  break;
280  if (s->enable()) m_t << "<informaltable frame='none'><tgroup cols='1'><colspec align='center'/><tbody><row><entry align='center'>";
281  else m_t << "</entry></row></tbody></tgroup></informaltable>";
282  break;
284  if (s->enable())
285  {
286  m_t << "<literallayout>";
288  }
289  else
290  {
291  m_t << "</literallayout>";
293  }
294  break;
295  /* There is no equivalent Docbook tag for rendering Small text */
296  case DocStyleChange::Small: /* XSLT Stylesheets can be used */ break;
297  /* HTML only */
298  case DocStyleChange::S: break;
299  case DocStyleChange::Strike: break;
300  case DocStyleChange::Del: break;
301  case DocStyleChange::Underline: break;
302  case DocStyleChange::Ins: break;
303  case DocStyleChange::Div: /* HTML only */ break;
304  case DocStyleChange::Span: /* HTML only */ break;
305  }
306 }
307 
309 {
310 DB_VIS_C
311  if (m_hide) return;
312  QCString lang = m_langExt;
313  if (!s->language().isEmpty()) // explicit language setting
314  {
315  lang = s->language();
316  }
317  SrcLangExt langExt = getLanguageFromCodeLang(lang);
318  switch(s->type())
319  {
320  case DocVerbatim::Code:
321  m_t << "<literallayout><computeroutput>";
323  s->text(),
324  langExt,
325  s->isExample(),
326  s->exampleFile());
327  m_t << "</computeroutput></literallayout>";
328  break;
330  m_t << "<literallayout><computeroutput>";
331  filter(s->text());
332  m_t << "</computeroutput></literallayout>";
333  break;
335  break;
337  break;
339  break;
341  break;
343  break;
345  m_t << s->text();
346  break;
347  case DocVerbatim::Dot:
348  {
349  static int dotindex = 1;
350  QCString baseName(4096);
351  QCString name;
352  QCString stext = s->text();
353  m_t << "<para>\n";
354  name.sprintf("%s%d", "dot_inline_dotgraph_", dotindex);
355  baseName.sprintf("%s%d",
356  qPrint(Config_getString(DOCBOOK_OUTPUT)+"/inline_dotgraph_"),
357  dotindex++
358  );
359  std::string fileName = baseName.str()+".dot";
360  std::ofstream file(fileName,std::ofstream::out | std::ofstream::binary);
361  if (!file.is_open())
362  {
363  err("Could not open file %s for writing\n",fileName.c_str());
364  }
365  file.write( stext.data(), stext.length() );
366  file.close();
367  writeDotFile(baseName, s);
368  m_t << "</para>\n";
369  if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName);
370  }
371  break;
372  case DocVerbatim::Msc:
373  {
374  static int mscindex = 1;
375  QCString baseName(4096);
376  QCString name;
377  QCString stext = s->text();
378  m_t << "<para>\n";
379  name.sprintf("%s%d", "msc_inline_mscgraph_", mscindex);
380  baseName.sprintf("%s%d",
381  (Config_getString(DOCBOOK_OUTPUT)+"/inline_mscgraph_").data(),
382  mscindex++
383  );
384  std::string fileName = baseName.str()+".msc";
385  std::ofstream file(fileName,std::ofstream::out | std::ofstream::binary);
386  if (!file.is_open())
387  {
388  err("Could not open file %s for writing\n",fileName.c_str());
389  }
390  QCString text = "msc {";
391  text+=stext;
392  text+="}";
393  file.write( text.data(), text.length() );
394  file.close();
395  writeMscFile(baseName,s);
396  m_t << "</para>\n";
397  if (Config_getBool(DOT_CLEANUP)) Dir().remove(fileName);
398  }
399  break;
401  {
402  static QCString docbookOutput = Config_getString(DOCBOOK_OUTPUT);
404  QCString shortName = baseName;
405  int i;
406  if ((i=shortName.findRev('/'))!=-1)
407  {
408  shortName=shortName.right((int)shortName.length()-i-1);
409  }
410  m_t << "<para>\n";
411  writePlantUMLFile(baseName,s);
412  m_t << "</para>\n";
413  }
414  break;
415  }
416 }
417 
419 {
420 DB_VIS_C
421  if (m_hide) return;
422  m_t << "<anchor xml:id=\"_" << stripPath(anc->file()) << "_1" << filterId(anc->anchor()) << "\"/>";
423 }
424 
426 {
427 DB_VIS_C
428  if (m_hide) return;
429  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
430  switch(inc->type())
431  {
433  {
434  m_t << "<literallayout><computeroutput>";
435  FileInfo cfi( inc->file().str() );
436  FileDef *fd = createFileDef( cfi.dirPath(), cfi.fileName() );
438  inc->text(),
439  langExt,
440  inc->isExample(),
441  inc->exampleFile(), fd);
442  delete fd;
443  m_t << "</computeroutput></literallayout>";
444  }
445  break;
446  case DocInclude::Include:
447  m_t << "<literallayout><computeroutput>";
449  inc->text(),
450  langExt,
451  inc->isExample(),
452  inc->exampleFile());
453  m_t << "</computeroutput></literallayout>";
454  break;
462  break;
464  m_t << inc->text();
465  break;
467  m_t << "<literallayout>";
468  filter(inc->text());
469  m_t << "</literallayout>";
470  break;
471  case DocInclude::Snippet:
472  m_t << "<literallayout><computeroutput>";
474  inc->context(),
475  extractBlock(inc->text(),inc->blockId()),
476  langExt,
477  inc->isExample(),
478  inc->exampleFile()
479  );
480  m_t << "</computeroutput></literallayout>";
481  break;
483  {
484  FileInfo cfi( inc->file().str() );
485  FileDef *fd = createFileDef( cfi.dirPath(), cfi.fileName() );
486  m_t << "<literallayout><computeroutput>";
488  inc->context(),
489  extractBlock(inc->text(),inc->blockId()),
490  langExt,
491  inc->isExample(),
492  inc->exampleFile(),
493  fd,
494  lineBlock(inc->text(),inc->blockId()),
495  -1, // endLine
496  FALSE, // inlineFragment
497  0, // memberDef
498  TRUE // show line number
499  );
500  delete fd;
501  m_t << "</computeroutput></literallayout>";
502  }
503  break;
506  err("Internal inconsistency: found switch SnippetDoc / IncludeDoc in file: %s"
507  "Please create a bug report\n",__FILE__);
508  break;
509  }
510 }
511 
513 {
514 DB_VIS_C
515  if (op->isFirst())
516  {
517  if (!m_hide)
518  {
519  m_t << "<programlisting linenumbering=\"unnumbered\">";
520  }
522  m_hide = TRUE;
523  }
524  QCString locLangExt = getFileNameExtension(op->includeFileName());
525  if (locLangExt.isEmpty()) locLangExt = m_langExt;
526  SrcLangExt langExt = getLanguageFromFileName(locLangExt);
527  if (op->type()!=DocIncOperator::Skip)
528  {
529  m_hide = popHidden();
530  if (!m_hide)
531  {
532  FileDef *fd = 0;
533  if (!op->includeFileName().isEmpty())
534  {
535  FileInfo cfi( op->includeFileName().str() );
536  fd = createFileDef( cfi.dirPath(), cfi.fileName() );
537  }
538 
539  getCodeParser(locLangExt).parseCode(m_ci,op->context(),
540  op->text(),langExt,op->isExample(),
541  op->exampleFile(),
542  fd, // fileDef
543  op->line(), // startLine
544  -1, // endLine
545  FALSE, // inline fragment
546  0, // memberDef
547  op->showLineNo() // show line numbers
548  );
549  if (fd) delete fd;
550  }
552  m_hide=TRUE;
553  }
554  if (op->isLast())
555  {
556  m_hide = popHidden();
557  if (!m_hide) m_t << "</programlisting>";
558  }
559  else
560  {
561  if (!m_hide) m_t << "\n";
562  }
563 }
564 
566 {
567 DB_VIS_C
568  if (m_hide) return;
569 
570  if (f->isInline()) m_t << "<inlinemediaobject>\n";
571  else m_t << " <mediaobject>\n";
572  m_t << " <imageobject>\n";
573  m_t << " <imagedata ";
574  m_t << "align=\"center\" valign=\"middle\" scalefit=\"0\" fileref=\"" << f->relPath() << f->name() << ".png\"/>\n";
575  m_t << " </imageobject>\n";
576  if (f->isInline()) m_t << "</inlinemediaobject>\n";
577  else m_t << " </mediaobject>\n";
578 }
579 
581 {
582 DB_VIS_C
583  if (m_hide) return;
584  m_t << "<indexterm><primary>";
585  filter(ie->entry());
586  m_t << "</primary></indexterm>\n";
587 }
588 
590 {
591 DB_VIS_C
592  // m_t << "<simplesect/>";
593 }
594 
596 {
597 DB_VIS_C
598  if (m_hide) return;
599  if (!cite->file().isEmpty()) startLink(cite->file(),filterId(cite->anchor()));
600  filter(cite->text());
601  if (!cite->file().isEmpty()) endLink();
602 }
603 
604 //--------------------------------------
605 // visitor functions for compound nodes
606 //--------------------------------------
607 
609 {
610 DB_VIS_C
611  if (m_hide) return;
612  if (l->isEnumList())
613  {
614  m_t << "<orderedlist>\n";
615  }
616  else
617  {
618  m_t << "<itemizedlist>\n";
619  }
620 }
621 
623 {
624 DB_VIS_C
625  if (m_hide) return;
626  if (l->isEnumList())
627  {
628  m_t << "</orderedlist>\n";
629  }
630  else
631  {
632  m_t << "</itemizedlist>\n";
633  }
634 }
635 
637 {
638 DB_VIS_C
639  if (m_hide) return;
640  m_t << "<listitem>";
641 }
642 
644 {
645 DB_VIS_C
646  if (m_hide) return;
647  m_t << "</listitem>";
648 }
649 
651 {
652 DB_VIS_C
653  if (m_hide) return;
654  m_t << "\n";
655  m_t << "<para>";
656 }
657 
659 {
660 DB_VIS_C
661  if (m_hide) return;
662  m_t << "</para>";
663  m_t << "\n";
664 }
665 
667 {
668 DB_VIS_C
669  //m_t << "<hr><h4><font color=\"red\">New parser:</font></h4>\n";
670 }
671 
673 {
674 DB_VIS_C
675  //m_t << "<hr><h4><font color=\"red\">Old parser:</font></h4>\n";
676 }
677 
679 {
680 DB_VIS_C
681  if (m_hide) return;
682  switch(s->type())
683  {
684  case DocSimpleSect::See:
685  if (m_insidePre)
686  {
687  m_t << "<formalpara><title>" << theTranslator->trSeeAlso() << "</title>\n";
688  }
689  else
690  {
691  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trSeeAlso()) << "</title>\n";
692  }
693  break;
695  if (m_insidePre)
696  {
697  m_t << "<formalpara><title>" << theTranslator->trReturns()<< "</title>\n";
698  }
699  else
700  {
701  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trReturns()) << "</title>\n";
702  }
703  break;
705  if (m_insidePre)
706  {
707  m_t << "<formalpara><title>" << theTranslator->trAuthor(TRUE, TRUE) << "</title>\n";
708  }
709  else
710  {
711  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trAuthor(TRUE, TRUE)) << "</title>\n";
712  }
713  break;
715  if (m_insidePre)
716  {
717  m_t << "<formalpara><title>" << theTranslator->trAuthor(TRUE, FALSE) << "</title>\n";
718  }
719  else
720  {
721  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trAuthor(TRUE, FALSE)) << "</title>\n";
722  }
723  break;
725  if (m_insidePre)
726  {
727  m_t << "<formalpara><title>" << theTranslator->trVersion() << "</title>\n";
728  }
729  else
730  {
731  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trVersion()) << "</title>\n";
732  }
733  break;
735  if (m_insidePre)
736  {
737  m_t << "<formalpara><title>" << theTranslator->trSince() << "</title>\n";
738  }
739  else
740  {
741  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trSince()) << "</title>\n";
742  }
743  break;
744  case DocSimpleSect::Date:
745  if (m_insidePre)
746  {
747  m_t << "<formalpara><title>" << theTranslator->trDate() << "</title>\n";
748  }
749  else
750  {
751  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trDate()) << "</title>\n";
752  }
753  break;
754  case DocSimpleSect::Note:
755  if (m_insidePre)
756  {
757  m_t << "<note><title>" << theTranslator->trNote() << "</title>\n";
758  }
759  else
760  {
761  m_t << "<note><title>" << convertToDocBook(theTranslator->trNote()) << "</title>\n";
762  }
763  break;
765  if (m_insidePre)
766  {
767  m_t << "<warning><title>" << theTranslator->trWarning() << "</title>\n";
768  }
769  else
770  {
771  m_t << "<warning><title>" << convertToDocBook(theTranslator->trWarning()) << "</title>\n";
772  }
773  break;
774  case DocSimpleSect::Pre:
775  if (m_insidePre)
776  {
777  m_t << "<formalpara><title>" << theTranslator->trPrecondition() << "</title>\n";
778  }
779  else
780  {
781  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trPrecondition()) << "</title>\n";
782  }
783  break;
784  case DocSimpleSect::Post:
785  if (m_insidePre)
786  {
787  m_t << "<formalpara><title>" << theTranslator->trPostcondition() << "</title>\n";
788  }
789  else
790  {
791  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trPostcondition()) << "</title>\n";
792  }
793  break;
795  if (m_insidePre)
796  {
797  m_t << "<formalpara><title>" << theTranslator->trCopyright() << "</title>\n";
798  }
799  else
800  {
801  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trCopyright()) << "</title>\n";
802  }
803  break;
805  if (m_insidePre)
806  {
807  m_t << "<formalpara><title>" << theTranslator->trInvariant() << "</title>\n";
808  }
809  else
810  {
811  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trInvariant()) << "</title>\n";
812  }
813  break;
815  // <remark> is miising the <title> possibility
816  if (m_insidePre)
817  {
818  m_t << "<formalpara><title>" << theTranslator->trRemarks() << "</title>\n";
819  }
820  else
821  {
822  m_t << "<formalpara><title>" << convertToDocBook(theTranslator->trRemarks()) << "</title>\n";
823  }
824  break;
826  if (m_insidePre)
827  {
828  m_t << "<caution><title>" << theTranslator->trAttention() << "</title>\n";
829  }
830  else
831  {
832  m_t << "<caution><title>" << convertToDocBook(theTranslator->trAttention()) << "</title>\n";
833  }
834  break;
835  case DocSimpleSect::User:
836  case DocSimpleSect::Rcs:
838  if (s->hasTitle())
839  m_t << "<formalpara>\n";
840  else
841  m_t << "<para>\n";
842  break;
843  }
844 }
845 
847 {
848 DB_VIS_C
849  if (m_hide) return;
850  switch(s->type())
851  {
852  case DocSimpleSect::User:
853  case DocSimpleSect::Rcs:
855  if (s->hasTitle())
856  m_t << "</formalpara>\n";
857  else
858  m_t << "</para>\n";
859  break;
860  case DocSimpleSect::Note:
861  m_t << "</note>\n";
862  break;
864  m_t << "</caution>\n";
865  break;
867  m_t << "</warning>\n";
868  break;
869  default:
870  m_t << "</formalpara>\n";
871  break;
872  }
873 }
874 
876 {
877 DB_VIS_C
878  if (m_hide) return;
879  if (t->hasTitle()) m_t << "<title>";
880 }
881 
883 {
884 DB_VIS_C
885  if (m_hide) return;
886  if (t->hasTitle()) m_t << "</title>";
887 }
888 
890 {
891 DB_VIS_C
892  if (m_hide) return;
893  m_t << "<itemizedlist>\n";
894 }
895 
897 {
898 DB_VIS_C
899  if (m_hide) return;
900  m_t << "</itemizedlist>\n";
901 }
902 
904 {
905 DB_VIS_C
906  if (m_hide) return;
907  m_t << "<listitem>";
908 }
909 
911 {
912 DB_VIS_C
913  if (m_hide) return;
914  m_t << "</listitem>\n";
915 }
916 
918 {
919 DB_VIS_C
920  if (m_hide) return;
921  m_t << "<section xml:id=\"_" << stripPath(s->file());
922  if (!s->anchor().isEmpty()) m_t << "_1" << s->anchor();
923  m_t << "\">\n";
924  m_t << "<title>";
925  filter(s->title());
926  m_t << "</title>\n";
927 }
928 
930 {
931 DB_VIS_C
932  m_t << "</section>\n";
933 }
934 
936 {
937 DB_VIS_C
938  if (m_hide) return;
939  // This will be handled in DocHtmlListItem
940 }
941 
943 {
944 DB_VIS_C
945  if (m_hide) return;
946  if (s->type()==DocHtmlList::Ordered)
947  m_t << "</orderedlist>\n";
948  else
949  m_t << "</itemizedlist>\n";
950 }
951 
953 {
954 DB_VIS_C
955  if (m_hide) return;
956  DocHtmlList *l = (DocHtmlList *)s->parent();
957  if (l->type()==DocHtmlList::Ordered)
958  {
959  bool isFirst = l->children().front().get()==s;
960  int value = 0;
961  QCString type;
962  for (const auto &opt : s->attribs())
963  {
964  if (opt.name=="value")
965  {
966  bool ok;
967  int val = opt.value.toInt(&ok);
968  if (ok) value = val;
969  }
970  }
971 
972  if (value>0 || isFirst)
973  {
974  for (const auto &opt : l->attribs())
975  {
976  if (opt.name=="type")
977  {
978  if (opt.value=="1")
979  type = " numeration=\"arabic\"";
980  else if (opt.value=="a")
981  type = " numeration=\"loweralpha\"";
982  else if (opt.value=="A")
983  type = " numeration=\"upperalpha\"";
984  else if (opt.value=="i")
985  type = " numeration=\"lowerroman\"";
986  else if (opt.value=="I")
987  type = " numeration=\"upperroman\"";
988  }
989  else if (value==0 && opt.name=="start")
990  {
991  bool ok;
992  int val = opt.value.toInt(&ok);
993  if (ok) value = val;
994  }
995  }
996  }
997 
998  if (value>0 && !isFirst)
999  {
1000  m_t << "</orderedlist>\n";
1001  }
1002  if (value>0 || isFirst)
1003  {
1004  m_t << "<orderedlist";
1005  if (!type.isEmpty()) m_t << type.data();
1006  if (value>0) m_t << " startingnumber=\"" << value << "\"";
1007  m_t << ">\n";
1008  }
1009  }
1010  else
1011  {
1012  m_t << "<itemizedlist>\n";
1013  }
1014  m_t << "<listitem>\n";
1015 }
1016 
1018 {
1019 DB_VIS_C
1020  if (m_hide) return;
1021  m_t << "</listitem>\n";
1022 }
1023 
1025 {
1026 DB_VIS_C
1027  if (m_hide) return;
1028  m_t << "<variablelist>\n";
1029 }
1030 
1032 {
1033 DB_VIS_C
1034  if (m_hide) return;
1035  m_t << "</variablelist>\n";
1036 }
1037 
1039 {
1040 DB_VIS_C
1041  if (m_hide) return;
1042  m_t << "<varlistentry><term>";
1043 }
1044 
1046 {
1047 DB_VIS_C
1048  if (m_hide) return;
1049  m_t << "</term>\n";
1050 }
1051 
1053 {
1054 DB_VIS_C
1055  if (m_hide) return;
1056  m_t << "<listitem>";
1057 }
1058 
1060 {
1061 DB_VIS_C
1062  if (m_hide) return;
1063  m_t << "</listitem></varlistentry>\n";
1064 }
1065 
1067 {
1068 DB_VIS_C
1069  m_bodySet.push(false);
1070  if (m_hide) return;
1071  m_t << "<informaltable frame=\"all\">\n";
1072  m_t << " <tgroup cols=\"" << (unsigned int)t->numColumns() << "\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n";
1073  for (uint i = 0; i <t->numColumns(); i++)
1074  {
1075  // do something with colwidth based of cell width specification (be aware of possible colspan in the header)?
1076  m_t << " <colspec colname='c" << i+1 << "'/>\n";
1077  }
1078 }
1079 
1081 {
1082 DB_VIS_C
1083  if (m_hide) return;
1084  if (m_bodySet.top()) m_t << " </tbody>\n";
1085  m_bodySet.pop();
1086  m_t << " </tgroup>\n";
1087  m_t << "</informaltable>\n";
1088 }
1089 
1091 {
1092 DB_VIS_C
1093  m_colCnt = 0;
1094  if (m_hide) return;
1095 
1096  if (tr->isHeading())
1097  {
1098  if (m_bodySet.top()) m_t << "</tbody>\n";
1099  m_bodySet.top() = false;
1100  m_t << "<thead>\n";
1101  }
1102  else if (!m_bodySet.top())
1103  {
1104  m_bodySet.top() = true;
1105  m_t << "<tbody>\n";
1106  }
1107 
1108  m_t << " <row ";
1109 
1110  for (const auto &opt : tr->attribs())
1111  {
1112  if (supportedHtmlAttribute(opt.name))
1113  {
1114  // process supported attributes only
1115  m_t << " " << opt.name << "='" << convertToDocBook(opt.value) << "'";
1116  }
1117  }
1118  m_t << ">\n";
1119 }
1120 
1122 {
1123 DB_VIS_C
1124  if (m_hide) return;
1125  m_t << "</row>\n";
1126  if (tr->isHeading())
1127  {
1128  m_t << "</thead><tbody>\n";
1129  m_bodySet.top() = true;
1130  }
1131 }
1132 
1134 {
1135 DB_VIS_C
1136  m_colCnt++;
1137  if (m_hide) return;
1138  m_t << "<entry";
1139 
1140  for (const auto &opt : c->attribs())
1141  {
1142  if (opt.name=="colspan")
1143  {
1144  m_t << " namest='c" << m_colCnt << "'";
1145  int cols = opt.value.toInt();
1146  m_colCnt += (cols - 1);
1147  m_t << " nameend='c" << m_colCnt << "'";
1148  }
1149  else if (opt.name=="rowspan")
1150  {
1151  int extraRows = opt.value.toInt() - 1;
1152  m_t << " morerows='" << extraRows << "'";
1153  }
1154  else if (opt.name=="class")
1155  {
1156  if (opt.value.left(13)=="markdownTable") // handle markdown generated attributes
1157  {
1158  if (opt.value.right(5)=="Right")
1159  {
1160  m_t << " align='right'";
1161  }
1162  else if (opt.value.right(4)=="Left")
1163  {
1164  m_t << " align='left'";
1165  }
1166  else if (opt.value.right(6)=="Center")
1167  {
1168  m_t << " align='center'";
1169  }
1170  // skip 'markdownTable*' value ending with "None"
1171  }
1172  else
1173  {
1174  m_t << " class='" << convertToDocBook(opt.value) << "'";
1175  }
1176  }
1177  else if (supportedHtmlAttribute(opt.name))
1178  {
1179  // process supported attributes only
1180  m_t << " " << opt.name << "='" << convertToDocBook(opt.value) << "'";
1181  }
1182  }
1183  m_t << ">";
1184 }
1185 
1187 {
1188 DB_VIS_C
1189  if (m_hide) return;
1190  m_t << "</entry>";
1191 }
1192 
1194 {
1195 DB_VIS_C
1196  if (m_hide) return;
1197  m_t << "<caption>";
1198 }
1199 
1201 {
1202 DB_VIS_C
1203  if (m_hide) return;
1204  m_t << "</caption>\n";
1205 }
1206 
1208 {
1209 DB_VIS_C
1210  if (m_hide) return;
1211  // TODO: to be implemented
1212 }
1213 
1215 {
1216 DB_VIS_C
1217  if (m_hide) return;
1218  // TODO: to be implemented
1219 }
1220 
1222 {
1223 DB_VIS_C
1224  if (m_hide) return;
1225  if (href->url().at(0) != '#')
1226  {
1227  m_t << "<link xlink:href=\"" << convertToDocBook(href->url()) << "\">";
1228  }
1229  else
1230  {
1231  startLink(href->file(),filterId(href->url().mid(1)));
1232  }
1233 }
1234 
1236 {
1237 DB_VIS_C
1238  if (m_hide) return;
1239  m_t << "</link>";
1240 }
1241 
1243 {
1244 DB_VIS_C
1245  if (m_hide) return;
1246  m_t << "<formalpara><title>";
1247 }
1248 
1250 {
1251 DB_VIS_C
1252  if (m_hide) return;
1253  m_t << "</title></formalpara>\n";
1254 }
1255 
1257 {
1258 DB_VIS_C
1259  if (img->type()==DocImage::DocBook)
1260  {
1261  if (m_hide) return;
1262  m_t << "\n";
1263  QCString baseName=img->name();
1264  int i;
1265  if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
1266  {
1267  baseName=baseName.right((int)baseName.length()-i-1);
1268  }
1269  visitPreStart(m_t, img->children(), img->hasCaption(), img->relPath() + baseName, img->width(), img->height(), img->isInlineImage());
1270  }
1271  else
1272  {
1273  pushHidden(m_hide);
1274  m_hide=TRUE;
1275  }
1276 }
1277 
1279 {
1280 DB_VIS_C
1281  if (img->type()==DocImage::DocBook)
1282  {
1283  if (m_hide) return;
1284  visitPostEnd(m_t, img -> hasCaption(),img -> isInlineImage());
1285  // copy the image to the output dir
1286  QCString baseName=img->name();
1287  int i;
1288  if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
1289  {
1290  baseName=baseName.right((int)baseName.length()-i-1);
1291  }
1292  QCString m_file;
1293  bool ambig;
1294  FileDef *fd=findFileDef(Doxygen::imageNameLinkedMap, baseName, ambig);
1295  if (fd)
1296  {
1297  m_file=fd->absFilePath();
1298  }
1299  copyFile(m_file,Config_getString(DOCBOOK_OUTPUT)+"/"+baseName);
1300  }
1301  else
1302  {
1303  m_hide = popHidden();
1304  }
1305 }
1306 
1308 {
1309 DB_VIS_C
1310  if (m_hide) return;
1311  startDotFile(df->file(),df->width(),df->height(),df->hasCaption(),df->children(),df->srcFile(),df->srcLine());
1312 }
1313 
1315 {
1316 DB_VIS_C
1317  if (m_hide) return;
1318  endDotFile(df->hasCaption());
1319 }
1320 
1322 {
1323 DB_VIS_C
1324  if (m_hide) return;
1325  startMscFile(df->file(),df->width(),df->height(),df->hasCaption(),df->children(),df->srcFile(),df->srcLine());
1326 }
1327 
1329 {
1330 DB_VIS_C
1331  if (m_hide) return;
1332  endMscFile(df->hasCaption());
1333 }
1335 {
1336 DB_VIS_C
1337  if (m_hide) return;
1338  startDiaFile(df->file(),df->width(),df->height(),df->hasCaption(),df->children(),df->srcFile(),df->srcLine());
1339 }
1340 
1342 {
1343 DB_VIS_C
1344  if (m_hide) return;
1345  endDiaFile(df->hasCaption());
1346 }
1347 
1349 {
1350 DB_VIS_C
1351  if (m_hide) return;
1352  startLink(lnk->file(),lnk->anchor());
1353 }
1354 
1356 {
1357 DB_VIS_C
1358  if (m_hide) return;
1359  endLink();
1360 }
1361 
1363 {
1364 DB_VIS_C
1365  if (m_hide) return;
1366  if (ref->isSubPage())
1367  {
1368  startLink(QCString(),ref->anchor());
1369  }
1370  else
1371  {
1372  if (!ref->file().isEmpty()) startLink(ref->file(),ref->anchor());
1373  }
1374 
1375  if (!ref->hasLinkText()) filter(ref->targetTitle());
1376 }
1377 
1379 {
1380 DB_VIS_C
1381  if (m_hide) return;
1382  if (!ref->file().isEmpty()) endLink();
1383 }
1384 
1386 {
1387 DB_VIS_C
1388  if (m_hide) return;
1389  //m_t << "<tocentry xml:idref=\"_" << stripPath(ref->file()) << "_1" << ref->anchor() << "\">";
1390  m_t << "<tocentry>";
1391 }
1392 
1394 {
1395 DB_VIS_C
1396  if (m_hide) return;
1397  m_t << "</tocentry>\n";
1398 }
1399 
1401 {
1402 DB_VIS_C
1403  if (m_hide) return;
1404  m_t << "<toc>\n";
1405 }
1406 
1408 {
1409 DB_VIS_C
1410  if (m_hide) return;
1411  m_t << "</toc>\n";
1412 }
1413 
1415 {
1416 DB_VIS_C
1417  if (m_hide) return;
1418  m_t << "\n";
1419  m_t << " <formalpara>\n";
1420  m_t << " <title>\n";
1421  switch(s->type())
1422  {
1427  default:
1428  ASSERT(0);
1429  }
1430  m_t << "</title>\n";
1431  m_t << " <para>\n";
1432  m_t << " <table frame=\"all\">\n";
1433  int ncols = 2;
1434  if (s->type() == DocParamSect::Param)
1435  {
1436  bool hasInOutSpecs = s->hasInOutSpecifier();
1437  bool hasTypeSpecs = s->hasTypeSpecifier();
1438  if (hasInOutSpecs && hasTypeSpecs) ncols += 2;
1439  else if (hasInOutSpecs || hasTypeSpecs) ncols += 1;
1440  }
1441  m_t << " <tgroup cols=\"" << ncols << "\" align=\"left\" colsep=\"1\" rowsep=\"1\">\n";
1442  for (int i = 1; i <= ncols; i++)
1443  {
1444  if (i == ncols) m_t << " <colspec colwidth=\"4*\"/>\n";
1445  else m_t << " <colspec colwidth=\"1*\"/>\n";
1446  }
1447  m_t << " <tbody>\n";
1448 }
1449 
1451 {
1452 DB_VIS_C
1453  if (m_hide) return;
1454  m_t << " </tbody>\n";
1455  m_t << " </tgroup>\n";
1456  m_t << " </table>\n";
1457  m_t << " </para>\n";
1458  m_t << " </formalpara>\n";
1459  m_t << " ";
1460 }
1461 
1463 {
1464 DB_VIS_C
1465  if (m_hide) return;
1466  m_t << " <row>\n";
1467 
1468  DocParamSect *sect = 0;
1469  if (pl->parent() && pl->parent()->kind()==DocNode::Kind_ParamSect)
1470  {
1471  sect=(DocParamSect*)pl->parent();
1472  }
1473 
1474  if (sect && sect->hasInOutSpecifier())
1475  {
1476  m_t << "<entry>";
1478  {
1479  if (pl->direction()==DocParamSect::In)
1480  {
1481  m_t << "in";
1482  }
1483  else if (pl->direction()==DocParamSect::Out)
1484  {
1485  m_t << "out";
1486  }
1487  else if (pl->direction()==DocParamSect::InOut)
1488  {
1489  m_t << "in,out";
1490  }
1491  }
1492  m_t << "</entry>";
1493  }
1494 
1495  if (sect && sect->hasTypeSpecifier())
1496  {
1497  m_t << "<entry>";
1498  for (const auto &type : pl->paramTypes())
1499  {
1500  if (type->kind()==DocNode::Kind_Word)
1501  {
1502  visit((DocWord*)type.get());
1503  }
1504  else if (type->kind()==DocNode::Kind_LinkedWord)
1505  {
1506  visit((DocLinkedWord*)type.get());
1507  }
1508  else if (type->kind()==DocNode::Kind_Sep)
1509  {
1510  m_t << " " << ((DocSeparator *)type.get())->chars() << " ";
1511  }
1512 
1513  }
1514  m_t << "</entry>";
1515  }
1516 
1517  if (pl->parameters().empty())
1518  {
1519  m_t << "<entry></entry>\n";
1520  }
1521  else
1522  {
1523  m_t << "<entry>";
1524  int cnt = 0;
1525  for (const auto &param : pl->parameters())
1526  {
1527  if (cnt)
1528  {
1529  m_t << ", ";
1530  }
1531  if (param->kind()==DocNode::Kind_Word)
1532  {
1533  visit((DocWord*)param.get());
1534  }
1535  else if (param->kind()==DocNode::Kind_LinkedWord)
1536  {
1537  visit((DocLinkedWord*)param.get());
1538  }
1539  cnt++;
1540  }
1541  m_t << "</entry>";
1542  }
1543  m_t << "<entry>";
1544 }
1545 
1547 {
1548 DB_VIS_C
1549  if (m_hide) return;
1550  m_t << "</entry>\n";
1551  m_t << " </row>\n";
1552 }
1553 
1555 {
1556 DB_VIS_C
1557  if (m_hide) return;
1558  if (x->title().isEmpty()) return;
1559  m_t << "<para><link linkend=\"_";
1560  m_t << stripPath(x->file()) << "_1" << x->anchor();
1561  m_t << "\">";
1562  filter(x->title());
1563  m_t << "</link>";
1564  m_t << " ";
1565 }
1566 
1568 {
1569 DB_VIS_C
1570  if (m_hide) return;
1571  if (x->title().isEmpty()) return;
1572  m_t << "</para>";
1573 }
1574 
1576 {
1577 DB_VIS_C
1578  if (m_hide) return;
1579  startLink(ref->file(),ref->anchor());
1580 }
1581 
1583 {
1584 DB_VIS_C
1585  if (m_hide) return;
1586  endLink();
1587  m_t << " ";
1588 }
1589 
1591 {
1592 DB_VIS_C
1593  // TODO: to be implemented
1594 }
1595 
1596 
1598 {
1599 DB_VIS_C
1600  // TODO: to be implemented
1601 }
1602 
1603 
1605 {
1606 DB_VIS_C
1607  if (m_hide) return;
1608  m_t << "<blockquote>";
1609 }
1610 
1612 {
1613 DB_VIS_C
1614  if (m_hide) return;
1615  m_t << "</blockquote>";
1616 }
1617 
1619 {
1620 DB_VIS_C
1621  // TODO: to be implemented
1622 }
1623 
1624 
1626 {
1627 DB_VIS_C
1628  // TODO: to be implemented
1629 }
1630 
1632 {
1633 DB_VIS_C
1634 }
1635 
1637 {
1638 DB_VIS_C
1639 }
1640 
1641 
1643 {
1644 DB_VIS_C
1645  m_t << convertToDocBook(str);
1646 }
1647 
1648 void DocbookDocVisitor::startLink(const QCString &file,const QCString &anchor)
1649 {
1650 DB_VIS_C
1651  m_t << "<link linkend=\"_" << stripPath(file);
1652  if (!anchor.isEmpty())
1653  {
1654  if (!file.isEmpty()) m_t << "_1";
1655  m_t << anchor;
1656  }
1657  m_t << "\">";
1658 }
1659 
1661 {
1662 DB_VIS_C
1663  m_t << "</link>";
1664 }
1665 
1667 {
1668 DB_VIS_C
1669  QCString shortName = baseName;
1670  int i;
1671  if ((i=shortName.findRev('/'))!=-1)
1672  {
1673  shortName=shortName.right((int)shortName.length()-i-1);
1674  }
1675  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1676  writeMscGraphFromFile(baseName+".msc",outDir,shortName,MSC_BITMAP,s->srcFile(),s->srcLine());
1677  visitPreStart(m_t, s->children(), s->hasCaption(), s->relPath() + shortName + ".png", s->width(), s->height());
1678  visitCaption(s->children());
1679  visitPostEnd(m_t, s->hasCaption());
1680 }
1681 
1683 {
1684 DB_VIS_C
1685  QCString shortName = baseName;
1686  int i;
1687  if ((i=shortName.findRev('/'))!=-1)
1688  {
1689  shortName=shortName.right((int)shortName.length()-i-1);
1690  }
1691  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1693  visitPreStart(m_t, s->children(), s->hasCaption(), s->relPath() + shortName + ".png", s->width(),s->height());
1694  visitCaption(s->children());
1695  visitPostEnd(m_t, s->hasCaption());
1696 }
1697 
1699  const QCString &width,
1700  const QCString &height,
1701  bool hasCaption,
1702  const DocNodeList &children,
1703  const QCString &srcFile,
1704  int srcLine
1705  )
1706 {
1707 DB_VIS_C
1708  QCString baseName=fileName;
1709  int i;
1710  if ((i=baseName.findRev('/'))!=-1)
1711  {
1712  baseName=baseName.right((int)baseName.length()-i-1);
1713  }
1714  if ((i=baseName.find('.'))!=-1)
1715  {
1716  baseName=baseName.left(i);
1717  }
1718  baseName.prepend("msc_");
1719  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1720  writeMscGraphFromFile(fileName,outDir,baseName,MSC_BITMAP,srcFile,srcLine);
1721  m_t << "<para>\n";
1722  visitPreStart(m_t, children, hasCaption, baseName + ".png", width, height);
1723 }
1724 
1725 void DocbookDocVisitor::endMscFile(bool hasCaption)
1726 {
1727 DB_VIS_C
1728  if (m_hide) return;
1729  visitPostEnd(m_t, hasCaption);
1730  m_t << "</para>\n";
1731 }
1732 
1734 {
1735 DB_VIS_C
1736  QCString shortName = baseName;
1737  int i;
1738  if ((i=shortName.findRev('/'))!=-1)
1739  {
1740  shortName=shortName.right((int)shortName.length()-i-1);
1741  }
1742  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1743  writeDiaGraphFromFile(baseName+".dia",outDir,shortName,DIA_BITMAP,s->srcFile(),s->srcLine());
1744  visitPreStart(m_t, s->children(), s->hasCaption(), shortName, s->width(),s->height());
1745  visitCaption(s->children());
1746  visitPostEnd(m_t, s->hasCaption());
1747 }
1748 
1750  const QCString &width,
1751  const QCString &height,
1752  bool hasCaption,
1753  const DocNodeList &children,
1754  const QCString &srcFile,
1755  int srcLine
1756  )
1757 {
1758 DB_VIS_C
1759  QCString baseName=fileName;
1760  int i;
1761  if ((i=baseName.findRev('/'))!=-1)
1762  {
1763  baseName=baseName.right((int)baseName.length()-i-1);
1764  }
1765  if ((i=baseName.find('.'))!=-1)
1766  {
1767  baseName=baseName.left(i);
1768  }
1769  baseName.prepend("dia_");
1770  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1771  writeDiaGraphFromFile(fileName,outDir,baseName,DIA_BITMAP,srcFile,srcLine);
1772  m_t << "<para>\n";
1773  visitPreStart(m_t, children, hasCaption, baseName + ".png", width, height);
1774 }
1775 
1776 void DocbookDocVisitor::endDiaFile(bool hasCaption)
1777 {
1778 DB_VIS_C
1779  if (m_hide) return;
1780  visitPostEnd(m_t, hasCaption);
1781  m_t << "</para>\n";
1782 }
1783 
1785 {
1786 DB_VIS_C
1787  QCString shortName = baseName;
1788  int i;
1789  if ((i=shortName.findRev('/'))!=-1)
1790  {
1791  shortName=shortName.right((int)shortName.length()-i-1);
1792  }
1793  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1794  writeDotGraphFromFile(baseName+".dot",outDir,shortName,GOF_BITMAP,s->srcFile(),s->srcLine());
1795  visitPreStart(m_t, s->children(), s->hasCaption(), s->relPath() + shortName + "." + getDotImageExtension(), s->width(),s->height());
1796  visitCaption(s->children());
1797  visitPostEnd(m_t, s->hasCaption());
1798 }
1799 
1801  const QCString &width,
1802  const QCString &height,
1803  bool hasCaption,
1804  const DocNodeList &children,
1805  const QCString &srcFile,
1806  int srcLine
1807  )
1808 {
1809 DB_VIS_C
1810  QCString baseName=fileName;
1811  int i;
1812  if ((i=baseName.findRev('/'))!=-1)
1813  {
1814  baseName=baseName.right((int)baseName.length()-i-1);
1815  }
1816  if ((i=baseName.find('.'))!=-1)
1817  {
1818  baseName=baseName.left(i);
1819  }
1820  baseName.prepend("dot_");
1821  QCString outDir = Config_getString(DOCBOOK_OUTPUT);
1822  QCString imgExt = getDotImageExtension();
1823  writeDotGraphFromFile(fileName,outDir,baseName,GOF_BITMAP,srcFile,srcLine);
1824  m_t << "<para>\n";
1825  visitPreStart(m_t, children, hasCaption, baseName + "." + imgExt, width, height);
1826 }
1827 
1828 void DocbookDocVisitor::endDotFile(bool hasCaption)
1829 {
1830 DB_VIS_C
1831  if (m_hide) return;
1832  m_t << "\n";
1833  visitPostEnd(m_t, hasCaption);
1834  m_t << "</para>\n";
1835 }
1836 
DocHtmlBlockQuote
Node representing an HTML blockquote
Definition: docparser.h:1433
DocAutoListItem
Node representing an item of a auto list
Definition: docparser.h:720
writeDiaGraphFromFile
void writeDiaGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, DiaOutputFormat format, const QCString &srcFile, int srcLine)
Definition: dia.cpp:26
PlantumlManager::writePlantUMLSource
QCString writePlantUMLSource(const QCString &outDir, const QCString &fileName, const QCString &content, OutputFormat format, const QCString &engine, const QCString &srcFile, int srcLine)
Write a PlantUML compatible file.
Definition: plantuml.cpp:26
getDotImageExtension
QCString getDotImageExtension()
Definition: util.cpp:7032
DocHRef
Node representing a Hypertext reference
Definition: docparser.h:936
DocStyleChange
Node representing a style change
Definition: docparser.h:343
DocVerbatim::isExample
bool isExample() const
Definition: docparser.h:522
DocVerbatim
Node representing a verbatim, unparsed text fragment
Definition: docparser.h:510
Translator::trCopyright
virtual QCString trCopyright()=0
DocParamList::paramTypes
DocNodeList & paramTypes()
Definition: docparser.h:1239
DocTitle
Node representing a simple section title
Definition: docparser.h:736
DocXRefItem::file
QCString file() const
Definition: docparser.h:754
Translator::trPostcondition
virtual QCString trPostcondition()=0
DocPara
Node representing a paragraph in the documentation tree
Definition: docparser.h:1178
DocImage::isInlineImage
bool isInlineImage() const
Definition: docparser.h:785
fileinfo.h
findFileDef
FileDef * findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig)
Definition: util.cpp:3222
DocInclude::HtmlInclude
@ HtmlInclude
Definition: docparser.h:566
DocParamSect::In
@ In
Definition: docparser.h:1160
DocSimpleSect::Return
@ Return
Definition: docparser.h:1116
DocImage::width
QCString width() const
Definition: docparser.h:781
DocVerbatim::text
QCString text() const
Definition: docparser.h:519
DocDotFile
Node representing a dot file
Definition: docparser.h:830
DocVisitor::pushHidden
void pushHidden(bool hide)
Definition: docvisitor.cpp:62
DocHtmlRow::attribs
const HtmlAttribList & attribs() const
Definition: docparser.h:1379
DocHtmlTable
Node representing a HTML table
Definition: docparser.h:1405
Translator::trNote
virtual QCString trNote()=0
DocIncOperator::showLineNo
bool showLineNo() const
Definition: docparser.h:629
Doxygen::imageNameLinkedMap
static FileNameLinkedMap * imageNameLinkedMap
Definition: doxygen.h:89
DocSimpleSect::Warning
@ Warning
Definition: docparser.h:1117
Dir::remove
bool remove(const std::string &path, bool acceptsAbsPath=true) const
Definition: dir.cpp:256
DocbookDocVisitor::visitPost
void visitPost(DocAutoList *)
Definition: docbookvisitor.cpp:622
Dir
Class representing a directory in the file system
Definition: dir.h:68
DocNode::Kind_Word
@ Kind_Word
Definition: docparser.h:101
DocRoot
Root node of documentation tree
Definition: docparser.h:1457
DocVerbatim::HtmlOnly
@ HtmlOnly
Definition: docparser.h:513
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
DocStyleChange::Center
@ Center
Definition: docparser.h:349
DocbookDocVisitor::startMscFile
void startMscFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const DocNodeList &children, const QCString &srcFile, int srcLine)
Definition: docbookvisitor.cpp:1698
DocImage::hasCaption
bool hasCaption() const
Definition: docparser.h:780
DocVisitor::popHidden
bool popHidden()
Definition: docvisitor.cpp:67
DocHtmlHeader
Node Html heading
Definition: docparser.h:957
GrowBuf::get
char * get()
Definition: growbuf.h:94
DIA_BITMAP
@ DIA_BITMAP
Definition: dia.h:23
DocParamSect::Out
@ Out
Definition: docparser.h:1160
DocSimpleSect::Unknown
@ Unknown
Definition: docparser.h:1116
DocStyleChange::Strike
@ Strike
Definition: docparser.h:356
DocbookDocVisitor::visitPostEnd
void visitPostEnd(TextStream &t, bool hasCaption, bool inlineImage=FALSE)
Definition: docbookvisitor.cpp:135
DocVerbatim::context
QCString context() const
Definition: docparser.h:520
QCString::findRev
int findRev(char c, int index=-1, bool cs=TRUE) const
Definition: qcstring.cpp:86
DocDiagramFileBase::height
QCString height() const
Definition: docparser.h:813
DocImage::relPath
QCString relPath() const
Definition: docparser.h:783
DocParamSect::InOut
@ InOut
Definition: docparser.h:1160
Translator::trExceptions
virtual QCString trExceptions()=0
DocInclude::Snippet
@ Snippet
Definition: docparser.h:567
DocHtmlListItem
Node representing a HTML list item
Definition: docparser.h:1286
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
DocHtmlTable::numColumns
size_t numColumns() const
Definition: docparser.h:1417
DocStyleChange::Del
@ Del
Definition: docparser.h:358
DocRef::isSubPage
bool isSubPage() const
Definition: docparser.h:906
DocVhdlFlow
Node representing a VHDL flow chart
Definition: docparser.h:860
DocInclude::isExample
bool isExample() const
Definition: docparser.h:588
DocVerbatim::Msc
@ Msc
Definition: docparser.h:513
MSC_BITMAP
@ MSC_BITMAP
Definition: msc.h:22
DocHRef::file
QCString file() const
Definition: docparser.h:944
DocDiagramFileBase::file
QCString file() const
Definition: docparser.h:809
DocHtmlDescData
Node representing a HTML description data
Definition: docparser.h:1303
DocSimpleSect::type
Type type() const
Definition: docparser.h:1122
copyFile
bool copyFile(const QCString &src, const QCString &dest)
Copies the contents of file with name src to the newly created file with name dest.
Definition: util.cpp:6439
DocHtmlDescTitle
Node representing a Html description item
Definition: docparser.h:973
DocAnchor::anchor
QCString anchor() const
Definition: docparser.h:308
DocInclude::XmlInclude
@ XmlInclude
Definition: docparser.h:568
DocVerbatim::PlantUML
@ PlantUML
Definition: docparser.h:513
msc.h
DocImage::DocBook
@ DocBook
Definition: docparser.h:774
DocbookDocVisitor::m_t
TextStream & m_t
Definition: docbookvisitor.h:174
DocEmoji
Node representing a n emoji
Definition: docparser.h:469
DocLinkedWord::anchor
QCString anchor() const
Definition: docparser.h:242
DocInternalRef::anchor
QCString anchor() const
Definition: docparser.h:927
DocStyleChange::Italic
@ Italic
Definition: docparser.h:347
DocMscFile
Node representing a msc file
Definition: docparser.h:840
SrcLangExt
SrcLangExt
Language as given by extension
Definition: types.h:41
Translator::trReturns
virtual QCString trReturns()=0
DocHtmlRow::isHeading
bool isHeading() const
Definition: docparser.h:1382
DocVerbatim::Code
@ Code
Definition: docparser.h:513
DocStyleChange::Bold
@ Bold
Definition: docparser.h:346
DocRef::targetTitle
QCString targetTitle() const
Definition: docparser.h:901
DocVerbatim::relPath
QCString relPath() const
Definition: docparser.h:524
growbuf.h
DocInclude::IncludeDoc
@ IncludeDoc
Definition: docparser.h:567
DocRef::anchor
QCString anchor() const
Definition: docparser.h:900
DocEmoji::name
QCString name() const
Definition: docparser.h:473
DocVerbatim::RtfOnly
@ RtfOnly
Definition: docparser.h:513
QCString::str
std::string str() const
Definition: qcstring.h:442
DocIncOperator::exampleFile
QCString exampleFile() const
Definition: docparser.h:639
DocParamSect::TemplateParam
@ TemplateParam
Definition: docparser.h:1156
DocVerbatim::type
Type type() const
Definition: docparser.h:518
DocIndexEntry::entry
QCString entry() const
Definition: docparser.h:691
DocbookDocVisitor::writePlantUMLFile
void writePlantUMLFile(const QCString &fileName, DocVerbatim *s)
Definition: docbookvisitor.cpp:1682
DocSecRefItem
Node representing a reference to a section
Definition: docparser.h:1023
DocStyleChange::Span
@ Span
Definition: docparser.h:354
PlantumlManager::instance
static PlantumlManager & instance()
Definition: plantuml.cpp:124
DocAnchor
Node representing an anchor
Definition: docparser.h:303
DocbookDocVisitor::DocbookDocVisitor
DocbookDocVisitor(TextStream &t, CodeOutputInterface &ci, const QCString &langExt)
Definition: docbookvisitor.cpp:153
DocXRefItem::anchor
QCString anchor() const
Definition: docparser.h:755
Translator::trPrecondition
virtual QCString trPrecondition()=0
DocRef::hasLinkText
bool hasLinkText() const
Definition: docparser.h:902
DocStyleChange::Superscript
@ Superscript
Definition: docparser.h:352
err
void err(const char *fmt,...)
Definition: message.cpp:203
DocbookDocVisitor::m_colCnt
int m_colCnt
Definition: docbookvisitor.h:180
DocbookDocVisitor::filter
void filter(const QCString &str)
Definition: docbookvisitor.cpp:1642
QCString::at
char & at(size_t i)
Returns a reference to the character at index i.
Definition: qcstring.h:477
DocInclude::text
QCString text() const
Definition: docparser.h:585
DocDiagramFileBase::srcLine
int srcLine() const
Definition: docparser.h:816
TextStream
Text streaming class that buffers data.
Definition: textstream.h:33
GrowBuf::addStr
void addStr(const QCString &s)
Definition: growbuf.h:57
DocText
Root node of a text fragment
Definition: docparser.h:1447
DocbookDocVisitor::endDiaFile
void endDiaFile(bool hasCaption)
Definition: docbookvisitor.cpp:1776
DocHtmlList::attribs
const HtmlAttribList & attribs() const
Definition: docparser.h:1101
DocVisitor
Abstract visitor that participates in the visitor pattern.
Definition: docvisitor.h:92
DocSimpleSect::Author
@ Author
Definition: docparser.h:1116
filename.h
DocSimpleSect::Note
@ Note
Definition: docparser.h:1117
DocURL::isEmail
bool isEmail() const
Definition: docparser.h:264
DocInclude::DocbookInclude
@ DocbookInclude
Definition: docparser.h:568
DocbookDocVisitor::~DocbookDocVisitor
~DocbookDocVisitor()
Definition: docbookvisitor.cpp:159
DocImage::name
QCString name() const
Definition: docparser.h:779
DocInclude::DontInclude
@ DontInclude
Definition: docparser.h:566
HtmlEntityMapper::instance
static HtmlEntityMapper * instance()
Returns the one and only instance of the HTML entity mapper
Definition: htmlentity.cpp:341
DocInclude::VerbInclude
@ VerbInclude
Definition: docparser.h:566
DocIncOperator::isFirst
bool isFirst() const
Definition: docparser.h:634
DocFormula
Node representing an item of a cross-referenced list
Definition: docparser.h:658
DocVerbatim::DocbookOnly
@ DocbookOnly
Definition: docparser.h:513
DocLinkedWord::word
QCString word() const
Definition: docparser.h:237
DocHtmlDescList
Node representing a Html description list
Definition: docparser.h:987
GrowBuf::addChar
void addChar(char c)
Definition: growbuf.h:54
DocVisitor::getCodeParser
CodeParserInterface & getCodeParser(const QCString &langExt)
Definition: docvisitor.cpp:41
GrowBuf
Class representing a string buffer optimised for growing.
Definition: growbuf.h:12
DocIncOperator
Node representing a include/dontinclude operator block
Definition: docparser.h:606
DocSymbol::symbol
SymType symbol() const
Definition: docparser.h:459
DocHtmlList::Ordered
@ Ordered
Definition: docparser.h:1096
DocIndexEntry
Node representing an entry in the index.
Definition: docparser.h:682
DocSimpleSect::User
@ User
Definition: docparser.h:1117
DocSecRefList
Node representing a list of section references
Definition: docparser.h:1048
Translator::trSeeAlso
virtual QCString trSeeAlso()=0
DocbookDocVisitor::m_ci
CodeOutputInterface & m_ci
Definition: docbookvisitor.h:175
DocLineBreak
Node representing a line break
Definition: docparser.h:272
DocbookDocVisitor::visit
void visit(DocWord *)
Definition: docbookvisitor.cpp:169
DocWord
Node representing a word
Definition: docparser.h:217
DocSymbol
Node representing a special symbol
Definition: docparser.h:385
DocbookDocVisitor::endLink
void endLink()
Definition: docbookvisitor.cpp:1660
uint
unsigned uint
Definition: qcstring.h:40
outputgen.h
dot.h
extractBlock
QCString extractBlock(const QCString &text, const QCString &marker)
Returns the section of text, in between a pair of markers.
Definition: util.cpp:6453
PlantumlManager::PUML_BITMAP
@ PUML_BITMAP
Definition: plantuml.h:44
EmojiEntityMapper::unicode
const char * unicode(int index) const
Access routine to the unicode sequence for the Emoji entity
Definition: emoji.cpp:1580
DocXRefItem
Node representing an item of a cross-referenced list
Definition: docparser.h:749
DocURL::url
QCString url() const
Definition: docparser.h:261
DocbookDocVisitor::m_hide
bool m_hide
Definition: docbookvisitor.h:177
createFileDef
FileDef * createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
Definition: filedef.cpp:190
DocImage
Node representing an image
Definition: docparser.h:771
DocHtmlCell::attribs
const HtmlAttribList & attribs() const
Definition: docparser.h:1330
DocNode::kind
virtual Kind kind() const =0
DocbookDocVisitor::startLink
void startLink(const QCString &file, const QCString &anchor)
Definition: docbookvisitor.cpp:1648
DocInclude::file
QCString file() const
Definition: docparser.h:577
docbookvisitor.h
Translator::trVersion
virtual QCString trVersion()=0
DocNodeList
std::vector< std::unique_ptr< DocNode > > DocNodeList
Definition: docparser.h:190
QCString::left
QCString left(size_t len) const
Definition: qcstring.h:212
DocURL
Node representing a URL (or email address)
Definition: docparser.h:256
message.h
writeDotGraphFromFile
void writeDotGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, GraphOutputFormat format, const QCString &srcFile, int srcLine)
Definition: dot.cpp:272
DocParamSect::Unspecified
@ Unspecified
Definition: docparser.h:1160
DocSimpleSect::See
@ See
Definition: docparser.h:1116
DocHtmlCaption
Node representing a HTML table caption
Definition: docparser.h:1352
DocIncOperator::isExample
bool isExample() const
Definition: docparser.h:638
DocStyleChange::Ins
@ Ins
Definition: docparser.h:359
DocInclude::SnipWithLines
@ SnipWithLines
Definition: docparser.h:567
DocParamList
Node representing a parameter list.
Definition: docparser.h:1228
DocSimpleSect::Rcs
@ Rcs
Definition: docparser.h:1117
Translator::trAttention
virtual QCString trAttention()=0
theTranslator
Translator * theTranslator
Definition: language.cpp:156
DocVisitor_Docbook
const int DocVisitor_Docbook
Definition: docvisitor.h:31
docbookgen.h
doxygen.h
DocSeparator
Node representing a separator
Definition: docparser.h:497
parserintf.h
DocInternalRef::file
QCString file() const
Definition: docparser.h:925
DocIncOperator::Skip
@ Skip
Definition: docparser.h:609
DocbookDocVisitor::m_insidePre
bool m_insidePre
Definition: docbookvisitor.h:176
DocbookDocVisitor::visitPre
void visitPre(DocAutoList *)
Definition: docbookvisitor.cpp:608
DocVerbatim::exampleFile
QCString exampleFile() const
Definition: docparser.h:523
DocParBlock
Node representing an block of paragraphs
Definition: docparser.h:1070
DocVerbatim::ManOnly
@ ManOnly
Definition: docparser.h:513
DocSimpleSectSep
Node representing a separator between two simple sections of the same type.
Definition: docparser.h:1139
language.h
stripPath
QCString stripPath(const QCString &s)
Definition: util.cpp:5318
DocFormula::name
QCString name() const
Definition: docparser.h:663
DocbookDocVisitor::startDiaFile
void startDiaFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const DocNodeList &children, const QCString &srcFile, int srcLine)
Definition: docbookvisitor.cpp:1749
DocHRef::url
QCString url() const
Definition: docparser.h:943
DocIncOperator::line
int line() const
Definition: docparser.h:628
DocStyleChange::Small
@ Small
Definition: docparser.h:350
DocCite
Node representing a citation of some bibliographic reference
Definition: docparser.h:321
Translator::trParameters
virtual QCString trParameters()=0
DocRef
Node representing a reference to some item
Definition: docparser.h:891
DocbookDocVisitor::writeMscFile
void writeMscFile(const QCString &fileName, DocVerbatim *s)
Definition: docbookvisitor.cpp:1666
DocSimpleSect::Date
@ Date
Definition: docparser.h:1116
docparser.h
getLanguageFromFileName
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
Definition: util.cpp:5574
TRUE
#define TRUE
Definition: qcstring.h:36
DocSimpleSect::Authors
@ Authors
Definition: docparser.h:1116
DocParamSect
Node representing a parameter section
Definition: docparser.h:1150
DocInclude::IncWithLines
@ IncWithLines
Definition: docparser.h:567
DocbookDocVisitor::writeDotFile
void writeDotFile(const QCString &fileName, DocVerbatim *s)
Definition: docbookvisitor.cpp:1784
supportedHtmlAttribute
static bool supportedHtmlAttribute(const QCString &name)
Definition: docbookvisitor.cpp:70
DocVerbatim::children
const DocNodeList & children() const
Definition: docparser.h:532
DocVerbatim::srcFile
QCString srcFile() const
Definition: docparser.h:534
DocbookDocVisitor::writeDiaFile
void writeDiaFile(const QCString &fileName, DocVerbatim *s)
Definition: docbookvisitor.cpp:1733
QCString::toInt
int toInt(bool *ok=0, int base=10) const
Definition: qcstring.cpp:244
DocHtmlList
Node representing a Html list
Definition: docparser.h:1093
filedef.h
Translator::trRemarks
virtual QCString trRemarks()=0
lineBlock
int lineBlock(const QCString &text, const QCString &marker)
Returns the line number of the line following the line with the marker.
Definition: util.cpp:6498
dia.h
DocNode::Kind_ParamSect
@ Kind_ParamSect
Definition: docparser.h:143
DocRef::file
QCString file() const
Definition: docparser.h:897
DocVerbatim::hasCaption
bool hasCaption() const
Definition: docparser.h:527
DocParamSect::type
Type type() const
Definition: docparser.h:1167
DocbookDocVisitor::m_bodySet
BoolStack m_bodySet
Definition: docbookvisitor.h:181
DocParamList::direction
DocParamSect::Direction direction() const
Definition: docparser.h:1241
DocSimpleSect
Node representing a simple section
Definition: docparser.h:1111
DocbookDocVisitor::endDotFile
void endDotFile(bool hasCaption)
Definition: docbookvisitor.cpp:1828
DocSection
Node representing a normal section
Definition: docparser.h:1001
HtmlEntityMapper::docbook
const char * docbook(DocSymbol::SymType symb) const
Access routine to the docbook code of the HTML entity
Definition: htmlentity.cpp:415
DB_VIS_C
#define DB_VIS_C
Definition: docbookvisitor.cpp:45
DocHorRuler
Node representing a horizontal ruler
Definition: docparser.h:288
filterId
static QCString filterId(const QCString &s)
Definition: docbookvisitor.cpp:51
DocVerbatim::language
QCString language() const
Definition: docparser.h:525
DocAnchor::file
QCString file() const
Definition: docparser.h:309
DocWord::word
QCString word() const
Definition: docparser.h:221
DocInclude
Node representing an included text block from file
Definition: docparser.h:563
DocStyleChange::Subscript
@ Subscript
Definition: docparser.h:351
DocFormula::relPath
QCString relPath() const
Definition: docparser.h:665
CodeParserInterface::parseCode
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.
DocAutoList
Node representing an auto List
Definition: docparser.h:703
Translator::trSince
virtual QCString trSince()=0
DocImage::height
QCString height() const
Definition: docparser.h:782
DocNode::Kind_Sep
@ Kind_Sep
Definition: docparser.h:154
DocWhiteSpace::chars
QCString chars() const
Definition: docparser.h:490
DocNode::Kind_LinkedWord
@ Kind_LinkedWord
Definition: docparser.h:142
DocXRefItem::title
QCString title() const
Definition: docparser.h:756
DocInternal
Node representing an internal section of documentation
Definition: docparser.h:1059
Translator::trInvariant
virtual QCString trInvariant()=0
DocParamSect::Exception
@ Exception
Definition: docparser.h:1156
writeMscGraphFromFile
void writeMscGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, MscOutputFormat format, const QCString &srcFile, int srcLine)
Definition: msc.cpp:92
DocHtmlList::type
Type type() const
Definition: docparser.h:1100
DocInclude::RtfInclude
@ RtfInclude
Definition: docparser.h:568
DocInclude::SnippetDoc
@ SnippetDoc
Definition: docparser.h:567
DocInclude::LatexInclude
@ LatexInclude
Definition: docparser.h:566
DocParamSect::hasTypeSpecifier
bool hasTypeSpecifier() const
Definition: docparser.h:1169
DocSection::title
QCString title() const
Definition: docparser.h:1008
DocEmoji::index
int index() const
Definition: docparser.h:474
QCString::mid
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition: qcstring.h:224
GOF_BITMAP
@ GOF_BITMAP
Definition: dotgraph.h:27
FileInfo::dirPath
std::string dirPath(bool absPath=true) const
Definition: fileinfo.cpp:137
DocCite::anchor
QCString anchor() const
Definition: docparser.h:329
DocVerbatim::engine
QCString engine() const
Definition: docparser.h:530
DocStyleChange::style
Style style() const
Definition: docparser.h:368
DocLinkedWord
Node representing a word that can be linked to something
Definition: docparser.h:231
DocStyleChange::Code
@ Code
Definition: docparser.h:348
DocDiagramFileBase::hasCaption
bool hasCaption() const
Definition: docparser.h:811
DocInclude::Include
@ Include
Definition: docparser.h:566
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
DocCite::file
QCString file() const
Definition: docparser.h:326
DocDiagramFileBase::width
QCString width() const
Definition: docparser.h:812
DocDiagramFileBase::srcFile
QCString srcFile() const
Definition: docparser.h:815
DocIncOperator::type
Type type() const
Definition: docparser.h:616
getLanguageFromCodeLang
SrcLangExt getLanguageFromCodeLang(QCString &fileName)
Routine to handle the language attribute of the \code command
Definition: util.cpp:5592
CodeOutputInterface
Output interface for code parser.
Definition: outputgen.h:61
DocParamSect::Param
@ Param
Definition: docparser.h:1156
DocSection::file
QCString file() const
Definition: docparser.h:1011
DocAutoList::isEnumList
bool isEnumList() const
Definition: docparser.h:708
DocSimpleSect::Copyright
@ Copyright
Definition: docparser.h:1117
DocDiaFile
Node representing a dia file
Definition: docparser.h:850
DocVerbatim::LatexOnly
@ LatexOnly
Definition: docparser.h:513
FileInfo
Minimal replacement for QFileInfo.
Definition: fileinfo.h:22
FileDef::absFilePath
virtual QCString absFilePath() const =0
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
DocStyleChange::Preformatted
@ Preformatted
Definition: docparser.h:353
Config_getString
#define Config_getString(name)
Definition: config.h:32
DocInclude::blockId
QCString blockId() const
Definition: docparser.h:587
DocSimpleSect::hasTitle
bool hasTitle() const
Definition: docparser.h:1129
DocStyleChange::enable
bool enable() const
Definition: docparser.h:370
convertToDocBook
QCString convertToDocBook(const QCString &s)
Definition: util.cpp:3999
DocSection::anchor
QCString anchor() const
Definition: docparser.h:1009
config.h
DocSimpleSect::Post
@ Post
Definition: docparser.h:1117
DocSimpleSect::Pre
@ Pre
Definition: docparser.h:1117
DocSimpleList
Node representing a simple list
Definition: docparser.h:1082
DocSimpleSect::Remark
@ Remark
Definition: docparser.h:1117
ASSERT
#define ASSERT(x)
Definition: qcstring.h:44
DocFormula::isInline
bool isInline()
Definition: docparser.h:668
getFileNameExtension
QCString getFileNameExtension(const QCString &fn)
Definition: util.cpp:5621
DocLinkedWord::file
QCString file() const
Definition: docparser.h:239
QCString::data
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:153
DocStyleChange::Underline
@ Underline
Definition: docparser.h:357
DocSimpleListItem
Node representing a simple list item
Definition: docparser.h:1266
emoji.h
DocIncOperator::includeFileName
QCString includeFileName() const
Definition: docparser.h:640
FileDef
A model of a file symbol.
Definition: filedef.h:73
DocInclude::type
Type type() const
Definition: docparser.h:584
DocbookDocVisitor::visitPreStart
void visitPreStart(TextStream &t, const DocNodeList &children, bool hasCaption, const QCString &name, const QCString &width, const QCString &height, bool inlineImage=FALSE)
Definition: docbookvisitor.cpp:92
CompAccept::children
const DocNodeList & children() const
Definition: docparser.h:207
DocWhiteSpace
Node representing some amount of white space
Definition: docparser.h:484
DocVerbatim::XmlOnly
@ XmlOnly
Definition: docparser.h:513
DocVerbatim::height
QCString height() const
Definition: docparser.h:529
DocParamSect::RetVal
@ RetVal
Definition: docparser.h:1156
plantuml.h
DocInclude::DontIncWithLines
@ DontIncWithLines
Definition: docparser.h:568
DocIncOperator::context
QCString context() const
Definition: docparser.h:632
DocStyleChange::Div
@ Div
Definition: docparser.h:355
EmojiEntityMapper::instance
static EmojiEntityMapper * instance()
Returns the one and only instance of the Emoji entity mapper
Definition: emoji.cpp:1536
FileInfo::fileName
std::string fileName() const
Definition: fileinfo.cpp:118
DocNode::parent
DocNode * parent() const
Definition: docparser.h:166
DocbookDocVisitor::m_langExt
QCString m_langExt
Definition: docbookvisitor.h:179
DocHtmlCell
Node representing a HTML table cell
Definition: docparser.h:1316
DocInclude::extension
QCString extension() const
Definition: docparser.h:578
DocCite::text
QCString text() const
Definition: docparser.h:330
PlantumlManager::generatePlantUMLOutput
void generatePlantUMLOutput(const QCString &baseName, const QCString &outDir, OutputFormat format)
Convert a PlantUML file to an image.
Definition: plantuml.cpp:91
Translator::trDate
virtual QCString trDate()=0
htmlentity.h
GrowBuf::clear
void clear()
Definition: growbuf.h:53
DocParamSect::hasInOutSpecifier
bool hasInOutSpecifier() const
Definition: docparser.h:1168
DocInternalRef
Node representing an internal reference to some item
Definition: docparser.h:919
DocVerbatim::width
QCString width() const
Definition: docparser.h:528
DocParamList::parameters
DocNodeList & parameters()
Definition: docparser.h:1238
DocStyleChange::S
@ S
Definition: docparser.h:360
DocbookDocVisitor::startDotFile
void startDotFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const DocNodeList &children, const QCString &srcFile, int srcLine)
Definition: docbookvisitor.cpp:1800
DocbookDocVisitor::visitCaption
void visitCaption(const DocNodeList &children)
Definition: docbookvisitor.cpp:87
DocVerbatim::Verbatim
@ Verbatim
Definition: docparser.h:513
util.h
A bunch of utility functions.
DocTitle::hasTitle
bool hasTitle() const
Definition: docparser.h:743
DocImage::type
Type type() const
Definition: docparser.h:778
DocVerbatim::srcLine
int srcLine() const
Definition: docparser.h:535
DocHtmlRow
Node representing a HTML table row
Definition: docparser.h:1371
DocInclude::ManInclude
@ ManInclude
Definition: docparser.h:568
QCString::right
QCString right(size_t len) const
Definition: qcstring.h:217
QCString::prepend
QCString & prepend(const char *s)
Definition: qcstring.h:339
DocSimpleSect::Invar
@ Invar
Definition: docparser.h:1117
QCString::sprintf
QCString & sprintf(const char *format,...)
Definition: qcstring.cpp:24
DocIncOperator::isLast
bool isLast() const
Definition: docparser.h:635
DocbookDocVisitor::endMscFile
void endMscFile(bool hasCaption)
Definition: docbookvisitor.cpp:1725
DocSimpleSect::Version
@ Version
Definition: docparser.h:1116
Translator::trTemplateParameters
virtual QCString trTemplateParameters()=0
DocInclude::exampleFile
QCString exampleFile() const
Definition: docparser.h:589
DocIncOperator::text
QCString text() const
Definition: docparser.h:630
FALSE
#define FALSE
Definition: qcstring.h:33
DocSimpleSect::Since
@ Since
Definition: docparser.h:1116
Translator::trReturnValues
virtual QCString trReturnValues()=0
Translator::trAuthor
virtual QCString trAuthor(bool first_capital, bool singular)=0
Translator::trWarning
virtual QCString trWarning()=0
DocSimpleSect::Attention
@ Attention
Definition: docparser.h:1117
DocInclude::context
QCString context() const
Definition: docparser.h:586
DocHtmlListItem::attribs
const HtmlAttribList & attribs() const
Definition: docparser.h:1293
DocVerbatim::Dot
@ Dot
Definition: docparser.h:513
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108