Markdown CLI viewer with VI keybindings

(github.com)

83 points | by taf2 4 days ago ago

36 comments

  • juancn 4 days 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 4 days ago

      Thanks i added a screenshot and in 0.2 you can see images now in the cli too

      • m4r71n 4 days 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 4 days 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 4 days ago

            Example: If a build is going on in the background, I can see when it stops.

            • skydhash 4 days 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 4 days 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 4 days ago

            pretty fun right :)

            • keithnz 4 days ago

              no.... and your screen shot completely fails to show off your tool

              • taf2 3 days ago

                There is a pull request option - feel free to use it

  • pss314 4 days 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
  • jonaustin 4 days ago

    Glow is pretty great and has been around for a while:

    https://github.com/charmbracelet/glow

  • llimllib 4 days 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

  • verdverm 4 days ago

    https://github.com/charmbracelet/glamour

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

  • smoyer 4 days 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.

  • metalliqaz 4 days 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.

  • joshka 4 days 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 4 days ago

    3 source files, nice code, no vibe-coding slob, nice little project... That's rare these days

  • nikvdp 4 days 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
        }
  • maxsimb 4 days ago

    https://github.com/Vagab/mark similar tool, but with editing enabled also!

    • eyjafjalajokull 4 days ago

      It’s funny to see markdown tools popping up with the rise of agents.

  • kalterdev 4 days ago

    Isn’t vi good enough?

    • w0m 4 days 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 4 days 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 4 days 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 4 days ago

      No, I prefer emacs.

      • kurtis_reed 4 days ago

        vi was mentioned because this software has "VI keybindings". no one asked what you prefer.

      • syngrog66 4 days ago

        makes sign of cross, and hisses

  • socceroos 4 days 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.

  • gigatexal 4 days ago

    You had me at vi bindings

  • syngrog66 4 days ago

    ie. vim

    • taf2 4 days ago

      aka view

  • bainganbharta 4 days ago

    [dead]

  • ghost-of-dmr 4 days 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 4 days 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 3 days 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