Markdown CLI viewer with VI keybindings

(github.com)

77 points | by taf2 1 day ago

17 comments

  • juancn 1 day ago
    A screenshot would be a nice addition to the readme.

    It seems is only pure text (no support for image extensions of a terminal, just a link to the image), based on this: https://github.com/taf2/mdvi/blob/master/src/renderer.rs

    It looks nice and clean code.

    • taf2 23 hours ago
      Thanks i added a screenshot and in 0.2 you can see images now in the cli too
      • m4r71n 19 hours ago
        The screenshot you added uses a transparent terminal where you can see your Discord chat in the background. You might want to remove that ;-)
        • forty 19 hours ago
          Why would someone use a transparent window background? Are people really reading the window behind it at the same time as the foreground window?
          • alextingle 16 hours ago
            Example: If a build is going on in the background, I can see when it stops.
            • skydhash 15 hours ago
              You can use `build-tool; tput bel` to hear the bell when it ends. Some terminal allows to set the urgent flag on the windows when the bell rings.
              • forty 11 hours ago
                Yeah I have used desktop notifications for such things (via notify-send etc), but I'm going to accept this explanation for transparent background as it makes some sense to me.
          • taf2 17 hours ago
            pretty fun right :)
            • keithnz 15 hours ago
              no.... and your screen shot completely fails to show off your tool
              • taf2 2 hours ago
                There is a pull request option - feel free to use it
  • jonaustin 18 hours ago
    Glow is pretty great and has been around for a while:

    https://github.com/charmbracelet/glow

  • pss314 21 hours ago
    Markdown reader using find, fzf and lnav

      find . \( -path '*/vendor/*' -or -path '*/.git/*' -or -path '*/node_modules/*' \) -prune -or -type f -name "*.md" -print | fzf | xargs lnav
    
    In the above command, the find command excludes directories such as "vendor" (golang), ".git" (git) and "node_modules" (nodejs). The lnav itself provides the markdown support https://lnav.org/2022/08/06/markdown-support.html
  • llimllib 22 hours ago
    I created one I like: https://github.com/llimllib/mdriver

    it can echo images with kitty image protocol, and streams the output, which I use to show LLM output as it arrives

    It doesn't handle paging - you can pipe it to `less` or whatever pager for that

  • smoyer 16 hours ago
    Here's the one I use a lot ... And the underlying `glamour` library is great for programmatic markdown display: https://github.com/charmbracelet/glow.
  • nikvdp 9 hours ago
    If you like the man page aesthetic, using pandoc with groff is the most readable way to read markdown on the terminal I've found:

        mdless() {
            if command -v pandoc >/dev/null; then
                if [[ -z "$1" ]]; then
                    cat | pandoc -s -f markdown -t man | groff -T utf8 -man | less
                else
                    pandoc -s -f markdown -t man "$*" | groff -T utf8 -man | less
                fi
            else
                less "$@"
            fi
        }
  • joshka 14 hours ago
    Hey if there's significant overlap, what about coming and collab-ing on https://github.com/joshka/tui-markdown? (crate + cli, rust / ratatui / crossterm based)
  • Blackarea 20 hours ago
    3 source files, nice code, no vibe-coding slob, nice little project... That's rare these days
  • maxsimb 1 day ago
    https://github.com/Vagab/mark similar tool, but with editing enabled also!
    • eyjafjalajokull 23 hours ago
      It’s funny to see markdown tools popping up with the rise of agents.
  • socceroos 13 hours ago
    I personally would have liked colours support like Glow has. At least the ability to theme it so we can add colours if we want. Nice tool, though.
  • kalterdev 23 hours ago
    Isn’t vi good enough?
    • w0m 22 hours ago
      NeoVim w/ render-markdown.nvim

      (not to poo on OP - I dig a clean TUI renderer, I have BAT installed for a reason)

      • Blackarea 20 hours ago
        Bat is nice. Oh dang now i have to try this plugin. I remember trying a couple of similar ones that got me so frustrated that i abandoned the idea of markdown viewers in nvim... Here we go again XD
        • chrysoprace 17 hours ago
          render-markdown.nvim is very nice and works with GitHub Flavoured Markdown, even down to some of the newer features like INFO, IMPORTANT, etc. quotes.
    • munk-a 22 hours ago
      No, I prefer emacs.
      • kurtis_reed 15 hours ago
        vi was mentioned because this software has "VI keybindings". no one asked what you prefer.
      • syngrog66 22 hours ago
        makes sign of cross, and hisses
  • verdverm 1 day ago
    https://github.com/charmbracelet/glamour

    Charm Glamour with a view port uses basic vi keybinds as well

  • metalliqaz 16 hours ago
    It's funny because the whole idea of Markdown is that it is readable both as text and rendered, so it shouldn't require a terminal renderer.
  • gigatexal 20 hours ago
    You had me at vi bindings
  • syngrog66 22 hours ago
    ie. vim
    • taf2 20 hours ago
      aka view
  • bainganbharta 23 hours ago
    [dead]
  • ghost-of-dmr 18 hours ago
    Markdown is already readable as-is. How is this any different from running "more my_file.md" ?

    Stop trying to re-invent the wheel when the tools are already there.

    • collinvandyck76 16 hours ago
      This is an odd comment on "Hacker" news. There's a joy to be had in making things like this, even though there are better alternatives and it's often a weird thing to do in the first place. I often do not post the things I create here and elsewhere because I dread this kind of feedback. What do you hope OP takes away from your post?
    • taf2 6 hours ago
      Great question- rather then having to push a change to GitHub to see the format changes you can just mdvi it now. Iterate locally is nice