MfmParser.Encoder (pleroma_mfm_parser v0.2.1)

Copy Markdown View Source

An encoder who can turn a String with MFM functions, or an MFM tree from MfmParser.Parser.parse/1, into FEP-c16b compliant HTML.

It only works for the MFM specific tags of the form $[name.attributes content]. Other parts of MFM (e.g. html, Markdown and KaTeX) are out of scope for this project.

Examples

iex> [
...>   %MfmParser.Node.MFM{
...>     name: "twitch",
...>     content: [%MfmParser.Node.Text{content: "🍮"}],
...>     attributes: [{"speed", "5s"}]
...>   }
...> ]
...> |> MfmParser.Encoder.to_html()
~S[<span class="mfm-twitch" data-mfm-speed="5s">🍮</span>]

iex> "$[twitch.speed=5s 🍮]" |> MfmParser.Encoder.to_html()
~S[<span class="mfm-twitch" data-mfm-speed="5s">🍮</span>]

Summary

Functions

to_html(input, opts \\ [])