mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
#include "vmarkdownconverter.h"
|
|
|
|
VMarkdownConverter::VMarkdownConverter()
|
|
{
|
|
hoedownHtmlFlags = (hoedown_html_flags)0;
|
|
nestingLevel = 16;
|
|
|
|
htmlRenderer = hoedown_html_renderer_new(hoedownHtmlFlags, nestingLevel);
|
|
tocRenderer = hoedown_html_toc_renderer_new(nestingLevel);
|
|
}
|
|
|
|
VMarkdownConverter::~VMarkdownConverter()
|
|
{
|
|
if (htmlRenderer) {
|
|
hoedown_html_renderer_free(htmlRenderer);
|
|
}
|
|
if (tocRenderer) {
|
|
hoedown_html_renderer_free(tocRenderer);
|
|
}
|
|
}
|
|
|
|
QString VMarkdownConverter::generateHtml(const QString &markdown, hoedown_extensions options)
|
|
{
|
|
if (markdown.isEmpty()) {
|
|
return QString();
|
|
}
|
|
hoedown_document *document = hoedown_document_new(htmlRenderer, options,
|
|
nestingLevel);
|
|
QByteArray data = markdown.toUtf8();
|
|
hoedown_buffer *outBuf = hoedown_buffer_new(data.size());
|
|
hoedown_document_render(document, outBuf, (const uint8_t *)data.constData(), data.size());
|
|
hoedown_document_free(document);
|
|
QString html = QString::fromUtf8(hoedown_buffer_cstr(outBuf));
|
|
hoedown_buffer_free(outBuf);
|
|
|
|
return html;
|
|
}
|
|
|
|
QString VMarkdownConverter::generateToc(const QString &markdown, hoedown_extensions options)
|
|
{
|
|
if (markdown.isEmpty()) {
|
|
return QString();
|
|
}
|
|
hoedown_document *document = hoedown_document_new(tocRenderer, options, nestingLevel);
|
|
QByteArray data = markdown.toUtf8();
|
|
hoedown_buffer *outBuf = hoedown_buffer_new(16);
|
|
hoedown_document_render(document, outBuf, (const uint8_t *)data.constData(), data.size());
|
|
hoedown_document_free(document);
|
|
QString toc = QString::fromUtf8(hoedown_buffer_cstr(outBuf));
|
|
hoedown_buffer_free(outBuf);
|
|
return toc;
|
|
}
|