JNIEXPORT jstring JNICALL Java_com_commonsware_cwac_anddown_AndDown_markdownToHtml (JNIEnv *env, jobject o, jstring raw) { struct hoedown_buffer *ib, *ob; jstring result; hoedown_renderer *renderer; hoedown_markdown *markdown; const char* str; str = (*env)->GetStringUTFChars(env, raw, NULL); ib = hoedown_buffer_new(INPUT_UNIT); hoedown_buffer_puts(ib, str); ob = hoedown_buffer_new(OUTPUT_UNIT); (*env)->ReleaseStringUTFChars(env, raw, str); renderer = hoedown_html_renderer_new(0, 0); markdown = hoedown_markdown_new(0, 16, renderer); hoedown_markdown_render(ob, ib->data, ib->size, markdown); hoedown_markdown_free(markdown); result=(*env)->NewStringUTF(env, hoedown_buffer_cstr(ob)); /* cleanup */ hoedown_buffer_free(ib); hoedown_buffer_free(ob); return(result); }
QString HoedownMarkdownConverter::renderAsHtml(MarkdownDocument *document) { QString html; if (document) { HoedownMarkdownDocument *doc = dynamic_cast<HoedownMarkdownDocument*>(document); if (doc->document()) { hoedown_buffer *in = doc->document(); hoedown_buffer *out = hoedown_buffer_new(64); hoedown_renderer *renderer = hoedown_html_renderer_new(0, 16); hoedown_markdown *markdown = hoedown_markdown_new(doc->options(), 16, renderer); hoedown_markdown_render(out, in->data, in->size, markdown); hoedown_markdown_free(markdown); hoedown_html_renderer_free(renderer); html = QString::fromUtf8(hoedown_buffer_cstr(out)); hoedown_buffer_free(out); } } return html; }
void mdRenderer::render(const QString markdownText) { if(markdownText.isEmpty()) { html =""; return; } QByteArray utf8Data = markdownText.toUtf8(); hoedown_buffer *doc = hoedown_buffer_new(utf8Data.length()); hoedown_buffer_puts(doc, utf8Data.data()); hoedown_buffer *out = hoedown_buffer_new(64); hoedown_renderer *renderer = hoedown_html_renderer_new(0, 16); hoedown_markdown *markdown = hoedown_markdown_new(0, 16, renderer); hoedown_markdown_render(out, doc->data, doc->size, markdown); hoedown_markdown_free(markdown); hoedown_html_renderer_free(renderer); html = QString::fromUtf8(hoedown_buffer_cstr(out)); hoedown_buffer_free(out); html="<!DOCTYPE html> <html> <head> <style type=\"text/css\">"+ style+ "</style>"+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"+ "</head> <body>"+ html+ "</body> </html>"; }
static void rndr_footnote_ref_def(hoedown_buffer *orig, const hoedown_renderer_data *data) { /* this is a little dirty, but it is simpler than maintaining this state in the renderer */ hoedown_buffer *copy; copy = hoedown_buffer_new(64); hoedown_buffer_grow(copy, orig->size); memcpy(copy->data, orig->data, orig->size); copy->size = orig->size; printf("Footnote Reference Definition: %s\n", hoedown_buffer_cstr(copy)); hoedown_buffer_free(copy); }