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>"; }
int main(int argc, char **argv) { struct hoedown_buffer *ib, *ob; FILE *in = stdin; struct hoedown_callbacks callbacks; struct hoedown_html_renderopt options; struct hoedown_markdown *markdown; /* opening the file if given from the command line */ if (argc > 1) { in = fopen(argv[1], "r"); if (!in) { fprintf(stderr, "Unable to open input file \"%s\": %s\n", argv[1], strerror(errno)); return 1; } } /* reading everything */ ib = hoedown_buffer_new(READ_UNIT); while (!feof(in) && !ferror(in)) { hoedown_buffer_grow(ib, ib->size + READ_UNIT); ib->size += fread(ib->data + ib->size, 1, READ_UNIT, in); } if (in != stdin) fclose(in); /* performing markdown parsing */ ob = hoedown_buffer_new(OUTPUT_UNIT); hoedown_html_renderer(&callbacks, &options, 0, 0); markdown = hoedown_markdown_new(0, 16, &callbacks, &options); hoedown_markdown_render(ob, ib->data, ib->size, markdown); hoedown_markdown_free(markdown); /* writing the result to stdout */ (void)fwrite(ob->data, 1, ob->size, stdout); /* cleanup */ hoedown_buffer_free(ib); hoedown_buffer_free(ob); return ferror(stdout); }