Render CommonMark as ANSI for the terminal.
## Installation
Add the dependency and build:
bash
│ moon add daqing/moon-md-viewer
┌─────────┬───────────────────────┐
│ Option │ Meaning │
├─────────┼───────────────────────┤
│ --theme │ dark, light or none │
│ --width │ wrap width in columns │
└─────────┴───────────────────────┘
- Headings keep their markers
- Links become OSC 8 hyperlinksmoon run cmd/main -- README.mbt.md
moon run cmd/main -- --width 60 docs/design.md
cat notes.md | moon run cmd/main| Option | Default | Meaning |
|---|---|---|
| --theme <dark\|light\|none> | dark | Colour palette; none emits no colour at all. |
| --width <columns> | $COLUMNS, else 80 | Wrap width. |
| --color <auto\|always\|never> | auto | auto colours only when stdout is a terminal that supports it. |
| --pager <auto\|always\|never> | auto | auto pages through $PAGER when stdout is a terminal. |
///|
let text = @moon-md-viewer.render(
markdown,
theme=@moon-md-viewer.Dark,
width=80,
)moon test # 34 behavioural and unit tests
moon info && moon fmtpub(all) enum Theme {
Dark
Light
NoColor
}fn char_width(c : Char) -> Intfn display_width(s : String) -> Intfn truncate_visible(s : String, max : Int) -> String