11 releases (breaking)

0.9.0 Jul 20, 2023
0.8.0 Mar 23, 2023
0.7.0 Feb 28, 2023

#2128 in Parser implementations

MIT license

290KB
928 lines

Marky

Markdown Magician 🧙

Features

  • Hot reload previewing 🔥
  • Conversion to HTML 🏭
  • Themes! ✨
  • Extensions - Math, diagrams, syntax-highlighting 🧩
  • Download base64 encoded images (png, jpg, svg)

Examples

Convert doc.md to doc.html

marky doc.md

Start a local preview server with hot-reload

marky doc.md --live

Enable extensions

# Or use --all to enable all
marky doc.md --math --diagrams --highlight

Include local images as base64 encoded and compress them (beta)

# possible values: local, remote, all
marky doc.md --include-images "local" --optimize-images
# or short
marky doc.md -zI local

Select and use a different theme with fzf

marky doc.md --theme $(marky --themes | fzf)

Pipe from stdout and open compiled file

cat doc.md | marky --out doc.html --open

See --help for more info

Install

Install using cargo

cargo install marky

Help

Markdown Magician 🧙

Usage: marky [OPTIONS] [PATH]

Arguments:
  [PATH]  Read input from file

Options:
      --completion <GENERATOR>
          [possible values: bash, elvish, fish, powershell, zsh]
  -t, --theme <THEME>
          Theme to use
      --string <STRING>
          Read input from string
      --themes
          List available themes
      --where-config
          Print config path
  -o, --out <OUT>
          Output file
      --stdout
          Output to stdout
  -H, --highlight
          Enable syntax highligting with highlight.js
  -M, --math
          Enable math rendering with KaTeX
  -D, --diagrams
          Enable UML diagrams rendering with Mermaid
  -I, --include-images <INCLUDE_IMAGES>
          Include images into file as base64 encoded [possible values: local, remote, all]
  -z, --optimize-images
          Optimize included images to make them smaller
  -A, --all
          Enable all extra renderers
  -w, --watch
          Recompile file on save
  -l, --live
          Live preview in the browser
      --port <PORT>
          Port of the live server [default: 8080]
  -O, --open
          Open output file in the default app
  -h, --help
          Print help
  -V, --version
          Print version

Build

git clone https://github.com/metafates/marky.git
cd marky
cargo install --path .

Screenshots

Some examples...

marky README.md --theme sakura # default theme

sakura

marky README.md --theme air

air

marky README.md --theme retro

retro

See marky --themes to show all available themes.

You can also add your own themes, but it's not documented yet... 😴

Dependencies

~39–56MB
~849K SLoC