1 unstable release
0.1.0 | Oct 7, 2020 |
---|
#39 in #gemini
14KB
263 lines
md2gemtext
for converting Markdown into gemtext.
standalone usage
cargo install md2gemtext
md2gemtext /path/to/some/file.md /path/to/some/file.gmi
library usage
let gemtext = md2gemtext::convert("some markdown")?;
translation rules
- "thematic breaks" (hr tags) are translated to
-----
on a line by itself - headings turn into headings, levels beyond 3 get capped at 3
- code blocks get turned into code blocks (info strings are discarded)
- something happens to HTML, i forget what
- paragraphs get empty lines between them, because i think that looks better
- block quotes get turned into quotes (multi-paragraph contiguous block quotes break though)
- lists get turned into lists ("loose lists" probably misbehave, nested lists definitely misbehave, numbering is not preserved)
`markdown code spans`
retain their backticks_italics_
are surrounded by single underscores**bold**
is surrounded by double asterisksa [link](a://url) with context
turns intoa link with context
followed by=> a://url link
an ![inline](a://url) image
turns intoan [image: inline] image
followed by=> a://url [image: inline]
- if a link or image is its own paragraph, it becomes just the gemtext link, to not be redundant
Dependencies
~1MB
~20K SLoC