static VALUE rb_redcarpet_htmltoc_init(int argc, VALUE *argv, VALUE self) { struct rb_redcarpet_rndr *rndr; unsigned int render_flags = HTML_TOC; VALUE hash, nesting_level = Qnil; Data_Get_Struct(self, struct rb_redcarpet_rndr, rndr); if (rb_scan_args(argc, argv, "01", &hash) == 1) { Check_Type(hash, T_HASH); /* escape_html */ if (rb_hash_aref(hash, CSTR2SYM("escape_html")) == Qtrue) render_flags |= HTML_ESCAPE; /* Nesting level */ nesting_level = rb_hash_aref(hash, CSTR2SYM("nesting_level")); } sdhtml_toc_renderer(&rndr->callbacks, (struct html_renderopt *)&rndr->options.html, render_flags); rb_redcarpet__overload(self, rb_cRenderHTML_TOC); if (!(NIL_P(nesting_level))) rndr->options.html.toc_data.nesting_level = NUM2INT(nesting_level); else rndr->options.html.toc_data.nesting_level = 6; return Qnil; }
static VALUE rb_redcarpet_htmltoc_init(VALUE self) { struct rb_redcarpet_rndr *rndr; Data_Get_Struct(self, struct rb_redcarpet_rndr, rndr); sdhtml_toc_renderer(&rndr->callbacks, (struct html_renderopt *)&rndr->options.html); rb_redcarpet__overload(self, rb_cRenderHTML_TOC); return Qnil; }
static VALUE rb_redcarpet_html_init(int argc, VALUE *argv, VALUE self) { struct rb_redcarpet_rndr *rndr; unsigned int render_flags = 0; VALUE hash; Data_Get_Struct(self, struct rb_redcarpet_rndr, rndr); if (rb_scan_args(argc, argv, "01", &hash) == 1) { Check_Type(hash, T_HASH); /* filter_html */ if (rb_hash_aref(hash, CSTR2SYM("filter_html")) == Qtrue) render_flags |= HTML_SKIP_HTML; /* no_image */ if (rb_hash_aref(hash, CSTR2SYM("no_images")) == Qtrue) render_flags |= HTML_SKIP_IMAGES; /* no_links */ if (rb_hash_aref(hash, CSTR2SYM("no_links")) == Qtrue) render_flags |= HTML_SKIP_LINKS; /* filter_style */ if (rb_hash_aref(hash, CSTR2SYM("no_styles")) == Qtrue) render_flags |= HTML_SKIP_STYLE; /* safelink */ if (rb_hash_aref(hash, CSTR2SYM("safe_links_only")) == Qtrue) render_flags |= HTML_SAFELINK; if (rb_hash_aref(hash, CSTR2SYM("with_toc_data")) == Qtrue) render_flags |= HTML_TOC; if (rb_hash_aref(hash, CSTR2SYM("hard_wrap")) == Qtrue) render_flags |= HTML_HARD_WRAP; if (rb_hash_aref(hash, CSTR2SYM("xhtml")) == Qtrue) render_flags |= HTML_USE_XHTML; } sdhtml_renderer(&rndr->callbacks, (struct html_renderopt *)&rndr->options.html, render_flags); rb_redcarpet__overload(self, rb_cRenderHTML); return Qnil; }
static VALUE rb_redcarpet_htmltoc_init(int argc, VALUE *argv, VALUE self) { struct rb_redcarpet_rndr *rndr; unsigned int render_flags = HTML_TOC; VALUE hash, nesting_level = Qnil; Data_Get_Struct(self, struct rb_redcarpet_rndr, rndr); if (rb_scan_args(argc, argv, "01", &hash) == 1) { Check_Type(hash, T_HASH); /* Give access to the passed options through `@options` */ rb_iv_set(self, "@options", hash); /* escape_html */ if (rb_hash_aref(hash, CSTR2SYM("escape_html")) == Qtrue) render_flags |= HTML_ESCAPE; /* Nesting level */ nesting_level = rb_hash_aref(hash, CSTR2SYM("nesting_level")); } sdhtml_toc_renderer(&rndr->callbacks, (struct html_renderopt *)&rndr->options.html, render_flags); rb_redcarpet__overload(self, rb_cRenderHTML_TOC); /* Check whether we are dealing with a Range object by checking whether the object responds to min and max */ if (rb_respond_to(nesting_level, rb_intern("min")) && rb_respond_to(nesting_level, rb_intern("max"))) { int min = NUM2INT(rb_funcall(nesting_level, rb_intern("min"), 0)); int max = NUM2INT(rb_funcall(nesting_level, rb_intern("max"), 0)); rndr->options.html.toc_data.nesting_bounds[0] = min; rndr->options.html.toc_data.nesting_bounds[1] = max; } else if (FIXNUM_P(nesting_level)) { rndr->options.html.toc_data.nesting_bounds[0] = 1; rndr->options.html.toc_data.nesting_bounds[1] = NUM2INT(nesting_level); } else { rndr->options.html.toc_data.nesting_bounds[0] = 1; rndr->options.html.toc_data.nesting_bounds[1] = 6; } return Qnil; }
static VALUE rb_redcarpet_htmltoc_init(int argc, VALUE *argv, VALUE self) { struct rb_redcarpet_rndr *rndr; int nesting_level = 6; VALUE hash, key = Qnil; Data_Get_Struct(self, struct rb_redcarpet_rndr, rndr); if (rb_scan_args(argc, argv, "01", &hash) == 1) { Check_Type(hash, T_HASH); key = CSTR2SYM("nesting_level"); if (RTEST(rb_hash_aref(hash, key))) { Check_Type(rb_hash_aref(hash, key), T_FIXNUM); nesting_level = NUM2INT(rb_hash_aref(hash, key)); } } sdhtml_toc_renderer(&rndr->callbacks, (struct html_renderopt *)&rndr->options.html, nesting_level); rb_redcarpet__overload(self, rb_cRenderHTML_TOC); return Qnil; }
static VALUE rb_redcarpet_rbase_init(VALUE self) { rb_redcarpet__overload(self, rb_cRenderBase); return Qnil; }
static VALUE rb_redcarpet_html_init(int argc, VALUE *argv, VALUE self) { struct rb_redcarpet_rndr *rndr; unsigned int render_flags = 0; VALUE hash, link_attr = Qnil; Data_Get_Struct(self, struct rb_redcarpet_rndr, rndr); if (rb_scan_args(argc, argv, "01", &hash) == 1) { Check_Type(hash, T_HASH); /* Give access to the passed options through `@options` */ rb_iv_set(self, "@options", hash); /* escape_html */ if (rb_hash_aref(hash, CSTR2SYM("escape_html")) == Qtrue) render_flags |= HTML_ESCAPE; /* filter_html */ if (rb_hash_aref(hash, CSTR2SYM("filter_html")) == Qtrue) render_flags |= HTML_SKIP_HTML; /* no_image */ if (rb_hash_aref(hash, CSTR2SYM("no_images")) == Qtrue) render_flags |= HTML_SKIP_IMAGES; /* no_links */ if (rb_hash_aref(hash, CSTR2SYM("no_links")) == Qtrue) render_flags |= HTML_SKIP_LINKS; /* prettify */ if (rb_hash_aref(hash, CSTR2SYM("prettify")) == Qtrue) render_flags |= HTML_PRETTIFY; /* filter_style */ if (rb_hash_aref(hash, CSTR2SYM("no_styles")) == Qtrue) render_flags |= HTML_SKIP_STYLE; /* safelink */ if (rb_hash_aref(hash, CSTR2SYM("safe_links_only")) == Qtrue) render_flags |= HTML_SAFELINK; if (rb_hash_aref(hash, CSTR2SYM("with_toc_data")) == Qtrue) render_flags |= HTML_TOC; if (rb_hash_aref(hash, CSTR2SYM("hard_wrap")) == Qtrue) render_flags |= HTML_HARD_WRAP; if (rb_hash_aref(hash, CSTR2SYM("xhtml")) == Qtrue) render_flags |= HTML_USE_XHTML; link_attr = rb_hash_aref(hash, CSTR2SYM("link_attributes")); } sdhtml_renderer(&rndr->callbacks, (struct html_renderopt *)&rndr->options.html, render_flags); rb_redcarpet__overload(self, rb_cRenderHTML); if (!NIL_P(link_attr)) { rndr->options.link_attributes = link_attr; rndr->options.html.link_attributes = &rndr_link_attributes; } return Qnil; }