Doxygen
Loading...
Searching...
No Matches
printdocvisitor.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2026 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#ifndef PRINTDOCVISITOR_H
17#define PRINTDOCVISITOR_H
18
19#include "docnode.h"
20#include "emoji.h"
21#include "htmlentity.h"
22#include "message.h"
23
24/*! Visitor implementation for pretty printing */
26{
27 public:
29
30 //--------------------------------------
31
32 void operator()(const DocWord &w)
33 {
35 printf("%s",qPrint(w.word()));
36 }
38 {
40 printf("%s",qPrint(w.word()));
41 }
43 {
45 if (m_insidePre)
46 {
47 printf("%s",qPrint(w.chars()));
48 }
49 else
50 {
51 printf(" ");
52 }
53 }
54 void operator()(const DocSymbol &s)
55 {
57 const char *res = HtmlEntityMapper::instance().utf8(s.symbol(),true);
58 if (res)
59 {
60 printf("%s",res);
61 }
62 else
63 {
64 printf("print: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance().html(s.symbol(),true));
65 }
66 }
67 void operator()(const DocEmoji &s)
68 {
70 const char *res = EmojiEntityMapper::instance().name(s.index());
71 if (res)
72 {
73 printf("%s",res);
74 }
75 else
76 {
77 printf("print: non supported emoji found: %s\n",qPrint(s.name()));
78 }
79 }
80 void operator()(const DocURL &u)
81 {
83 printf("%s",qPrint(u.url()));
84 }
86 {
88 printf("<br/>");
89 }
90 void operator()(const DocHorRuler &)
91 {
93 printf("<hr>");
94 }
96 {
98 switch (s.style())
99 {
101 if (s.enable()) printf("<bold>"); else printf("</bold>");
102 break;
104 if (s.enable()) printf("<s>"); else printf("</s>");
105 break;
107 if (s.enable()) printf("<strike>"); else printf("</strike>");
108 break;
110 if (s.enable()) printf("<del>"); else printf("</del>");
111 break;
113 if (s.enable()) printf("<underline>"); else printf("</underline>");
114 break;
116 if (s.enable()) printf("<ins>"); else printf("</ins>");
117 break;
119 if (s.enable()) printf("<italic>"); else printf("</italic>");
120 break;
122 if (s.enable()) printf("<kbd>"); else printf("</kbd>");
123 break;
125 if (s.enable()) printf("<tt>"); else printf("</tt>");
126 break;
128 if (s.enable()) printf("<code>"); else printf("</code>");
129 break;
131 if (s.enable()) printf("<sub>"); else printf("</sub>");
132 break;
134 if (s.enable()) printf("<sup>"); else printf("</sup>");
135 break;
137 if (s.enable()) printf("<center>"); else printf("</center>");
138 break;
140 if (s.enable()) printf("<small>"); else printf("</small>");
141 break;
143 if (s.enable()) printf("<cite>"); else printf("</cite>");
144 break;
146 if (s.enable()) printf("<pre>"); else printf("</pre>");
147 break;
149 if (s.enable()) printf("<div>"); else printf("</div>");
150 break;
152 if (s.enable()) printf("<span>"); else printf("</span>");
153 break;
154 }
155 }
156 void operator()(const DocVerbatim &s)
157 {
158 indent_leaf();
159 switch(s.type())
160 {
161 case DocVerbatim::Code: printf("<code>"); break;
162 case DocVerbatim::Verbatim: printf("<verbatim>"); break;
163 case DocVerbatim::JavaDocLiteral: printf("<javadocliteral>"); break;
164 case DocVerbatim::JavaDocCode: printf("<javadoccode>"); break;
165 case DocVerbatim::HtmlOnly: printf("<htmlonly>"); break;
166 case DocVerbatim::RtfOnly: printf("<rtfonly>"); break;
167 case DocVerbatim::ManOnly: printf("<manonly>"); break;
168 case DocVerbatim::LatexOnly: printf("<latexonly>"); break;
169 case DocVerbatim::XmlOnly: printf("<xmlonly>"); break;
170 case DocVerbatim::DocbookOnly: printf("<docbookonly>"); break;
171 case DocVerbatim::Dot: printf("<dot>"); break;
172 case DocVerbatim::Msc: printf("<msc>"); break;
173 case DocVerbatim::PlantUML: printf("<plantuml>"); break;
174 case DocVerbatim::Mermaid: printf("<mermaid>"); break;
175 }
176 printf("%s",qPrint(s.text()));
177 switch(s.type())
178 {
179 case DocVerbatim::Code: printf("</code>"); break;
180 case DocVerbatim::Verbatim: printf("</verbatim>"); break;
181 case DocVerbatim::JavaDocLiteral: printf("</javadocliteral>"); break;
182 case DocVerbatim::JavaDocCode: printf("</javadoccode>"); break;
183 case DocVerbatim::HtmlOnly: printf("</htmlonly>"); break;
184 case DocVerbatim::RtfOnly: printf("</rtfonly>"); break;
185 case DocVerbatim::ManOnly: printf("</manonly>"); break;
186 case DocVerbatim::LatexOnly: printf("</latexonly>"); break;
187 case DocVerbatim::XmlOnly: printf("</xmlonly>"); break;
188 case DocVerbatim::DocbookOnly: printf("</docbookonly>"); break;
189 case DocVerbatim::Dot: printf("</dot>"); break;
190 case DocVerbatim::Msc: printf("</msc>"); break;
191 case DocVerbatim::PlantUML: printf("</plantuml>"); break;
192 case DocVerbatim::Mermaid: printf("</mermaid>"); break;
193 }
194 }
195 void operator()(const DocAnchor &a)
196 {
197 indent_leaf();
198 printf("<anchor name=\"%s\"/>",qPrint(a.anchor()));
199 }
200 void operator()(const DocInclude &inc)
201 {
202 indent_leaf();
203 printf("<include file=\"%s\" type=\"",qPrint(inc.file()));
204 switch(inc.type())
205 {
206 case DocInclude::Include: printf("include"); break;
207 case DocInclude::IncWithLines: printf("incwithlines"); break;
208 case DocInclude::DontInclude: printf("dontinclude"); break;
209 case DocInclude::DontIncWithLines: printf("dontinwithlines"); break;
211 printf("htmlinclude");
212 if (inc.isBlock()) printf(" block=\"yes\"");
213 break;
214 case DocInclude::LatexInclude: printf("latexinclude"); break;
215 case DocInclude::RtfInclude: printf("rtfinclude"); break;
216 case DocInclude::DocbookInclude: printf("docbookinclude"); break;
217 case DocInclude::ManInclude: printf("maninclude"); break;
218 case DocInclude::XmlInclude: printf("xmlinclude"); break;
219 case DocInclude::VerbInclude: printf("verbinclude"); break;
220 case DocInclude::Snippet: printf("snippet"); break;
221 case DocInclude::SnippetWithLines: printf("snipwithlines"); break;
222 }
223 printf("\"/>");
224 }
226 {
227 indent_leaf();
228 printf("<incoperator pattern=\"%s\" type=\"",qPrint(op.pattern()));
229 switch(op.type())
230 {
231 case DocIncOperator::Line: printf("line"); break;
232 case DocIncOperator::Skip: printf("skip"); break;
233 case DocIncOperator::SkipLine: printf("skipline"); break;
234 case DocIncOperator::Until: printf("until"); break;
235 }
236 printf("\"/>");
237 }
238 void operator()(const DocFormula &f)
239 {
240 indent_leaf();
241 printf("<formula name=%s text=%s/>",qPrint(f.name()),qPrint(f.text()));
242 }
244 {
245 indent_leaf();
246 printf("<indexentry>%s</indexentry\n",qPrint(i.entry()));
247 }
249 {
250 indent_leaf();
251 printf("<simplesectsep/>");
252 }
253 void operator()(const DocCite &cite)
254 {
255 indent_leaf();
256 auto opt = cite.option();
257 DString txt;
258 if (!cite.file().empty())
259 {
260 txt = cite.getText();
261 }
262 else
263 {
264 if (!opt.noPar()) txt += "[";
265 txt += cite.target();
266 if (!opt.noPar()) txt += "]";
267 }
268 printf("<cite ref=\"%s\" file=\"%s\" "
269 "anchor=\"%s\" text=\"%s\""
270 "/>\n",
271 qPrint(cite.ref()),qPrint(cite.file()),qPrint(cite.anchor()),
272 qPrint(txt));
273 }
275 {
276 indent_leaf();
277 printf("<sep/>");
278 }
279
280 //--------------------------------------
281 template<class T>
282 void visitChildren(const T &t)
283 {
284 for (const auto &child : t.children())
285 {
286 std::visit(*this, child);
287 }
288 }
289
290 void operator()(const DocAutoList &l)
291 {
292 indent_pre();
293 if (l.isEnumList())
294 {
295 printf("<ol>\n");
296 }
297 else
298 {
299 printf("<ul>\n");
300 }
301 visitChildren(l);
302 indent_post();
303 if (l.isEnumList())
304 {
305 printf("</ol>\n");
306 }
307 else
308 {
309 printf("</ul>\n");
310 }
311 }
313 {
314 indent_pre();
315 switch (li.itemNumber())
316 {
317 case DocAutoList::Unchecked: // unchecked
318 printf("<li class=\"unchecked\">\n");
319 break;
320 case DocAutoList::Checked_x: // checked with x
321 case DocAutoList::Checked_X: // checked with X
322 printf("<li class=\"checked\">\n");
323 break;
324 default:
325 printf("<li>\n");
326 break;
327 }
328 visitChildren(li);
329 indent_post();
330 printf("</li>\n");
331 }
332 void operator()(const DocPara &p)
333 {
334 indent_pre();
335 printf("<para>\n");
336 visitChildren(p);
337 indent_post();
338 printf("</para>\n");
339 }
340 void operator()(const DocRoot &r)
341 {
342 indent_pre();
343 printf("<root>\n");
344 visitChildren(r);
345 indent_post();
346 printf("</root>\n");
347 }
349 {
350 indent_pre();
351 printf("<simplesect type=");
352 switch(s.type())
353 {
354 case DocSimpleSect::See: printf("see"); break;
355 case DocSimpleSect::Return: printf("return"); break;
356 case DocSimpleSect::Author: printf("author"); break;
357 case DocSimpleSect::Authors: printf("authors"); break;
358 case DocSimpleSect::Version: printf("version"); break;
359 case DocSimpleSect::Since: printf("since"); break;
360 case DocSimpleSect::Date: printf("date"); break;
361 case DocSimpleSect::Note: printf("note"); break;
362 case DocSimpleSect::Warning: printf("warning"); break;
363 case DocSimpleSect::Pre: printf("pre"); break;
364 case DocSimpleSect::Post: printf("post"); break;
365 case DocSimpleSect::Copyright: printf("copyright"); break;
366 case DocSimpleSect::Invar: printf("invar"); break;
367 case DocSimpleSect::Remark: printf("remark"); break;
368 case DocSimpleSect::Attention: printf("attention"); break;
369 case DocSimpleSect::Important: printf("important"); break;
370 case DocSimpleSect::User: printf("user"); break;
371 case DocSimpleSect::Rcs: printf("rcs"); break;
372 case DocSimpleSect::Unknown: printf("unknown"); break;
373 }
374 printf(">\n");
375 if (s.title())
376 {
377 std::visit(*this, *s.title());
378 }
379 visitChildren(s);
380 indent_post();
381 printf("</simplesect>\n");
382 }
383 void operator()(const DocTitle &t)
384 {
385 indent_pre();
386 printf("<title>\n");
387 visitChildren(t);
388 indent_post();
389 printf("</title>\n");
390 }
392 {
393 indent_pre();
394 printf("<ul>\n");
395 visitChildren(l);
396 indent_post();
397 printf("</ul>\n");
398 }
400 {
401 indent_pre();
402 printf("<li>\n");
403 if (li.paragraph())
404 {
405 visit(*this,*li.paragraph());
406 }
407 indent_post();
408 printf("</li>\n");
409 }
410 void operator()(const DocSection &s)
411 {
412 indent_pre();
413 printf("<sect%d>\n",s.level());
414 if (s.title())
415 {
416 std::visit(*this, *s.title());
417 }
418 visitChildren(s);
419 indent_post();
420 printf("</sect%d>\n",s.level());
421 }
422 void operator()(const DocHtmlList &s)
423 {
424 indent_pre();
425 if (s.type()==DocHtmlList::Ordered)
426 {
427 printf("<ol");
428 for (const auto &opt : s.attribs())
429 {
430 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
431 }
432 printf(">\n");
433 }
434 else
435 {
436 printf("<ul>\n");
437 }
438 visitChildren(s);
439 indent_post();
440 if (s.type()==DocHtmlList::Ordered)
441 {
442 printf("</ol>\n");
443 }
444 else
445 {
446 printf("</ul>\n");
447 }
448 }
450 {
451 indent_pre();
452 printf("<li");
453 for (const auto &opt : li.attribs())
454 {
455 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
456 }
457 printf(">\n");
458 visitChildren(li);
459 indent_post();
460 printf("</li>\n");
461 }
463 {
464 indent_pre();
465 printf("<dl>\n");
466 visitChildren(l);
467 indent_post();
468 printf("</dl>\n");
469 }
471 {
472 indent_pre();
473 printf("<dt>\n");
474 visitChildren(dt);
475 indent_post();
476 printf("</dt>\n");
477 }
479 {
480 indent_pre();
481 printf("<dd>\n");
482 visitChildren(dd);
483 indent_post();
484 printf("</dd>\n");
485 }
487 {
488 indent_pre();
489 printf("<table rows=\"%zu\" cols=\"%zu\">\n",
490 t.numRows(),t.numColumns());
491 visitChildren(t);
492 if (t.caption())
493 {
494 std::visit(*this, *t.caption());
495 }
496 indent_post();
497 printf("</table>\n");
498 }
499 void operator()(const DocHtmlRow &tr)
500 {
501 indent_pre();
502 printf("<tr>\n");
503 visitChildren(tr);
504 indent_post();
505 printf("</tr>\n");
506 }
507 void operator()(const DocHtmlCell &c)
508 {
509 indent_pre();
510 printf("<t%c>\n",c.isHeading()?'h':'d');
511 visitChildren(c);
512 indent_post();
513 printf("</t%c>\n",c.isHeading()?'h':'d');
514 }
516 {
517 indent_pre();
518 printf("<caption>\n");
519 visitChildren(c);
520 indent_post();
521 printf("</caption>\n");
522 }
523 void operator()(const DocInternal &i)
524 {
525 indent_pre();
526 printf("<internal>\n");
527 visitChildren(i);
528 indent_post();
529 printf("</internal>\n");
530 }
531 void operator()(const DocHRef &href)
532 {
533 indent_pre();
534 printf("<a url=\"%s\">\n",qPrint(href.url()));
535 visitChildren(href);
536 indent_post();
537 printf("</a>\n");
538 }
539 void operator()(const DocHtmlSummary &summary)
540 {
541 indent_pre();
542 printf("<summary");
543 for (const auto &opt : summary.attribs())
544 {
545 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
546 }
547 printf(">\n");
548 visitChildren(summary);
549 indent_post();
550 printf("</summary>\n");
551 }
553 {
554 indent_pre();
555 printf("<details");
556 for (const auto &opt : details.attribs())
557 {
558 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
559 }
560 printf(">\n");
561 auto summary = details.summary();
562 if (summary)
563 {
564 std::visit(*this,*summary);
565 }
567 indent_post();
568 printf("</details>\n");
569 }
570 void operator()(const DocHtmlHeader &header)
571 {
572 indent_pre();
573 printf("<h%d>\n",header.level());
574 visitChildren(header);
575 indent_post();
576 printf("</h%d>\n",header.level());
577 }
578 void operator()(const DocImage &img)
579 {
580 indent_pre();
581 printf("<image src=\"%s\" type=\"",qPrint(img.name()));
582 switch(img.type())
583 {
584 case DocImage::Html: printf("html"); break;
585 case DocImage::Latex: printf("latex"); break;
586 case DocImage::Rtf: printf("rtf"); break;
587 case DocImage::DocBook: printf("docbook"); break;
588 case DocImage::Xml: printf("xml"); break;
589 }
590 printf("\" %s %s inline=\"%s\">\n",qPrint(img.width()),qPrint(img.height()),img.isInlineImage() ? "yes" : "no");
591 visitChildren(img);
592 indent_post();
593 printf("</image>\n");
594 }
595 void operator()(const DocDotFile &df)
596 {
597 indent_pre();
598 printf("<dotfile src=\"%s\">\n",qPrint(df.name()));
599 visitChildren(df);
600 indent_post();
601 printf("</dotfile>\n");
602 }
603 void operator()(const DocMscFile &df)
604 {
605 indent_pre();
606 printf("<mscfile src=\"%s\">\n",qPrint(df.name()));
607 visitChildren(df);
608 indent_post();
609 printf("</mscfile>\n");
610 }
611 void operator()(const DocDiaFile &df)
612 {
613 indent_pre();
614 printf("<diafile src=\"%s\">\n",qPrint(df.name()));
615 visitChildren(df);
616 indent_post();
617 printf("</diafile>\n");
618 }
620 {
621 indent_pre();
622 printf("<plantumlfile src=\"%s\">\n",qPrint(df.name()));
623 visitChildren(df);
624 indent_post();
625 printf("</plantumlfile>\n");
626 }
628 {
629 indent_pre();
630 printf("<mermaidfile src=\"%s\">\n",qPrint(df.name()));
631 visitChildren(df);
632 indent_post();
633 printf("</mermaidfile>\n");
634 }
635 void operator()(const DocLink &lnk)
636 {
637 indent_pre();
638 printf("<link ref=\"%s\" file=\"%s\" anchor=\"%s\">\n",
639 qPrint(lnk.ref()),qPrint(lnk.file()),qPrint(lnk.anchor()));
640 visitChildren(lnk);
641 indent_post();
642 printf("</link>\n");
643 }
644 void operator()(const DocRef &ref)
645 {
646 indent_pre();
647 printf("<ref ref=\"%s\" file=\"%s\" "
648 "anchor=\"%s\" targetTitle=\"%s\""
649 " hasLinkText=\"%s\" refToAnchor=\"%s\" refToSection=\"%s\" refToTable=\"%s\">\n",
650 qPrint(ref.ref()),qPrint(ref.file()),qPrint(ref.anchor()),
651 qPrint(ref.targetTitle()),ref.hasLinkText()?"yes":"no",
652 ref.refToAnchor()?"yes":"no", ref.refToSection()?"yes":"no",
653 ref.refToTable()?"yes":"no");
654 visitChildren(ref);
655 indent_post();
656 printf("</ref>\n");
657 }
658 void operator()(const DocSecRefItem &ref)
659 {
660 indent_pre();
661 printf("<secrefitem target=\"%s\">\n",qPrint(ref.target()));
662 visitChildren(ref);
663 indent_post();
664 printf("</secrefitem>\n");
665 }
666 void operator()(const DocSecRefList &rl)
667 {
668 indent_pre();
669 printf("<secreflist>\n");
670 visitChildren(rl);
671 indent_post();
672 printf("</secreflist>\n");
673 }
674 void operator()(const DocParamList &pl)
675 {
676 indent_pre();
677 printf("<parameters>");
678 if (!pl.parameters().empty())
679 {
680 printf("<param>");
681 for (const auto &param : pl.parameters())
682 {
683 std::visit(*this,param);
684 }
685 printf("</param>");
686 }
687 printf("\n");
688 indent_post();
689 printf("</parameters>\n");
690 }
691 void operator()(const DocParamSect &ps)
692 {
693 indent_pre();
694 printf("<paramsect type=");
695 switch (ps.type())
696 {
697 case DocParamSect::Param: printf("param"); break;
698 case DocParamSect::RetVal: printf("retval"); break;
699 case DocParamSect::Exception: printf("exception"); break;
700 case DocParamSect::TemplateParam: printf("templateparam"); break;
701 case DocParamSect::Unknown: printf("unknown"); break;
702 }
703 printf(">\n");
704 visitChildren(ps);
705 indent_post();
706 printf("</paramsect>\n");
707 }
708 void operator()(const DocXRefItem &x)
709 {
710 indent_pre();
711 printf("<xrefitem file=\"%s\" anchor=\"%s\" title=\"%s\">\n",
712 qPrint(x.file()),qPrint(x.anchor()),qPrint(x.title()));
713 visitChildren(x);
714 indent_post();
715 printf("</xrefitem>\n");
716 }
718 {
719 indent_pre();
720 printf("<internalref file=%s anchor=%s>\n",qPrint(r.file()),qPrint(r.anchor()));
721 visitChildren(r);
722 indent_post();
723 printf("</internalref>\n");
724 }
725 void operator()(const DocText &t)
726 {
727 indent_pre();
728 printf("<text>\n");
729 visitChildren(t);
730 indent_post();
731 printf("</text>\n");
732 }
734 {
735 indent_pre();
736 printf("<blockquote>\n");
737 visitChildren(q);
738 indent_post();
739 printf("</blockquote>\n");
740 }
741 void operator()(const DocVhdlFlow &vf)
742 {
743 indent_pre();
744 printf("<vhdlflow>\n");
745 visitChildren(vf);
746 indent_post();
747 printf("</vhdlflow>\n");
748 }
749 void operator()(const DocParBlock &pb)
750 {
751 indent_pre();
752 printf("<parblock>\n");
753 visitChildren(pb);
754 indent_post();
755 printf("</parblock>\n");
756 }
757
758 private:
759 // helper functions
760 void indent()
761 {
762 if (m_needsEnter) printf("\n");
763 for (int i=0;i<m_indent;i++) printf(".");
764 m_needsEnter=false;
765 }
767 {
768 if (!m_needsEnter) indent();
769 m_needsEnter=true;
770 }
772 {
773 indent();
774 m_indent++;
775 }
777 {
778 m_indent--;
779 indent();
780 }
781
782 // member variables
786};
787
788#endif
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:152
Node representing an anchor.
Definition docnode.h:229
DString anchor() const
Definition docnode.h:232
Node representing an auto List.
Definition docnode.h:571
bool isEnumList() const
Definition docnode.h:580
Node representing an item of a auto list.
Definition docnode.h:595
int itemNumber() const
Definition docnode.h:598
Node representing a citation of some bibliographic reference.
Definition docnode.h:245
DString ref() const
Definition docnode.h:250
DString getText() const
Definition docnode.cpp:977
DString anchor() const
Definition docnode.h:251
CiteInfoOption option() const
Definition docnode.h:253
DString target() const
Definition docnode.h:252
DString file() const
Definition docnode.h:248
Node representing a dia file.
Definition docnode.h:731
DString name() const
Definition docnode.h:684
Node representing a dot file.
Definition docnode.h:713
Node representing an emoji.
Definition docnode.h:341
int index() const
Definition docnode.h:345
DString name() const
Definition docnode.h:344
Node representing an item of a cross-referenced list.
Definition docnode.h:529
DString text() const
Definition docnode.h:533
DString name() const
Definition docnode.h:532
Node representing a Hypertext reference.
Definition docnode.h:832
DString url() const
Definition docnode.h:839
Node representing a horizontal ruler.
Definition docnode.h:216
Node representing an HTML blockquote.
Definition docnode.h:1296
Node representing a HTML table caption.
Definition docnode.h:1233
Node representing a HTML table cell.
Definition docnode.h:1198
bool isHeading() const
Definition docnode.h:1205
Node representing a HTML description data.
Definition docnode.h:1186
Node representing a Html description list.
Definition docnode.h:910
Node representing a Html description item.
Definition docnode.h:897
Node Html details.
Definition docnode.h:866
Node Html heading.
Definition docnode.h:882
int level() const
Definition docnode.h:886
Node representing a Html list.
Definition docnode.h:1009
const HtmlAttribList & attribs() const
Definition docnode.h:1015
Type type() const
Definition docnode.h:1014
Node representing a HTML list item.
Definition docnode.h:1170
const HtmlAttribList & attribs() const
Definition docnode.h:1175
Node representing a HTML table row.
Definition docnode.h:1251
Node Html summary.
Definition docnode.h:853
const HtmlAttribList & attribs() const
Definition docnode.h:857
Node representing a HTML table.
Definition docnode.h:1274
size_t numRows() const
Definition docnode.h:1278
size_t numColumns() const
Definition docnode.h:1283
const DocNodeVariant * caption() const
Definition docnode.cpp:2253
Node representing an image.
Definition docnode.h:642
Type type() const
Definition docnode.h:647
DString width() const
Definition docnode.h:650
DString name() const
Definition docnode.h:648
@ DocBook
Definition docnode.h:644
bool isInlineImage() const
Definition docnode.h:654
DString height() const
Definition docnode.h:651
Node representing a include/dontinclude operator block.
Definition docnode.h:477
DString pattern() const
Definition docnode.h:500
Type type() const
Definition docnode.h:485
Node representing an included text block from file.
Definition docnode.h:435
bool isBlock() const
Definition docnode.h:458
@ LatexInclude
Definition docnode.h:437
@ SnippetWithLines
Definition docnode.h:438
@ DontIncWithLines
Definition docnode.h:439
@ IncWithLines
Definition docnode.h:438
@ HtmlInclude
Definition docnode.h:437
@ VerbInclude
Definition docnode.h:437
@ DontInclude
Definition docnode.h:437
@ DocbookInclude
Definition docnode.h:439
Type type() const
Definition docnode.h:451
DString file() const
Definition docnode.h:449
Node representing an entry in the index.
Definition docnode.h:552
DString entry() const
Definition docnode.h:559
Node representing an internal section of documentation.
Definition docnode.h:978
Node representing an internal reference to some item.
Definition docnode.h:816
DString anchor() const
Definition docnode.h:822
DString file() const
Definition docnode.h:820
Node representing a line break.
Definition docnode.h:202
Node representing a word that can be linked to something.
Definition docnode.h:165
DString word() const
Definition docnode.h:170
Node representing a mermaid file.
Definition docnode.h:749
Node representing a msc file.
Definition docnode.h:722
Node representing an block of paragraphs.
Definition docnode.h:988
Node representing a paragraph in the documentation tree.
Definition docnode.h:1089
Node representing a parameter list.
Definition docnode.h:1130
const DocNodeList & parameters() const
Definition docnode.h:1134
Node representing a parameter section.
Definition docnode.h:1062
Type type() const
Definition docnode.h:1077
Node representing a uml file.
Definition docnode.h:740
Node representing a reference to some item.
Definition docnode.h:787
DString ref() const
Definition docnode.h:793
DString file() const
Definition docnode.h:791
bool refToTable() const
Definition docnode.h:800
DString anchor() const
Definition docnode.h:794
bool refToAnchor() const
Definition docnode.h:798
bool refToSection() const
Definition docnode.h:799
bool hasLinkText() const
Definition docnode.h:797
DString targetTitle() const
Definition docnode.h:795
Root node of documentation tree.
Definition docnode.h:1318
Node representing a reference to a section.
Definition docnode.h:944
DString target() const
Definition docnode.h:947
Node representing a list of section references.
Definition docnode.h:968
Node representing a normal section.
Definition docnode.h:923
int level() const
Definition docnode.h:927
const DocNodeVariant * title() const
Definition docnode.h:928
Node representing a separator.
Definition docnode.h:365
Node representing a simple list.
Definition docnode.h:999
Node representing a simple list item.
Definition docnode.h:1158
const DocNodeVariant * paragraph() const
Definition docnode.h:1162
Node representing a simple section.
Definition docnode.h:1026
Type type() const
Definition docnode.h:1035
const DocNodeVariant * title() const
Definition docnode.h:1042
Node representing a separator between two simple sections of the same type.
Definition docnode.h:1053
Node representing a style change.
Definition docnode.h:268
Style style() const
Definition docnode.h:307
bool enable() const
Definition docnode.h:309
Node representing a special symbol.
Definition docnode.h:328
HtmlEntityMapper::SymType symbol() const
Definition docnode.h:332
Root node of a text fragment.
Definition docnode.h:1309
Node representing a simple section title.
Definition docnode.h:608
Node representing a URL (or email address).
Definition docnode.h:188
DString url() const
Definition docnode.h:192
Node representing a verbatim, unparsed text fragment.
Definition docnode.h:376
DString text() const
Definition docnode.h:383
Type type() const
Definition docnode.h:382
@ JavaDocLiteral
Definition docnode.h:378
Node representing a VHDL flow chart.
Definition docnode.h:758
Node representing some amount of white space.
Definition docnode.h:354
DString chars() const
Definition docnode.h:358
Node representing a word.
Definition docnode.h:153
DString word() const
Definition docnode.h:156
Node representing an item of a cross-referenced list.
Definition docnode.h:621
DString anchor() const
Definition docnode.h:625
DString file() const
Definition docnode.h:624
DString title() const
Definition docnode.h:626
const char * name(int index) const
Access routine to the name of the Emoji entity.
Definition emoji.cpp:2026
static EmojiEntityMapper & instance()
Returns the one and only instance of the Emoji entity mapper.
Definition emoji.cpp:1978
bool empty() const
checks whether the container is empty
Definition growvector.h:140
const char * utf8(SymType symb, bool useInPrintf=false) const
Access routine to the UTF8 code of the HTML entity.
static HtmlEntityMapper & instance()
Returns the one and only instance of the HTML entity mapper.
void operator()(const DocSeparator &)
void operator()(const DocWord &w)
void operator()(const DocSimpleSect &s)
void operator()(const DocAnchor &a)
void operator()(const DocSymbol &s)
void operator()(const DocInclude &inc)
void operator()(const DocHRef &href)
void operator()(const DocHtmlCaption &c)
void operator()(const DocLinkedWord &w)
void operator()(const DocVerbatim &s)
void operator()(const DocHtmlBlockQuote &q)
void operator()(const DocParamList &pl)
void operator()(const DocDiaFile &df)
void operator()(const DocStyleChange &s)
void operator()(const DocTitle &t)
void operator()(const DocText &t)
void operator()(const DocIndexEntry &i)
void operator()(const DocSimpleSectSep &)
void operator()(const DocSimpleList &l)
void operator()(const DocInternal &i)
void operator()(const DocLink &lnk)
void visitChildren(const T &t)
void operator()(const DocHtmlHeader &header)
void operator()(const DocParamSect &ps)
void operator()(const DocInternalRef &r)
void operator()(const DocHtmlDescData &dd)
void operator()(const DocVhdlFlow &vf)
void operator()(const DocURL &u)
void operator()(const DocHtmlTable &t)
void operator()(const DocIncOperator &op)
void operator()(const DocPlantUmlFile &df)
void operator()(const DocXRefItem &x)
void operator()(const DocSecRefItem &ref)
void operator()(const DocEmoji &s)
void operator()(const DocMscFile &df)
void operator()(const DocSecRefList &rl)
void operator()(const DocRoot &r)
void operator()(const DocHtmlList &s)
void operator()(const DocHorRuler &)
void operator()(const DocHtmlDescTitle &dt)
void operator()(const DocHtmlSummary &summary)
void operator()(const DocMermaidFile &df)
void operator()(const DocDotFile &df)
void operator()(const DocLineBreak &)
void operator()(const DocAutoListItem &li)
void operator()(const DocSection &s)
void operator()(const DocHtmlCell &c)
void operator()(const DocAutoList &l)
void operator()(const DocPara &p)
void operator()(const DocRef &ref)
void operator()(const DocHtmlDetails &details)
void operator()(const DocImage &img)
void operator()(const DocFormula &f)
void operator()(const DocHtmlDescList &l)
void operator()(const DocHtmlRow &tr)
void operator()(const DocWhiteSpace &w)
void operator()(const DocParBlock &pb)
void operator()(const DocSimpleListItem &li)
void operator()(const DocHtmlListItem &li)
void operator()(const DocCite &cite)
const char * qPrint(const char *s)
Definition dstring.h:787