madfun
madfun
WARNING: This crate is incomplete, and does not include full support for all Markdown blocks. Known working blocks:
- links
- paragraphs
- text
Would you like to use Markdown to post Atlassian Document Format while
still having fun? Then this tool's for you!
How It Works
madfun works by taking input in
Markdown, either as text or a parsed
abstract syntax tree
(AST) and converting
it to a serde_json::Value that conforms to Atlassian's
ADF.
Once you've got that, it should be simple to use any HTTP or Atlassian client to send it wherever it's going.
Usage
The core of madfun is the [ToAdf] trait; this exposes methods for
converting text or pre-parsed Markdown (via the markdown crate) into a
serde_json::Value that can then be serialized as you desire.
If you have Markdown text:
let adf: Value = from_str.unwrap;
If you've already got the Markdown parsed into a markdown::Node, then you
can use the infallible [ToAdf::to_adf] method:
use ToAdf;
let mdast = to_mdast.unwrap;
let adf: Value = mdast.to_adf;
Limitations
madfun is currently unidirectional; it takes Markdown and renders ADF
JSON. Unfortunately, it can't (yet?) take ADF as returned from the Atlassian
APIs and convert it back to Markdown, though in theory this should be doable
(if not actually isomorphic).
LICENSE
madfun is dual-licensed as MIT or Apache-2.0. Have fun.
License: MIT OR Apache-2.0