View Source Hologram.Template.Parser (hologram v0.2.0)

Summary

Functions

Prints debug info for intercepted parse/3 calls.

Parses markup into tags.

Types

parsed_tag()

@type parsed_tag() ::
  {:block_end
   | :block_start
   | :doctype
   | :end_tag
   | :expression
   | :public_comment_end
   | :public_comment_start
   | :self_closing_tag
   | :start_tag
   | :text, any()}

status()

@type status() ::
  :attribute_assignment
  | :attribute_name
  | :block_end
  | :block_start
  | :doctype
  | :end_tag
  | :end_tag_name
  | :expression
  | :text
  | :start_tag
  | :start_tag_name

Functions

debug(arg, result, start_timestamp)

@spec debug({module(), atom(), list()}, list() | %FunctionClauseError{}, integer()) ::
  :ok

Prints debug info for intercepted parse/3 calls.

parse_markup(markup)

@spec parse_markup(String.t()) :: [parsed_tag()]

Parses markup into tags.

Examples

iex> markup = "<div id="test"></div>"
iex> parse_markup(markup)
[start_tag: {"div", [{"id", [text: "test"]}]}, end_tag: "div"]

parse_tokens(context \\ %Context{}, status \\ :text, tokens)

Parses tokens into tags.

Examples

iex> tokens = [
...>   symbol: "<",
...>   string: "div",
...>   whitespace: " ",
...>   string: "id",
...>   symbol: "=",
...>   symbol: """,
...>   string: "test",
...>   symbol: """,
...>   symbol: ">",
...>   symbol: "</",
...>   string: "div",
...>   symbol: ">"
...> ]
iex> parse_tokens(tokens)
[start_tag: {"div", [{"id", [text: "test"]}]}, end_tag: "div"]