# Marky
Markdown Magician 🧙
**Features**
- Hot reload previewing 🔥
- Conversion to **HTML** / **PDF** 🏭
- Themes! ✨
- Extensions - Math, diagrams, syntax-highlighting 🧩
> **Note** When converting to PDF it will automatically download a suitable
> [headless chrome](https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md) binary if one is not present on your system.
> Everything is automated!
- [Examples](#examples)
- [Install](#install)
- [Help](#help)
- [Build](#build)
- [Screenshots](#screenshots)
## Examples
Convert `doc.md` to `doc.html`
```bash
marky doc.md
```
Convert to PDF
```bash
marky doc.md --pdf
```
Start a local preview server with hot-reload
```bash
marky doc.md --live
```
Enable extensions
```bash
# Or use --all to enable all
marky doc.md --math --diagrams --highlight
```
Include local images as base64 encoded and compress them (beta)
```bash
# 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
```bash
Pipe from stdout and open compiled file
```bash
> See `--help` for more info
## Install
Install using [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html)
```bash
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
-p, --pdf
Saves document as PDF. Will auto-download headless-chrome
-h, --help
Print help
-V, --version
Print version
```
## Build
```bash
git clone https://github.com/metafates/marky.git
cd marky
cargo install --path .
```
## Screenshots
Some examples...
```bash
marky README.md --theme sakura # default theme
```

```bash
marky README.md --theme air
```

```bash
marky README.md --theme retro
```

See `marky --themes` to show all available themes.
You can also add your own themes, but it's not documented yet... 😴