Module: Markly
- Defined in:
- lib/markly/flags.rb,
lib/markly.rb,
lib/markly/node.rb,
lib/markly/version.rb,
lib/markly/node/inspect.rb,
lib/markly/renderer/html.rb,
lib/markly/renderer/generic.rb,
lib/markly/renderer/headings.rb,
ext/markly/markly.c
Overview
Released under the MIT License. Copyright, 2025, by Samuel Williams.
Defined Under Namespace
Modules: Renderer Classes: Error, Node, Parser
Constant Summary collapse
- DEFAULT =
The default parsing system.
0- VALIDATE_UTF8 =
Replace illegal sequences with the replacement character ‘U+FFFD`.
1 << 9
- SMART =
Use smart punctuation (curly quotes, etc.).
1 << 10
- LIBERAL_HTML_TAG =
Support liberal parsing of inline HTML tags.
1 << 12
- FOOTNOTES =
Parse footnotes.
1 << 13
- STRIKETHROUGH_DOUBLE_TILDE =
Support strikethrough using double tildes.
1 << 14
- UNSAFE =
Allow raw/custom HTML and unsafe links.
1 << 17
- PARSE_FLAGS =
{ validate_utf8: VALIDATE_UTF8, smart_quotes: SMART, liberal_html_tags: LIBERAL_HTML_TAG, footnotes: FOOTNOTES, strikethrough_double_tilde: STRIKETHROUGH_DOUBLE_TILDE, unsafe: UNSAFE, }
- SOURCE_POSITION =
Include source position in rendered HTML.
1 << 1
- HARD_BREAKS =
Treat ‘n` as hardbreaks (by adding `<br/>`).
1 << 2
- NO_BREAKS =
Translate ‘n` in the source to a single whitespace.
1 << 4
- GITHUB_PRE_LANG =
Use GitHub-style ‘<pre lang>` for fenced code blocks.
1 << 11
- TABLE_PREFER_STYLE_ATTRIBUTES =
Use ‘style` insted of `align` for table cells.
1 << 15
- FULL_INFO_STRING =
Include full info strings of code blocks in separate attribute.
1 << 16
- RENDER_FLAGS =
{ source_position: SOURCE_POSITION, hard_breaks: HARD_BREAKS, no_breaks: NO_BREAKS, pre_lang: GITHUB_PRE_LANG, table_prefer_style_attributes: TABLE_PREFER_STYLE_ATTRIBUTES, full_info_string: FULL_INFO_STRING, unsafe: UNSAFE, }
- VERSION =
"0.15.1"
Class Method Summary collapse
- .extensions ⇒ Object
-
.parse(text, flags: DEFAULT, extensions: nil) ⇒ Object
Public: Parses a Markdown string into a ‘document` node.
-
.render_html(text, flags: DEFAULT, parse_flags: flags, render_flags: flags, extensions: []) ⇒ Object
Public: Parses a Markdown string into an HTML string.
Class Method Details
.extensions ⇒ Object
1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 |
# File 'ext/markly/markly.c', line 1148
VALUE rb_Markly_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;
}
|
.parse(text, flags: DEFAULT, extensions: nil) ⇒ 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 ‘parser` node.
27 28 29 30 31 32 33 34 35 |
# File 'lib/markly.rb', line 27 def self.parse(text, flags: DEFAULT, extensions: nil) parser = Parser.new(flags) extensions&.each do |extension| parser.enable(extension) end return parser.parse(text.encode(Encoding::UTF_8)) end |
.render_html(text, flags: DEFAULT, parse_flags: flags, render_flags: flags, 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.
44 45 46 47 48 |
# File 'lib/markly.rb', line 44 def self.render_html(text, flags: DEFAULT, parse_flags: flags, render_flags: flags, extensions: []) root = self.parse(text, flags: parse_flags, extensions: extensions) return root.to_html(flags: render_flags, extensions: extensions) end |