โ† All libraries

SugarGlow

๐Ÿ“– SugarGlow

Markdown CLI viewer + pager

port of glow markdown viewer pager

Composes CandyShine (rendering) and SugarBits Viewport (scrolling). Render to stdout or open in a fullscreen pager. Eleven built-in themes (ansi, plain, dark, light, notty, dracula, tokyo-night, pink, solarized, monokai, github) plus custom JSON.

Install

composer require sugarcraft/sugar-glow

Quickstart

sugarglow README.md                   # render to stdout (default)
sugarglow -p README.md                # open in a fullscreen pager
git log -1 --pretty=%B | sugarglow -p # pipe stdin
sugarglow --theme dracula README.md
sugarglow --width 80 --no-hyperlinks README.md
sugarglow --theme-config ./my-theme.json README.md

What's in the box

Stdout modesugarglow README.md โ€” pipe-friendly, exits clean.
Pager mode-p / --pager โ€” fullscreen scrollable Viewport. Esc / q to exit.
Theme picker--theme {ansi|plain|dark|light|notty|dracula|tokyo-night|pink|solarized|monokai|github}, --theme-config ./my.json, -s alias for glamour-compat. Three themes (solarized/monokai/github) load from JSON in themes/.
Word-wrap-w 80 โ€” column width control. 0 disables.
OSC 8 toggle--no-hyperlinks falls back to text (url) rendering.
Stdin supportgit log -1 --pretty=%B | sugarglow -p.

Source & demos

See also

Try the quickstart โ†’

API

ClassMethodDescription
GlamourThemefromJson(json)Parse a Glamour theme JSON string
GlamourThemefromFile(path)Load a Glamour theme from a JSON file
GlamourThemeresolve(token)Resolve a chroma token to its SGR color
FileWatcherhasChangedSince(mtime)Check if file modified since given mtime
FileWatcherwatch(path, intervalMs)Generator watching a file for changes (mtime polling)
WidthHelpervisualWidth(text)Visual width accounting for CJK/emoji
WidthHelperpadRight(text, width)Pad string to fixed visual width
WidthHelperslice(text, start, end)Slice string by visual width offsets
WidthHelperisFullWidth(char)Check if character is full-width
WidthHelpertruncate(text, maxWidth)Truncate string to max visual width

Demos.

VHS-recorded GIFs of every example shipped with the library. Regenerated automatically on every push that touches the source.

Render

Render

README rendered through four themes โ€” ansi / dark / dracula / pink.
Pager

Fullscreen pager

-p flag opens a Viewport-powered scrollable pager. โ†‘โ†“ scroll, q quits.