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

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

Link to this section Summary

Link to this section 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()],
  ast: [branch()],
  listener: nil | module(),
  payload: any(),
  bag: %{indent: [non_neg_integer()], stock: [branch()], deferred: [binary()]}
}
@type trace() :: branch()

Link to this section Callbacks

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