1 unstable release

0.1.0 Oct 7, 2020

#39 in #gemini

BlueOak-1.0.0

14KB
263 lines

md2gemtext

builds.sr.ht status

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 asterisks
  • a [link](a://url) with context turns into a link with context followed by => a://url link
  • an ![inline](a://url) image turns into an [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