defmodule MfmParser do @moduledoc """ `MfmParser` is a parser for [Misskey Flavoured Markdown](https://mk.nixnet.social/mfm-cheat-sheet). It can parse MFM and return a tree. It can also turn a tree into HTML. It only works for the MFM specific tags of the form $[name.opts content]. Other parts of MFM (html, Markdown and [KaTeX](https://katex.org/)) are out of scope here. ## Examples iex> MfmParser.Parser.parse("$[twitch.speed=5s 🍮]") [ %MfmParser.Node.MFM.Twitch{ children: [%MfmParser.Node.Text{props: %{text: "🍮"}}], props: %{speed: "5s"} } ] iex> MfmParser.Parser.parse("$[twitch.speed=5s 🍮]") |> MfmParser.Converter.to_html() "🍮" """ end