#pragma once
#include <string>
#include <mw/error.hpp>
/// Trusted HTML produced only by the validated Markdown renderer.
class RenderedHtml
{
public:
/// Construct a trusted fragment from validated renderer output.
explicit RenderedHtml(std::string value);
/// Return the trusted HTML fragment.
const std::string& value() const;
private:
std::string value_;
};
/// Render MacroDown documents while rejecting unsafe URLs and raw HTML.
class MarkdownRenderer
{
public:
/// Validate and render one Markdown document.
mw::E<RenderedHtml> render(const std::string& source) const;
};