Is there a command line utility for rendering GitHub flavored Markdown?
I wrote a small CLI in Python and added GFM support. It's called Grip (Github Readme Instant Preview).
Install it with:
$ pip install grip
And to use it, simply:
$ grip
Then visit localhost:5000
to view the readme.md
file at that location.
You can also specify your own file:
$ grip CHANGES.md
And change port:
$ grip 8080
And of course, specifically render GitHub-Flavored Markdown, optionally with repository context:
$ grip --gfm --context=username/repo issue.md
Notable features:
- Renders pages to appear exactly like on GitHub
- Fenced blocks
- Python API
- Navigate between linked files (thanks, vladwing!) added in 2.0
- Export to a single file (thanks, iliggio!) added in 2.0
-
New: Read from
stdin
and export tostdout
added in 3.0
Hope this helps someone here. Check it out.
I've not found a quick and easy method for GitHub-flavoured Markdown, but I have found a slightly more generic version - Pandoc. It converts from/to a number of formats, including Markdown, Rest, HTML and others.
I've also developed a Makefile
to convert all .md files to .html (in large part to the example at Writing, Markdown and Pandoc):
# 'Makefile'
MARKDOWN = pandoc --from gfm --to html --standalone
all: $(patsubst %.md,%.html,$(wildcard *.md)) Makefile
clean:
rm -f $(patsubst %.md,%.html,$(wildcard *.md))
rm -f *.bak *~
%.html: %.md
$(MARKDOWN) $< --output $@
Maybe this might help:
gem install github-markdown
No documentation exists, but I got it from the gollum documentation. Looking at rubydoc.info, it looks like you can use:
require 'github/markdown'
puts GitHub::Markdown.render_gfm('your markdown string')
in your Ruby code. You can wrap that easily in a script to turn it into a command line utility:
#!/usr/bin/env ruby
# render.rb
require 'github/markdown'
puts GitHub::Markdown.render_gfm File.read(ARGV[0])
Execute it with ./render.rb path/to/my/markdown/file.md
. Note that this is not safe for use in production without sanitization.
pip3 install --user markdown
python3 -m markdown readme.md > readme.html
It doesn't handle GitHub extensions, but it is better than nothing. I believe you can extend the module to handle the GitHub additions.
To read a README.md file in the terminal I use:
pandoc README.md | lynx -stdin
Pandoc outputs it in HTML format, which Lynx renders in your terminal.
It works great: It fills my terminal, shortcuts are shown below, I can scroll through, and the links work! There is only one font size though, but the colors + indentation + alignment make up for that.
Installation:
- apt:
sudo apt-get install pandoc lynx
- nix:
nix-shell -p pandoc lynx