NewsLab
Apr 28 22:19 UTC

Show HN: leaf – a terminal Markdown previewer with a GUI-like experience (github.com)

45 points|by RivoLink||23 comments|Read full story on github.com

Comments (23)

23 shown
  1. 1. RivoLink||context
    Hi HN,

    I built leaf, a Markdown previewer that runs entirely in the terminal.

    It supports keyboard/mouse navigation, syntax highlighting, tables, checkboxes, clickable links, search, table of contents, local Markdown links, inline images, Mermaid diagrams, and LaTeX-to-Unicode rendering.

    It works on Linux, macOS, Windows, and Termux.

    GitHub: https://github.com/RivoLink/leaf

    I’d appreciate feedback on the UX, missing features, and performance on large Markdown files.

  2. 2. yboris||context
    Please consider adding a screenshot directly into the README (rather than a separate link).

    Also maybe a single paragraph at the top describing the project rather than jumping into `install`.

  3. 3. RivoLink||context
    Thanks for your feedback. I added the screenshot and a short description inside it.
  4. 4. benj111||context
    Why a previewer rather than an editor that updates as you write?

    Do you have a specific use case?

    It seems to me that markdown is for writing with the ultimate output supposedly being html. Having a viewer of the markdown doesn't seem to add anything.

    Whereas making it an editor makes it more of a rich text editor.

    I'm not particularly saying youre wrong, more posing a philosophical question.

  5. 5. RivoLink||context
    There are both "open in editor" and "watch" modes.

    The idea is not to replace an editor, but to complement it: - "open in editor" lets you edit the file with your preferred editor - "watch" automatically refreshes the preview when the file changes

    So you can keep your usual workflow while having a fast, structured preview directly in the terminal.

  6. 6. SupLockDef||context
    `pandoc "$@ | lynx -stdin` and I save you from 225 potential supply chain attack crates.

    `cargo audit` finds 3 vulnerabilities, you should fix them.

    Blazing safe.

  7. 7. leephillips||context
    Glow is also an excellent markdown viewer for the terminal, and it’s in most repositories.
  8. 8. jonaustin||context
    or just use glow which is golang.

    https://github.com/charmbracelet/glow

  9. 9. RivoLink||context
    These vulnerabilities have been fixed in the latest release. Thanks for pointing it out!
  10. 10. timetraveller26||context
    cool project, how does it compare to glow? https://github.com/charmbracelet/glow
  11. 11. fragmede||context
    If this project doesn't have open issues going back a year that are unanswered, it's doing better than glow. I forked glow to fix this one specific rendering bug, because the maintainers didn't respond to my bug report. I can't say that my fork is any better maintained, because no one is using it, but glow isn't maintained and has bugs so I wouldn't hold it up as anything other than abandonware.
  12. 12. kseistrup||context
    For one thing, glow doesn't do math equations.
  13. 13. RivoLink||context
    Good point! Glow doesn’t support math equations, but leaf does.
  14. 14. kseistrup||context
    And leaf's math display is better than that of mdterm, IMHO.
  15. 15. DonaldPShimoda||context
    > Features:

    > <bullet> <checkbox> description 1

    > <bullet> <checkbox> description 2

    > ...

    Like... why are we doing this. What is the purpose of having a bunch of green checkbox emojis in the already bulleted list of features. The only thing it tells me is that an LLM was probably used extensively in building this project.

  16. 16. localhoster||context
    Forgot m-dashs and the arch.md file
  17. 17. DonaldPShimoda||context
    I don't think the em-dashes are particularly out of place in a list like this, though it's not the style I use.

    I didn't realize ARCHITECTURE.md was an LLM thing (though I suppose I would've if I'd opened it); I'll have to keep my eyes open for that one in the future too.

  18. 18. RivoLink||context
    I’ve updated the Features section.
  19. 19. jasonpeacock||context
    I used to use Glow, but now I'm enjoying mdterm:

    https://github.com/bahdotsh/mdterm

  20. 20. RivoLink||context
    Thanks everyone for the feedback, this was super helpful. I’m already working on improvements based on your comments.
  21. 21. dhruv3006||context
    This is an interesting approach - I guess you did not move away to a gui - but tried to have a guy-like experience in the terminal only - in https://voiden.md/ we do have a gui with blocks for api testing.
  22. 22. RivoLink||context
    Thanks for the feedback! You're absolutely right. The goal was to create a GUI-like experience directly in the terminal. Your project looks really interesting too.
  23. 23. RivoLink||context
    Quick follow-up for macOS users:

    I opened an issue to test the “open in editor” feature:

    - Shift+E should select/configure the editor

    - Cmd+E should open the current Markdown file in the selected editor

    Tested on Linux/Windows/Android so far.

    Feedback from macOS users would be really helpful: https://github.com/RivoLink/leaf/issues/51