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.21.0'

Class Method Summary collapse

Class Method Details

.extensionsObject



1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
# File 'ext/commonmarker/commonmarker.c', line 1159

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.

Raises:

  • (TypeError)


38
39
40
41
42
43
44
# File 'lib/commonmarker.rb', line 38

def self.render_doc(text, options = :DEFAULT, extensions = [])
  raise 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.

Raises:

  • (TypeError)


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

def self.render_html(text, options = :DEFAULT, extensions = [])
  raise 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