MD::details::AlgoVisitor Class
class MD::details::AlgoVisitorVisitor for algorithms. More...
| Header: | #include <md4qt/algo.h> |
| CMake: | find_package(md4qt REQUIRED COMPONENTS md4qt)target_link_libraries(mytarget PRIVATE md4qt::md4qt) |
| Inherits: | MD::Visitor |
Public Functions
| AlgoVisitor(unsigned int mnl, const QVector<MD::ItemType> &t, MD::ItemFunctor f) | |
| virtual void | walk(QSharedPointer<MD::Document> doc) |
Protected Types
| struct | IncrementNestingLevel |
Protected Functions
| virtual void | onFootnotes(QSharedPointer<MD::Document> doc) |
Reimplemented Protected Functions
| virtual void | onAnchor(MD::Anchor *a) override |
| virtual void | onBlockquote(MD::Blockquote *b) override |
| virtual void | onCode(MD::Code *c) override |
| virtual void | onFootnote(MD::Footnote *f) override |
| virtual void | onFootnoteRef(MD::FootnoteRef *ref) override |
| virtual void | onHeading(MD::Heading *h) override |
| virtual void | onHorizontalLine(MD::HorizontalLine *l) override |
| virtual void | onImage(MD::Image *i) override |
| virtual void | onInlineCode(MD::Code *c) override |
| virtual void | onLineBreak(MD::LineBreak *l) override |
| virtual void | onLink(MD::Link *l) override |
| virtual void | onList(MD::List *l) override |
| virtual void | onListItem(MD::ListItem *i, bool, bool skipOpeningWrap = false) override |
| virtual void | onMath(MD::Math *m) override |
| virtual void | onParagraph(MD::Paragraph *p, bool, bool skipOpeningWrap = false) override |
| virtual void | onRawHtml(MD::RawHtml *h) override |
| virtual void | onTable(MD::Table *t) override |
| virtual void | onTableCell(MD::TableCell *c) override |
| virtual void | onText(MD::Text *t) override |
| virtual void | onUserDefined(MD::Item *i) override |
Protected Variables
| unsigned int | m_currentNestingLevel |
| MD::ItemFunctor | m_func |
| unsigned int | m_maxNestingLevel |
| const QVector<MD::ItemType> & | m_types |
Detailed Description
The main difference from MD::Visitor is that this class during walking through the document takes into account nesting level of the item. If nesting level reached defined value it won't process anything further. And if type of the item is in set types walking through the document will invoke a given function object for that item.
See also MD::Visitor.
Member Function Documentation
AlgoVisitor::AlgoVisitor(unsigned int mnl, const QVector<MD::ItemType> &t, MD::ItemFunctor f)
Constructor
mnl Maximum nesting level
t List of items' types.
f Functor.
[override virtual protected] void AlgoVisitor::onAnchor(MD::Anchor *a)
Reimplements: Visitor::onAnchor(MD::Anchor *a).
Process anchor.
a Anchor.
[override virtual protected] void AlgoVisitor::onBlockquote(MD::Blockquote *b)
Reimplements: Visitor::onBlockquote(MD::Blockquote *b).
Process blockquote.
b Blockquote.
[override virtual protected] void AlgoVisitor::onCode(MD::Code *c)
Reimplements: Visitor::onCode(MD::Code *c).
Process code block.
c Code.
[override virtual protected] void AlgoVisitor::onFootnote(MD::Footnote *f)
Reimplements: Visitor::onFootnote(MD::Footnote *f).
Process footnote.
f Footnote.
[override virtual protected] void AlgoVisitor::onFootnoteRef(MD::FootnoteRef *ref)
Reimplements: Visitor::onFootnoteRef(MD::FootnoteRef *ref).
Process footnote reference.
ref Footnote reference.
[virtual protected] void AlgoVisitor::onFootnotes(QSharedPointer<MD::Document> doc)
Process all footnotes.
doc Document.
[override virtual protected] void AlgoVisitor::onHeading(MD::Heading *h)
Reimplements: Visitor::onHeading(MD::Heading *h).
Process heading.
h Heading.
[override virtual protected] void AlgoVisitor::onHorizontalLine(MD::HorizontalLine *l)
Reimplements: Visitor::onHorizontalLine(MD::HorizontalLine *l).
Process horizontal line.
l Horizontal line.
[override virtual protected] void AlgoVisitor::onImage(MD::Image *i)
Reimplements: Visitor::onImage(MD::Image *i).
Process Image.
i Image.
[override virtual protected] void AlgoVisitor::onInlineCode(MD::Code *c)
Reimplements: Visitor::onInlineCode(MD::Code *c).
Process inline code.
c Code.
[override virtual protected] void AlgoVisitor::onLineBreak(MD::LineBreak *l)
Reimplements: Visitor::onLineBreak(MD::LineBreak *b).
Process line break.
l Line break.
[override virtual protected] void AlgoVisitor::onLink(MD::Link *l)
Reimplements: Visitor::onLink(MD::Link *l).
Process link.
l Link.
[override virtual protected] void AlgoVisitor::onList(MD::List *l)
Reimplements: Visitor::onList(MD::List *l).
Process list.
l List.
[override virtual protected] void AlgoVisitor::onListItem(MD::ListItem *i, bool, bool skipOpeningWrap = false)
Reimplements: Visitor::onListItem(MD::ListItem *i, bool first, bool skipOpeningWrap).
Process list item.
i List item.
skipOpeningWrap Indicates that opening wrap should be added or no.
[override virtual protected] void AlgoVisitor::onMath(MD::Math *m)
Reimplements: Visitor::onMath(MD::Math *m).
Process LaTeX math item.
m Math.
[override virtual protected] void AlgoVisitor::onParagraph(MD::Paragraph *p, bool, bool skipOpeningWrap = false)
Reimplements: Visitor::onParagraph(MD::Paragraph *p, bool wrap, bool skipOpeningWrap).
Process paragraph.
p Paragraph.
skipOpeningWrap Indicates that opening wrap should be added or no.
[override virtual protected] void AlgoVisitor::onRawHtml(MD::RawHtml *h)
Reimplements: Visitor::onRawHtml(MD::RawHtml *h).
Process raw HTML block.
h Raw HTML.
[override virtual protected] void AlgoVisitor::onTable(MD::Table *t)
Reimplements: Visitor::onTable(MD::Table *t).
Process table.
t Table.
[override virtual protected] void AlgoVisitor::onTableCell(MD::TableCell *c)
Reimplements: Visitor::onTableCell(MD::TableCell *c).
Process table cell.
c Table cell.
[override virtual protected] void AlgoVisitor::onText(MD::Text *t)
Reimplements: Visitor::onText(MD::Text *t).
Process text item.
t Text.
[override virtual protected] void AlgoVisitor::onUserDefined(MD::Item *i)
Reimplements: Visitor::onUserDefined(MD::Item *item).
Process user defined item type.
i Item.
[virtual] void AlgoVisitor::walk(QSharedPointer<MD::Document> doc)
Walk through the document.
doc Document.
Member Variable Documentation
unsigned int AlgoVisitor::m_currentNestingLevel
Current nesting level, increments/decrements during walking through te document.
MD::ItemFunctor AlgoVisitor::m_func
Functor that will be invoked if all circumstances will be observed.
unsigned int AlgoVisitor::m_maxNestingLevel
Maximum allowed nesting level.
const QVector<MD::ItemType> &AlgoVisitor::m_types
List of types that should be processed.