module Markly

Nested Classes and Modules

class Node

Represents a node in a parsed Markdown document tree.

module Renderer

Definitions

DEFAULT = 0

The default parsing system.

VALIDATE_UTF8 = 1 << 9

Replace illegal sequences with the replacement character U+FFFD.

SMART = 1 << 10

Use smart punctuation (curly quotes, etc.).

LIBERAL_HTML_TAG = 1 << 12

Support liberal parsing of inline HTML tags.

FOOTNOTES = 1 << 13

Parse footnotes.

STRIKETHROUGH_DOUBLE_TILDE = 1 << 14

Support strikethrough using double tildes.

UNSAFE = 1 << 17

Allow raw/custom HTML and unsafe links.

FRONT_MATTER = 1 << 18

Parse front matter ("---" delimited block at start of document). The raw content is available via node.string_content and the optional format hint (e.g. "yaml", "toml") via node.code_info; interpretation is left to the caller.

INLINE_CODE_INFO = 1 << 19

Parse language prefixes on inline code spans, e.g. ruby:Object.new.

SOURCE_POSITION = 1 << 1

Include source position in rendered HTML.

HARD_BREAKS = 1 << 2

Treat \n as hardbreaks (by adding <br/>).

NO_BREAKS = 1 << 4

Translate \n in the source to a single whitespace.

GITHUB_PRE_LANG = 1 << 11

Use GitHub-style <pre lang> for fenced code blocks.

TABLE_PREFER_STYLE_ATTRIBUTES = 1 << 15

Use style insted of align for table cells.

FULL_INFO_STRING = 1 << 16

Include full info strings of code blocks in separate attribute.

VERSION = "0.17.0"

Signature

constant

The version of the Markly gem.

def self.parse(text, flags: DEFAULT, extensions: nil)

Parse a Markdown string into a document node.

Signature

parameter text String

The Markdown text to parse.

parameter flags Integer

The enabled parsing flags.

parameter extensions Array(Symbol) | Nil

The extensions to enable.

returns Markly::Node

The parsed document node.

Implementation

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

def self.render_html(text, flags: DEFAULT, parse_flags: flags, render_flags: flags, extensions: [])

Parse a Markdown string and render it as HTML.

Signature

parameter text String

The Markdown text to render.

parameter flags Integer

The default parsing and rendering flags.

parameter parse_flags Integer

The enabled parsing flags.

parameter render_flags Integer

The enabled rendering flags.

parameter extensions Array(Symbol)

The extensions to enable.

returns String

The rendered HTML.

Implementation

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