hoedown_buffer * hoedown_buffer_new(size_t unit) { hoedown_buffer *ret = hoedown_malloc(sizeof (hoedown_buffer)); hoedown_buffer_init(ret, unit, hoedown_realloc, free, free); return ret; }
hoedown_renderer * hoedown_html_renderer_new(hoedown_html_flags render_flags, int nesting_level) { static const hoedown_renderer cb_default = { NULL, rndr_blockcode, rndr_blockquote, rndr_header, rndr_hrule, rndr_list, rndr_listitem, rndr_paragraph, rndr_table, rndr_table_header, rndr_table_body, rndr_tablerow, rndr_tablecell, rndr_footnotes, rndr_footnote_def, rndr_raw_block, rndr_autolink, rndr_codespan, rndr_double_emphasis, rndr_emphasis, rndr_underline, rndr_highlight, rndr_quote, rndr_image, rndr_linebreak, rndr_link, rndr_triple_emphasis, rndr_strikethrough, rndr_superscript, rndr_footnote_ref, rndr_math, rndr_raw_html, NULL, rndr_normal_text, NULL, NULL }; hoedown_html_renderer_state *state; hoedown_renderer *renderer; /* Prepare the state pointer */ state = hoedown_malloc(sizeof(hoedown_html_renderer_state)); memset(state, 0x0, sizeof(hoedown_html_renderer_state)); state->flags = render_flags; state->toc_data.nesting_level = nesting_level; /* Prepare the renderer */ renderer = hoedown_malloc(sizeof(hoedown_renderer)); memcpy(renderer, &cb_default, sizeof(hoedown_renderer)); if (render_flags & HOEDOWN_HTML_SKIP_HTML || render_flags & HOEDOWN_HTML_ESCAPE) renderer->blockhtml = NULL; renderer->opaque = state; return renderer; }
hoedown_renderer * hoedown_html_toc_renderer_new(int nesting_level) { static const hoedown_renderer cb_default = { NULL, NULL, NULL, toc_header, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, rndr_codespan, rndr_double_emphasis, rndr_emphasis, rndr_underline, rndr_highlight, rndr_quote, NULL, NULL, toc_link, rndr_triple_emphasis, rndr_strikethrough, rndr_superscript, NULL, NULL, NULL, NULL, NULL, NULL, toc_finalize }; hoedown_html_renderer_state *state; hoedown_renderer *renderer; /* Prepare the state pointer */ state = hoedown_malloc(sizeof(hoedown_html_renderer_state)); memset(state, 0x0, sizeof(hoedown_html_renderer_state)); state->toc_data.nesting_level = nesting_level; /* Prepare the renderer */ renderer = hoedown_malloc(sizeof(hoedown_renderer)); memcpy(renderer, &cb_default, sizeof(hoedown_renderer)); renderer->opaque = state; return renderer; }
hoedown_renderer * hoedown_context_test_renderer_new(hoedown_document *doc) { static const hoedown_renderer cb_default = { NULL, rndr_blockcode, rndr_blockquote, rndr_header, rndr_hrule, rndr_list, rndr_listitem, rndr_paragraph, NULL, NULL, NULL, NULL, NULL, rndr_footnotes, rndr_footnote_def, NULL, NULL, NULL, rndr_dummy_span, rndr_dummy_span, rndr_dummy_span, rndr_dummy_span, rndr_dummy_span, rndr_image, NULL, rndr_link, rndr_dummy_span, rndr_dummy_span, NULL, rndr_footnote_ref, NULL, NULL, NULL, rndr_normal_text, NULL, NULL, NULL, rndr_ref, rndr_footnote_ref_def, }; hoedown_context_test_renderer_state *state; hoedown_renderer *renderer; /* Prepare the state pointer */ state = hoedown_malloc(sizeof(hoedown_context_test_renderer_state)); memset(state, 0x0, sizeof(hoedown_context_test_renderer_state)); state->doc = doc; /* Prepare the renderer */ renderer = hoedown_malloc(sizeof(hoedown_renderer)); memcpy(renderer, &cb_default, sizeof(hoedown_renderer)); renderer->opaque = state; return renderer; }