Packages

Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as a command-line tool (run mix escript.build first). Output generation is pluggable.

Retired package: Deprecated - Earmark is no longer maintained. Migrate to a replacement, for example MDEx (https://hex.pm/packages/mdex).
Security advisory: This version has known vulnerabilities. View advisories

Current section

Files

Jump to
earmark src link_text_lexer.xrl
Raw

src/link_text_lexer.xrl

Definitions.
ESCAPED = \\.
ESCAPE = \\
EXCLAMATION_MARK = [!]
OPEN_PAREN = \(
CLOSE_PAREN = \)
OPEN_BRACKET = \[
CLOSE_BRACKET = \]
OPEN_TITLE = \s+['"]
ANY_QUOTE = ['"]
WS = \s+
ANY = [^]\\"'()[\s]+
Rules.
{ESCAPED} : {token, {escaped, TokenLine, dismiss_backslash(TokenChars)}}.
{EXCLAMATION_MARK} : {token, {exclamation_mark, TokenLine, TokenChars}}.
{OPEN_PAREN} : {token, {open_paren, TokenLine, TokenChars}}.
{CLOSE_PAREN} : {token, {close_paren, TokenLine, TokenChars}}.
{OPEN_BRACKET} : {token, {open_bracket, TokenLine, TokenChars}}.
{CLOSE_BRACKET} : {token, {close_bracket, TokenLine, TokenChars}}.
{OPEN_TITLE} : {token, {open_title, TokenLine, TokenChars}}.
{ANY_QUOTE} : {token, {any_quote, TokenLine, TokenChars}}.
{ESCAPE} : {token, {verbatim, TokenLine, TokenChars}}.
{WS} : {token, {ws, TokenLine, TokenChars}}.
{ANY} : {token, {verbatim, TokenLine, TokenChars}}.
Erlang code.
dismiss_backslash([$\\|Chars]) -> Chars.