Module: CommonMarker

Defined in:
lib/commonmarker.rb,
lib/commonmarker/node.rb,
lib/commonmarker/config.rb,
lib/commonmarker/version.rb,
lib/commonmarker/renderer.rb,
lib/commonmarker/node/inspect.rb,
lib/commonmarker/renderer/html_renderer.rb,
ext/commonmarker/commonmarker.c

Defined Under Namespace

Modules: Config Classes: HtmlRenderer, Node, NodeError, Renderer

Constant Summary collapse

VERSION =
'0.17.2'.freeze

Class Method Summary collapse

Class Method Details

.extensionsObject



1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
# File 'ext/commonmarker/commonmarker.c', line 1075

VALUE rb_extensions(VALUE self) {
  cmark_llist *exts, *it;
  cmark_syntax_extension *ext;
  VALUE ary = rb_ary_new();

  cmark_mem *mem = cmark_get_default_mem_allocator();
  exts = cmark_list_syntax_extensions(mem);
  for (it = exts; it; it = it->next) {
    ext = it->data;
    rb_ary_push(ary, rb_str_new2(ext->name));
  }
  cmark_llist_free(mem, exts);

  return ary;
}

.render_doc(text, options = :DEFAULT, extensions = []) ⇒ Object

Public: Parses a Markdown string into a ‘document` node.

string - String to be parsed option - A Symbol or of Symbols indicating the parse options extensions - An of Symbols indicating the extensions to use

Returns the ‘document` node.



36
37
38
39
40
41
# File 'lib/commonmarker.rb', line 36

def self.render_doc(text, options = :DEFAULT, extensions = [])
  fail TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
  opts = Config.process_options(options, :parse)
  text = text.encode('UTF-8')
  Node.parse_document(text, text.bytesize, opts, extensions)
end

.render_html(text, options = :DEFAULT, extensions = []) ⇒ Object

Public: Parses a Markdown string into an HTML string.

text - A String of text option - Either a Symbol or of Symbols indicating the render options extensions - An of Symbols indicating the extensions to use

Returns a String of converted HTML.



21
22
23
24
25
26
27
# File 'lib/commonmarker.rb', line 21

def self.render_html(text, options = :DEFAULT, extensions = [])
  fail TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
  opts = Config.process_options(options, :render)
  text = text.encode('UTF-8')
  html = Node.markdown_to_html(text, opts, extensions)
  html.force_encoding('UTF-8')
end