Markdown Viewer

I found a file formatted with Markdown. Could you guys suggest what viewer that I could use to view this type of files? Hopefully one without gui (if it’s possible)

Update
I was actually looking for a viewer that could parse markdown file format that does not need any conversion. But something close to that should be ok.

Asked By: Amree

||

The following website provides a tool that will translate markdown into HTML:

http://daringfireball.net/projects/markdown/

Once you convert the file to HTML, there are a number of command line tools to use to view the file. Using a test file that contains markdown formatted-text, I found the following worked nicely.

$ wget http://daringfireball.net/projects/downloads/Markdown_1.0.1.zip
$ unzip Markdown_1.0.1.zip
$ cd Markdown_1.0.1/
$ ./Markdown.pl ~/testfile.markdown | html2text

html2text is one of many tools you can use to view html formatted text from the command line. Another option, if you want slightly nicer output would be to use lynx:

$ ./Markdown.pl ~/testfile.markdown | lynx -stdin

If you are an emacs user, someone has written a mode for markdown which is available here: http://jblevins.org/projects/markdown-mode/. This provides nice syntax highlighting as can be seen in the screenshot on that website.

All of these tools should be available for slackware.

Answered By: Steven D

I know you said you preferred a non-GUI application, but I am currently working on a GUI application called DownMarker which does this. You can find the source in a mercurial repository here. You can find a stand-alone executable to run with mono or .NET here.

Caveat: It is far from finished and only occasionally tested on linux/mono. Last test I did was on Mono 2.6. If you want to build it yourself will need a recent version of mercurial to clone the repository, and MonoDevelop to compile the application.

Answered By: Wim Coenen

2 more tools:

  • Showdown is JavaScript port or Markdown. You can use it only from browser
  • txt2tags can read Markdown format but it adds a lot of new options and featues.
Answered By: user2648

There’s also Discount, David Parsons’ C implementation of John Gruber’s Markdown text to html language. Discount consists of several command-line tools including markdown, mkd2html, makepage, mktags and theme.

http://www.pell.portland.or.us/~orc/Code/discount/

In addition, there’s an implementation of markdown in C, using a PEG grammar.

https://github.com/jgm/peg-markdown

On Mac OS X you also may have a look at qlmarkdown, a QuickLook generator for Markdown files.

Answered By: carlo

Here is a commandline script which opens up a markdown file in your browser after converting it into html: http://minhajuddin.com/2012/03/16/markdown-viewer-script-for-your-markdown-documents/

Answered By: Khaja Minhajuddin

Assuming you want to see what the html looks like: Use a web browser (with an addon) as a viewer.

For example, for Google Chrome there’s TextDown which also lets you edit files straight in the browser and see a live preview.

After adding it, you also need to go to chrome://chrome/extensions/ and check “allow access to file URLs” so you can open local files. A warning though: if you save (shift-ctrl-s) TextDown does not save to the file you opened but to your downloads folder.

Answered By: PapaFreud

Is a GUI program, but I find useful for this task ReText, that is an editor for Markdown and reStructuredText with a preview mode:

ReText screenshot

However, if you need see the file of ReText from a terminal, one option could be convert the marddown to html with pandoc and see the html copy in lynx:

pandoc file.mkd > file.html ; lynx file.html

Edit

There are a few more free markdown editors with preview available for *nix systems. Some in official repositories, others not, and each with their own strengths and weaknesses, but as suitable viewers I would like to highlight these:

  • Typora: It is still in beta phase, but it’s free meanwhile (it’s not clear how will be licensed the stable version). Although it is not FOSS, is perfect as markdown viewer because it work by default nearly as a WYSIWYG editor ("live preview mode") with a Outline panel (table of contents) that is very convenient for large files. The "source code mode" have syntax highlight, including bigger fonts for headings and italics for emphasis. And not only export to HTML, ODT and PDF. Also can import-export to several formats via pandoc integration.

  • Ghostwriter: HTML preview only (non editable) but also have a nice outline panel and syntax highlight. Without import options, but export to several formats with pandoc and others processors (MultiMarkdown, Discount, or cmark) and have a live spellcheck via hunspell/myspell.

  • MdCharm: Similar to Retext, but support markdown (markdown extra) and MultiMarkdown. Show also an outline (ToC) panel.

For R Markdown users, I should mention also editR. Is not a program, but a R package to edit/html preview of R Markdown in a browser. R Commander and RStudio also allow a easy preview in HTML, PDF or Word.

Now RStudio have a source and visual edit mode. The last is like type in a HTML preview, but we aware that this mode write the source markdown in their own way and rewrite any existing markdown with an alternative syntax. For example, the visual mode will change existing inline footnotes (as ^[text]) by normal labeled footnotes. This will not change the output, but could be annoyingly that a minimal edit in visual mode might reformat the whole source text.

Answered By: Fran

Using pandoc and lynx without creating temporary files:

pandoc file.md | lynx -stdin
Answered By: circleofconfusion

A couple comments asked about or mentioned the possibility of using a browser add-on. I like this approach because I can edit markdown files in any Linux text editor (from nano to vim to Kate) and view the files in Firefox (my browser of choice).

I simply installed this Firefox add-on and it worked out of the box on Kubuntu 12.04 and Firefox 33.0. No tweaks required.

Markdown Viewer :: Add-ons for Firefox
https://addons.mozilla.org/en-us/firefox/addon/markdown-viewer/

(I also like ReText, but I would prefer to see something like ReText implemented as a plugin for Kate. ReText lacks too many features to compete with mature editors like Kate.)

Answered By: MountainX

For those who prefer w3m (vi style bindings):

pandoc file.md | w3m -T text/html

I put it in a script, mdview.sh, and put that in my path:

#!/bin/sh
pandoc "$1" | w3m -T text/html
Answered By: neildaemond

You could have a look at mad which is very easy to use:

mad file.md
Answered By: Thomas Baruchel

I wrote a lightweight terminal markdown viewer in python, for CLI or as lib:

It supports e.g. tables, admonitions and tons of color themes.

Usage:
mdv [-t THEME] [-T C_THEME] [-x] [-l] [-L] [-c COLS] [-f FROM] [-m] [-M   DIR] [-H] [-A] [MDFILE]

Options:
MDFILE    : Path to markdown file
-t THEME  : Key within the color ansi_table.json. 'random' accepted.
-T C_THEME: Theme for code highlight. If not set: Use THEME.
-l        : Light background (not yet supported)
-L        : Display links
-x        : Do not try guess code lexer (guessing is a bit slow)
-f FROM   : Display FROM given substring of the file.
-m        : Monitor file for changes and redisplay FROM given substring
-M DIR    : Monitor directory for markdown file changes
-c COLS   : Fix columns to this (default: your terminal width)
-A        : Strip all ansi (no colors then)
-H        : Print html version

   enter image description here

Answered By: Red Pill

You can use Grip, which renders the Markdown exactly as GitHub would (it uses the GitHub markdown API).

Install it with pip:

pip install grip

To render a file example.md:

grip -b example.md

What this looks like:

enter image description here

Privacy note

This solution sends the content of your Markdown document to GitHub.

If you do not trust GitHub/Microsoft and/or have sensitive data in your document, you may want to have a look at Grip’s issue to complete the offline renderer.

Credits

@Joe’s (Grip’s author) answer in Stack Overflow.

Answered By: Peque

An easy solution for most situations: copy/paste the markdown into a viewer in the “cloud.” Here are two choices:

  1. Dillinger.io
  2. Dingus

Nothing to install! Cross platform! Cross browser! Always available!

Disadvantages: could be hassle for large files, standard cloud application security issues.

Answered By: aap

I suggest taking a look at Atom. It is an excellent text editor with in-built markdown preview. I don’t usually use the markdown preview mode as it has a serious bug – line breaks (unless they come in pairs which indicates a <p> tag’s contents) are preserved in the preview. But the syntax highlight mode is so good (since Markdown is optimized to be human readable and Atom’s colorization is excellent) that I usually end up reading markdown files in source view mode.

Answered By: wingedrhino

This is an alias that encapsulates a function:

alias mdless='_mdless() { if [ -n "$1" ] ; then if [ -f "$1" ] ; then cat <(echo ".TH $1 7 `date --iso-8601` Dr.Beco Markdown") <(pandoc -t man $1) | groff -K utf8 -t -T utf8 -man 2>/dev/null | less ; fi ; fi ;}; _mdless '

Explanation

  • alias mdless='...' : creates an alias for mdless
  • _mdless() {...}; : creates a temporary function to be called afterwards
  • _mdless : at the end, call it (the function above)

Inside the function:

  • if [ -n "$1" ] ; then : if the first argument is not null then…
  • if [ -f "$1" ] ; then : also, if the file exists and is regular then…
  • cat arg1 arg2 | groff … : cat sends this two arguments concatenated to groff; the arguments being:
    • arg1: <(echo ".TH $1 7date –iso-8601Dr.Beco Markdown") : something that starts the file and groff will understand as the header and footer notes. This substitutes the empty header from -s key on pandoc.
    • arg2: <(pandoc -t man $1) : the file itself, filtered by pandoc, outputing the man style of file $1
  • | groff -K utf8 -t -T utf8 -man 2>/dev/null : piping the resulting concatenated file to groff:
    • -K utf8 so groff understands the input file code
    • -t so it displays correctly tables in the file
    • -T utf8 so it output in the correct format
    • -man so it uses the MACRO package to outputs the file in man format
    • 2>/dev/null to ignore errors (after all, its a raw file being transformed in man by hand, we don’t care the errors as long as we can see the file in a not-so-much-ugly format).
  • | less : finally, shows the file paginating it with less (I’ve tried to avoid this pipe by using groffer instead of groff, but groffer is not as robust as less and some files hangs it or do not show at all. So, let it go through one more pipe, what the heck!

Add it to your ~/.bash_aliases (or alike)

Answered By: DrBeco

Readonly Vim with Markdown highlighting & folding

With Vim Markdown highlighting and folding up and running, the most straightforward solution is to evoke vim in the read only mode with either vim -R, or (at least on Ubuntu) more elegantly:

$ view filename.md

Add the following at the very bottom of your .vimrc file, and view will behave just like less with the added benefit of your favourite syntax highlighting (not only for markdown!) and folding:

" less behaviour for view
" https://unix.stackexchange.com/a/314184/39845

" http://vim.wikia.com/wiki/Using_vim_as_a_syntax-highlighting_pager
function! LessBehaviour()
    if (!&modifiable || &ro)
        set nonumber
        set nospell
        set laststatus=0    " Status line
        set cmdheight=1
        set guioptions=aiMr    " No menu bar, nor tool bar
        noremap u <C-u>
        noremap d <C-d>
        noremap q :q<CR>
    endif
endfunction

" https://vi.stackexchange.com/a/9101/3168
augroup ReadOnly
    au!
    au VimEnter * :call LessBehaviour() 
augroup END

There exists also a more rigorous less.sh script. On my system, it comes packaged with vim. To find it, use:

$ find /usr/share/vim -name less.sh

However, contrary to the script listed above, folding will not work with this less.sh.

Answered By: Serge Stroobandt

Use the mdless gem / command. It displays a Markdown file nicely in the terminal.

gem install mdless

Then run

mdless README.d

enter image description here

Links:

Answered By: Simon Woodside

An IMHO heavily underestimated command line markdown viewer is the markdown-cli.

Installation

npm install markdown-cli --global

Usage

markdown-cli <file>

Features

Probably not noticed much, because it misses any documentation…
But as far as I could figure out by some example markdown files, some things that convinced me:

  • handles ill formatted files much better (similarly to atom, github, etc.; eg. when blank lines are missing before lists)
  • more stable with formatting in headers or lists (bold text in lists breaks sublists in some other viewers)
  • proper table formatting
  • syntax highlightning
  • resolves footnote links to show the link instead of the footnote number (not everyone might want this)

Screenshot

example.png

Drawbacks

I have realized the following issues

  • code blocks are flattened (all leading spaces disappear)
  • two blank lines appear before lists
Answered By: orzechow

Moeditor

Just stumbled on this nice, simple and effective markdown editor.

Answered By: scrat.squirrel

Currently using mdp in Arch Linux and Termux on android, a markdown presentation tool.

image

Usage

$ mdp {file}.md

Slick alias

md() {
  fileName=${1:-"README.md"}
  mdp "$fileName"
}
Answered By: A1rPun

The most painless way for me is to use mdless gem from Ruby.

  1. Install ruby

    sudo apt-get install ruby

  2. Install mdless

    sudo gem install mdless

  3. Open file via mdless

    mdless filename.md

Answered By: Jonel Dominic Brave

Easy and available in probably every Linux distro’s package repo. You’ll need ‘pandoc’, ‘w3m’ and ‘w3m-img’ packages. With the last w3m can display images.

pandoc -f markdown -t html README.md | w3m -T text/html

‘-f markdown’ is optional. This will give you a nice enough preview with images right in the terminal window, the only downside is that you can’t really distinguish inline code blocks.

Answered By: skidnik

mdo – Terminal Markdown Viewer

(A wrapper I made around rich)

$ mdo README.md

enter image description here

Install:

$ pip install mdo

Or with pipx:

$ pipx install mdo
Answered By: Eyal Levin

You can install calibre software. It can be used to view markdown files.

Answered By: Kapil

Mdcat can be use to preview it.
As said here you can install binary for any platform. It can even preview images in md file in iTerm and Kitty
Syntax:

mdcat file.md
Answered By: mTvare

I know this is a bit late, but KDE’s Okular (sudo apt install okular on ubuntu) can view markdown quite well, and doesn’t have any conversion.

Answered By: nerdguy

I use this function:

mdp() {
    pandoc -t plain `find . -maxdepth 1 -iname "${1:-readme.md}"` | less
}

Usage:

mdp <file>

Will open parsed .md file specified as argument

mdp

Will open readme.md if there’s any

Answered By: ivanjermakov

batcat handles anything, and supports code snippets inside Markdown:

a screenshot of batcat displaying a Markdown file with code snippets inside correctly colorized

Answered By: André Willik Valenti

This is an old post but an up to date and far simpler solution, which should be compatible with any OS that supports Python is using the library rich.

After installing the library on your system you can render a markdown file straight from the terminal as follows:

$ python -m rich.markdown README.md

A short example taken directly from the project github page:
enter image description here

You can see the content in raw (on the left) and the rendered markdown (on the right).

You can also choose whether to use a pager or not, in case you wish to use its features or your terminal does not support colors, hyperlinks, etc.

Answered By: José Ferreira

Bit late, but as I was trying to find the same and this was still an open tab, https://github.com/charmbracelet/glow/ looks and works quite well.
It’s a product of https://charm.sh/ which makes terminals look better than they have any right to.

Answered By: MSpreij

just use cat foo.md on the command line in linux and you will see the file displayed
enter image description here

I’m currently checking MkDocs (https://www.mkdocs.org/). A small python app which can run as a server, serving your .md files as HTML in a browser. Any change you make in the .md file is automatically transferred to the HTML page in your browser. It has various plugins and themes, and the ability to build your .md files to HTML pages.

Since MkDocs is started from CLI, it basically is not a GUI. Your webbrowser however… Although Lynx could solve that issue.

Answered By: DaVinki

It is a GUI option but it is the widely used code editor VS Code. Writing and rendering (viewing) markdown files is pretty easy.

It also renders in real time while you are editing the markdown file. You can also go to cursor position on the rendering or text position from the rendering.

To be honest, I am surprised how this option have not been mentioned earlier considering its popularity.

Answered By: alercelik
Categories: Answers Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.