View Source Md.Listener behaviour (md v0.10.2)

The listener behaviour to attach to the parser to receive callbacks when the elements are encountered and processed.

Summary

Types

@type attributes() :: XmlBuilder.Element.attrs()
@type branch() :: XmlBuilder.Element.content()
@type callback() :: (state() -> state())
@type context() ::
  :start
  | :break
  | :linefeed
  | :whitespace
  | :custom
  | {:substitute, {binary(), binary()}}
  | {:esc, binary()}
  | {:char, binary()}
  | {:tag, {binary(), element()}, atom()}
  | :finalize
  | :end
@type element() :: XmlBuilder.Element.name()
@type leaf() :: XmlBuilder.Element.content()
@type parse_mode() ::
  :idle
  | :finished
  | :raw
  | :skip
  | :comment
  | :magnet
  | :md
  | {:linefeed, non_neg_integer()}
  | {:nested, element(), non_neg_integer()}
  | {:inner, :raw}
  | {:inner, element(), non_neg_integer()}
@type state() :: %Md.Parser.State{
  path: [trace()],
  mode: [parse_mode()],
  type: module(),
  ast: [branch()],
  listener: nil | module(),
  payload: any(),
  bag: %{indent: [non_neg_integer()], stock: [branch()], deferred: [binary()]}
}
@type trace() :: branch()

Callbacks

@callback element(context(), state()) :: :ok | {:update, state()}