# mdcat mdcat is a tiny portable linux binary to render markdown from a file (or stdin) to styled ansi for the terminal. ## usage examples: ```sh mdcat README.md | less -R # -R is required for less to support ansi styling ``` ```sh printf '# header\n- list item 1\n- list item 2' | mdcat ``` ## features mdcat isn't really a compliant markdown implementation - i made it to render a bit of styling in notes i write on the terminal. the following are currently supported: - bold with `**text**` - italic with `*text*` - underline with `_text_` - links with `[label](destination)` - headers with `# text` - lists with `- list item` or `1. list item` (but numbered lists dont render as numbered yet) - task lists with `- [x] list item` or `- [ ] list item` where a checkbox is ticked if the `x` is present. - horizontal rules with `***` which span the entire terminal width. - strikethrough with `~~text~~` ## dependencies - [md4c](https://github.com/mity/md4c) for markdown parsing - [ansi-term](https://github.com/ziglibs/ansi-term) wraps ansi styling - [zig-clap](https://github.com/Hejsil/zig-clap) for arg parsing ## building 1. install [zig 0.13.0](https://ziglang.org/download/#release-0.13.0) 2. clone repo 3. run `zig build` if you want a release build: 4. run `zig build --release=small` release optimize modes are: - fast - safe - small the mdcat binary will be in `zig-out/bin/mdcat`