Looks like something is working!
parent
dc33ebcd2f
commit
c7505d83ac
|
@ -56,6 +56,8 @@ set(LIBRARY_SOURCES
|
|||
${HEADERS}
|
||||
)
|
||||
|
||||
set_property(GLOBAL PROPERTY COMMONMARKER_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
include_directories(. ${CMAKE_CURRENT_BINARY_DIR})
|
||||
include_directories(
|
||||
${PROJECT_BINARY_DIR}/extensions
|
||||
|
|
|
@ -42,5 +42,11 @@ else()
|
|||
)
|
||||
endif()
|
||||
|
||||
# Get the cmark binary dir for config.h
|
||||
get_property(cmark_binary_dir GLOBAL PROPERTY COMMONMARKER_BINARY_DIR)
|
||||
include_directories(${cmark_binary_dir})
|
||||
|
||||
include_directories(lib/commonmarker/src)
|
||||
|
||||
target_link_libraries (browser LINK_PUBLIC CommonMarker CommonMarkerExtensions)
|
||||
target_link_libraries (browser PRIVATE Qt5::Widgets)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#include "markdown-render.h"
|
||||
|
||||
#include <cmark-gfm-core-extensions.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
|
@ -9,6 +8,15 @@
|
|||
#include <QDir>
|
||||
#include <QTextStream>
|
||||
|
||||
#include "node.h"
|
||||
#include "syntax_extension.h"
|
||||
|
||||
static inline void outc(cmark_renderer *renderer, cmark_node *node,
|
||||
cmark_escaping escape,
|
||||
int32_t c, unsigned char nextc) {
|
||||
cmark_render_code_point(renderer, c);
|
||||
}
|
||||
|
||||
MarkdownRender::MarkdownRender()
|
||||
{
|
||||
QString exePath = QCoreApplication::applicationDirPath();
|
||||
|
@ -25,7 +33,7 @@ MarkdownRender::MarkdownRender()
|
|||
const char *LineCStr = line.toStdString().c_str();
|
||||
file.close();
|
||||
|
||||
char *html = to_html(LineCStr);
|
||||
char *html = toHTML(LineCStr);
|
||||
|
||||
printf("%s", html);
|
||||
free(html);
|
||||
|
@ -41,7 +49,7 @@ void MarkdownRender::addMarkdownExtension(cmark_parser *parser, char *extName) {
|
|||
}
|
||||
|
||||
// A function to convert HTML to markdown
|
||||
char * MarkdownRender::to_html(const char *markdown_string)
|
||||
char * MarkdownRender::toHTML(const char *markdown_string)
|
||||
{
|
||||
int options = CMARK_OPT_DEFAULT; // You can also use CMARK_OPT_STRIKETHROUGH_DOUBLE_TILDE to enforce double tilde.
|
||||
|
||||
|
@ -61,13 +69,26 @@ char * MarkdownRender::to_html(const char *markdown_string)
|
|||
cmark_parser_free(parser);
|
||||
|
||||
// no cmake_node_dump() ?
|
||||
|
||||
cmark_node_mem(doc);
|
||||
// qDebug() << "AST" << doc->content.mem << endl;
|
||||
|
||||
// Render
|
||||
char *html = cmark_render_html(doc, options, NULL);
|
||||
char *something = renderWithMem(doc, options, 0, cmark_node_mem(doc));
|
||||
|
||||
cmark_node_free(doc);
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
int MarkdownRender::S_render_node(cmark_renderer *renderer, cmark_node *node,
|
||||
cmark_event_type ev_type, int options)
|
||||
{
|
||||
qDebug() << "Type:" << node->type << endl;
|
||||
}
|
||||
|
||||
char * MarkdownRender::renderWithMem(cmark_node *root, int options, int width, cmark_mem *mem)
|
||||
{
|
||||
return cmark_render(mem, root, options, width, outc, S_render_node);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define MARKDOWN_RENDER_H
|
||||
|
||||
#include <cmark-gfm.h>
|
||||
#include "render.h"
|
||||
|
||||
class MarkdownRender
|
||||
{
|
||||
|
@ -10,6 +11,9 @@ public:
|
|||
|
||||
private:
|
||||
void addMarkdownExtension(cmark_parser *parser, char *extName);
|
||||
char * to_html(const char *markdown_string);
|
||||
char * toHTML(const char *markdown_string);
|
||||
static int S_render_node(cmark_renderer *renderer, cmark_node *node,
|
||||
cmark_event_type ev_type, int options);
|
||||
char * renderWithMem(cmark_node *root, int options, int width, cmark_mem *mem);
|
||||
};
|
||||
#endif // MARKDOWN_RENDER_H
|
||||
|
|
Loading…
Reference in New Issue