MD::details::AlgoVisitor Class

template <typename Trait> class MD::details::AlgoVisitor

Visitor 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 typename Trait::template Vector<ItemType> &t, MD::ItemFunctor<Trait> f)
virtual void walk(std::shared_ptr<MD::Document<Trait>> doc)

Protected Types

Protected Functions

void onAnchor(MD::Anchor<Trait> *a) override
void onBlockquote(MD::Blockquote<Trait> *b) override
void onCode(MD::Code<Trait> *c) override
void onFootnote(MD::Footnote<Trait> *f) override
void onFootnoteRef(MD::FootnoteRef<Trait> *ref) override
virtual void onFootnotes(std::shared_ptr<MD::Document<Trait>> doc)
void onHeading(MD::Heading<Trait> *h) override
void onHorizontalLine(MD::HorizontalLine<Trait> *l) override
void onImage(MD::Image<Trait> *i) override
void onInlineCode(MD::Code<Trait> *c) override
void onLineBreak(MD::LineBreak<Trait> *l) override
void onLink(MD::Link<Trait> *l) override
void onList(MD::List<Trait> *l) override
void onListItem(MD::ListItem<Trait> *i, bool) override
void onMath(MD::Math<Trait> *m) override
void onParagraph(MD::Paragraph<Trait> *p, bool) override
void onRawHtml(MD::RawHtml<Trait> *h) override
void onTable(MD::Table<Trait> *t) override
void onTableCell(MD::TableCell<Trait> *c) override
void onText(MD::Text<Trait> *t) override
void onUserDefined(MD::Item<Trait> *i) override

Protected Variables

unsigned int m_currentNestingLevel
MD::ItemFunctor<Trait> m_func
unsigned int m_maxNestingLevel
const typename Trait::template Vector<ItemType> &m_types

Detailed Description

Member Function Documentation

AlgoVisitor::AlgoVisitor(unsigned int mnl, const typename Trait::template Vector<ItemType> &t, MD::ItemFunctor<Trait> f)

Constructor

mnl Maximum nesting level

t List of items' types.

f Functor.

[protected] void AlgoVisitor::onAnchor(MD::Anchor<Trait> *a)

Process anchor.

a Anchor.

[protected] void AlgoVisitor::onBlockquote(MD::Blockquote<Trait> *b)

Process blockquote.

b Blockquote.

[protected] void AlgoVisitor::onCode(MD::Code<Trait> *c)

Process code block.

c Code.

[protected] void AlgoVisitor::onFootnote(MD::Footnote<Trait> *f)

Process footnote.

f Footnote.

[protected] void AlgoVisitor::onFootnoteRef(MD::FootnoteRef<Trait> *ref)

Process footnote reference.

ref Footnote reference.

[virtual protected] void AlgoVisitor::onFootnotes(std::shared_ptr<MD::Document<Trait>> doc)

Process all footnotes.

doc Document.

[protected] void AlgoVisitor::onHeading(MD::Heading<Trait> *h)

Process heading.

h Heading.

[protected] void AlgoVisitor::onHorizontalLine(MD::HorizontalLine<Trait> *l)

Process horizontal line.

l Horizontal line.

[protected] void AlgoVisitor::onImage(MD::Image<Trait> *i)

Process Image.

i Image.

[protected] void AlgoVisitor::onInlineCode(MD::Code<Trait> *c)

Process inline code.

c Code.

[protected] void AlgoVisitor::onLineBreak(MD::LineBreak<Trait> *l)

Process line break.

l Line break.

Process link.

l Link.

[protected] void AlgoVisitor::onList(MD::List<Trait> *l)

Process list.

l List.

[protected] void AlgoVisitor::onListItem(MD::ListItem<Trait> *i, bool)

Process list item.

i List item.

[protected] void AlgoVisitor::onMath(MD::Math<Trait> *m)

Process LaTeX math item.

m Math.

[protected] void AlgoVisitor::onParagraph(MD::Paragraph<Trait> *p, bool)

Process paragraph.

p Paragraph.

[protected] void AlgoVisitor::onRawHtml(MD::RawHtml<Trait> *h)

Process raw HTML block.

h Raw HTML.

[protected] void AlgoVisitor::onTable(MD::Table<Trait> *t)

Process table.

t Table.

[protected] void AlgoVisitor::onTableCell(MD::TableCell<Trait> *c)

Process table cell.

c Table cell.

[protected] void AlgoVisitor::onText(MD::Text<Trait> *t)

Process text item.

t Text.

[protected] void AlgoVisitor::onUserDefined(MD::Item<Trait> *i)

Process user defined item type.

i Item.

[virtual] void AlgoVisitor::walk(std::shared_ptr<MD::Document<Trait>> 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<Trait> AlgoVisitor::m_func

Functor that will be invoked if all circumstances will be observed.

unsigned int AlgoVisitor::m_maxNestingLevel

Maximum allowed nesting level.

const typename Trait::template Vector<ItemType> &AlgoVisitor::m_types

List of types that should be processed.