snekdown icon indicating copy to clipboard operation
snekdown copied to clipboard

An extended markdown parser written in pure rust

Snekdown

More than just Markdown



Documentation | Releases


Description

This projects goal is to implement a fast markdown parser with an extended syntax fitted for my needs.

Core Features

  • Imports
  • Bibliography & Glossary
  • AsciiMath
  • Placeholders
  • Advanced Images

Prerequisites

  • Google Chrome/Chromium (for PDF rendering)

Installation

Binaries

You can download prebuilt binaries on the Releases Page.

Arch Linux

Snekdown is available in the AUR.

Cargo

You need a working rust installation, for example by using rustup.

cargo install snekdown

With pdf rendering

cargo install snekdown --features pdf

Usage

Use snekdown help and snekdown <subcommand> --help for more information.

Rendering

snekdown render <input> <output>

Watching

snekdown watch <input> <output>

Editors

I've created a VisualStudio Code extension for Snekdown. This extension provides a preview of snekdown files, exports and other commands similar to the cli. The source code can be found here.

Roadmap

The end goal is to have a markup language with features similar to LaTeX.

Short Term

  • [x] Checkboxes
  • [x] Emojis (:emoji:)
  • [x] Colors
  • [x] Watching and rendering on change
  • [x] Metadata files
  • [x] Bibliography
  • [x] Math
  • [x] Glossary
  • [x] Chromium based pdf rendering
  • [x] Custom Stylesheets
  • [x] Smart arrows
  • [ ] Cross References
  • [ ] Figures
  • [ ] EPUB Rendering
  • [ ] Text sizes
  • [ ] Title pages

Long Term

  • Rewrite of the whole parsing process
  • Custom Elements via templates

License

This project is licensed under GPL 3.0. See LICENSE for more information.