コード例 #1
0
ファイル: anddown.c プロジェクト: GitaiQAQ/cwac-anddown
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);
}
コード例 #2
0
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;
}
コード例 #3
0
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>";
}
コード例 #4
0
ファイル: hoedown.c プロジェクト: hoedown/go-hoedown
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);
}