#pragma once

#include <memory>

class HtmlDocument;
class HtmlElement;
class MarkdownElementWithChildren;

class MarkdownDocument;

class MarkdownConverter
{
public:
    std::unique_ptr<HtmlDocument> convert(MarkdownDocument* markdownDoc) const;

    void convert(MarkdownDocument* markdownDoc, HtmlElement* parentElement) const;

private:
    void onBlockElement(MarkdownElementWithChildren* mdElement, HtmlElement* htmlElement) const;
};
