web-dev-qa-db-ja.com

GitHub風のMarkdownをレンダリングするためのコマンドラインユーティリティはありますか?

GitHub風のMarkdown ファイルを取ってそれをHTMLにレンダリングするためのコマンドラインユーティリティがあるのだろうか。

私はGitHub Wikiを使ってWebサイトのコンテンツを作成しています。私は自分のサーバーにリポジトリをクローンしたので、それを通常のHTMLに処理したいと思います。私にとって重要なのは、GitHubに表示されるのは、それが私のWebサイトをどのように探すべきかということです。私は本当に~~~と一緒にfencedブロックを使用したいので、私はむしろ標準的なMarkdown構文だけを使用したくないです。

私はそれをNode.jsにフックできると考えてJavaScriptライブプレビューを少し調べましたが、彼らはそれが廃止予定であると言います。私はredcarpetリポジトリを見ましたが、コマンドラインインターフェースを持っているようには見えません。

私は自分自身の解決策を転がしました、しかし、ここでの解決策が他のものより明らかに優れているわけではないので、私は選択された答えなしで質問を残します。

387
McLeopold

私はPythonで小さなCLIを書き、GFMサポートを追加しました。これは Grip(Github Readmeインスタントプレビュー) と呼ばれます。

以下でインストールしてください。

$ pip install grip

そしてそれを使うには、単純に:

$ grip

それからlocalhost:5000にアクセスして、その場所にあるreadme.mdファイルを表示してください。

自分のファイルを指定することもできます。

$ grip CHANGES.md

そしてポートを変更します。

$ grip 8080

そしてもちろん、特にGitHub-Flavored Markdownを、必要に応じてリポジトリコンテキストを使ってレンダリングします。

$ grip --gfm --context=username/repo issue.md

注目すべき機能:

  • GitHubとまったく同じようにページを表示する
  • 柵ブロック
  • Python API
  • リンクされたファイル間を移動する(ありがとう、 vladwing !)2.0で追加された
  • 単一ファイルにエクスポートする(ありがとう、 iliggio !)2.0で追加された
  • 新規:stdinから読み込み、3.0で追加されたstdoutにエクスポートする

これが誰かに役立つことを願っています。 チェックアウト

424
Joe

私はGitHub風のMarkdownのための速くて簡単な方法を見つけませんでした、しかし私はもう少し一般的なバージョンを見つけました - Pandoc 。 Markdown、Rest、HTMLなどを含む、さまざまな形式との間で変換を行います。

また、すべての.mdファイルを.htmlに変換するMakefileも開発しました(の例の大部分は Writing、Markdown、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 [email protected]
110
Alister Bulman

多分これは役立つかもしれません:

gem install github-markdown

ドキュメントはありませんが、 gollum ドキュメントから入手しました。 rubydoc.info を見ると、それはあなたが使うことができるように見えます:

require 'github/markdown'  
puts GitHub::Markdown.render_gfm('your markdown string')

あなたのRubyコードに。これをスクリプトで簡単にラップして、コマンドラインユーティリティに変えることができます。

#!/usr/bin/env Ruby

# render.rb
require 'github/markdown'

puts GitHub::Markdown.render_gfm File.read(ARGV[0])

./render.rb path/to/my/markdown/file.mdで実行してください。これは消毒せずに生産で使用するのは安全ではないことに注意してください。

29
James Lim
pip3 install --user markdown
python3 -m markdown readme.md > readme.html

GitHubの拡張機能は扱えませんが、何もないよりはましです。私はあなたがGitHubの追加を処理するためにモジュールを拡張できると信じています。

28
Gringo Suave

おそらくあなたが欲しいものではないが、Node.jsに言及した時から、私のローカルドライブでGitHub Flavored Markdownのドキュメントをプレビューするための良いツールを見つけることができなかったので、今日Node.jsに基づいて作成しました。 https://github.com/ypocat/gfms

質問がまだ現実的であれば、おそらくあなたはあなたのWikiのためにそれからshowdown.jsを再利用することができます。そうでなければ、多分私がしたのと同じ問題に直面している他の人々は(私がしたように)この質問とそれに対するこの答えを見つけるでしょう。

23
youurayy

GitHubは Markdown API あなたが使うことができます。

16
kehers

ターミナルでREADME.mdファイルを読むには、次のようにします。

pandoc README.md | lynx -stdin

PandocはそれをHTML形式で出力します。Lynxはこれを端末に表示します。

それは素晴らしい仕事です:それは私の端末をいっぱいにします、近道は下に示されています、私はスクロールすることができます、そしてリンクは働きます!ただ一つのフォントサイズがあります、しかし、色+インデント+配置はそれを補います。

インストール:

Sudo apt-get install pandoc lynx
15
Barry Staes

マーク付き を使用してください。 GitHub Flavored Markdownをサポートし、Node.jsモジュールとして、そしてコマンドラインから使用することができます。

例は次のとおりです。

$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
13
zemirco

これは主に Pandoc を使うための@ barry-staesの答えの続きです。あなたがMacを使っているのなら、Homebrewにもそれがある。

brew install pandoc

Pandocはmarkdown_githubという名前による入力フォーマットとしてGFMをサポートしています。

ファイルに出力

cat foo.md | pandoc -f markdown_github > foo.html

Lynxで開く

cat foo.md | pandoc -f markdown_github | lynx -stdin # To open in Lynx

OS Xのデフォルトブラウザで開く

cat foo.md | pandoc -f markdown_github > foo.html && open foo.html # To open in the default browser on OS X`

TextMateの統合

ほとんどのエディタで許可されているように、現在の選択または現在のドキュメントをいつでも上記のいずれかにパイプ処理できます。 pandocMarkdownバンドルで使用されるデフォルトのMarkdownプロセッサを置き換えるように環境を簡単に設定することもできます。

まず、次の内容のシェルスクリプトを作成します(これをghmarkdownと呼びます)。

#!/bin/bash
# Note included, optional --email-obfuscation arg
pandoc -f markdown_github --email-obfuscation=references

その後、(Preferences→Variablesの)TM_MARKDOWN変数を/path/to/ghmarkdownに設定すると、デフォルトのMarkdownプロセッサに置き換わります。

10

私はAtomのプレビュー機能に似たツールを作成しましたが、スタンドアロンアプリケーションとして作成しました。これがあなたが探しているものかどうかわからないが、それは役に立つかもしれません。 - https://github.com/yoshuawuyts/vmd

vmd

9
Yoshua Wuyts

pandocbrowserは私にとってはうまくいきます。

使用法:cat README.md | pandoc -f markdown_github | browser

インストール(あなたがMac OSXを使用していると仮定して):

  • $ brew install pandoc

  • $ brew install browser

Debian/Ubuntuの場合:apt-get install pandoc browser

7
binarymason

https://softwareengineering.stackexchange.com/a/128721/24257 も参照してください。


Markdownファイルのレンダリング方法に興味があるなら、SundownライブラリへのRubyインタフェース Redcarpet をチェックしてください。

ローカルのRubyがある場合は、 Redcarpet を使用するRubyスクリプトが「コマンドラインユーティリティ」になります。

5
Lazy Badger

上に構築 このコメント 私はcurljqを使って Github Markdown API を打つためにワンライナーを書きました。

このbash関数をコマンドラインまたはあなたの~/.bash_profileに貼り付けてください。

mdsee(){ 
    HTMLFILE="$(mktemp -u).html"
    cat "$1" | \
      jq --Slurp --raw-input '{"text": "\(.)", "mode": "markdown"}' | \
      curl -s --data @- https://api.github.com/markdown > "$HTMLFILE"
    echo $HTMLFILE
    open "$HTMLFILE"
}

そして、レンダリングされたHTMLをブラウザ内で見るには、次のコマンドを実行します。

mdsee readme.md

純粋な端末ソリューションが必要な場合は、open "$HTMLFILE"lynx "$HTMLFILE"に置き換えます。

3
notpeter

GFM Markdown文書を閲覧するための本当に素晴らしくシンプルなツールがあります。

GFMS - Githubフレーバーマークダウンサーバー

それはあなたがそれらを閲覧するためにマークダウンファイルを含む任意のディレクトリで始めることができるそれはシンプルで軽量な(設定不要)HTTPサーバーです。

特徴:

  • GFMマークダウンの完全サポート
  • ソースコード構文の強調表示
  • ファイルとディレクトリの閲覧
  • 見栄えの良い出力(および設定可能なCSSスタイルシート)
  • PDFにエクスポート
3
Pawel Wiejacha

GitHubは、(以来) Atom と呼ばれるNiceモジュール式テキストエディタを開発しました(Chromiumをベースにしており、パッケージに Node.js モジュールを使用しています)。

デフォルトのプレインストールパッケージ Markdown Preview を使うと、プレビューを別のタブに表示することができます。 Ctrl + Shift + M

完全な構文をテストしたことはありませんが、GitHubからのものなので、プレビューの構文がそれらの構文(~~~作業を使用したフェンスブロック)と異なる場合は、非常に驚​​きます。

技術的にはコマンドラインベースではありませんが、Node.jsを使用して DOM ベースのレンダラーに出力します。 JSベースのWebサーバー、または単に彼女/彼のREADME.mdをオフラインで編集する。

3
Que

私の最後の解決策は Python Markdown を使うことでした。私はローリングしました 私自身のエクステンション これでフェンスブロックが修正されました。

3
McLeopold

私はその目的のために1行のRubyスクリプトを使用することに成功しました(それは別のファイルに入れなければなりませんでしたが)。まず、各クライアントマシンでこれらのコマンドを1回実行して、ドキュメントをプッシュします。

gem install github-markup
gem install commonmarker

次に、このスクリプトをクライアントイメージにインストールし、render-readme-for-javadoc.rbという名前を付けます。

require 'github/markup'

puts GitHub::Markup.render_s(GitHub::Markups::MARKUP_MARKDOWN, File.read('README.md'))

最後に、このように起動します。

Ruby ./render-readme-for-javadoc.rb >> project/src/main/javadoc/overview.html

ETA:これはStackOverflow風のMarkdownであなたを助けません、それはこの答えに失敗しているようです。

2
user833771

最近の追加だが showdownjs あなたがMDからHTMLにパースするために使うことができるCLIツールを持っている。

2
Tivie

@ barry-staeの解決策を改善する。このスニペットを〜/ .bashrcに貼り付けてください

function mdviewer(){
  pandoc $* | lynx -stdin
}

それから私達はすぐにコマンドラインからファイルを見ることができます。 SSH/Telnetセッションでもうまく動作します。

mdviewer README.md
2
Sandeep

http://tmpvar.com/markdown.html 。マークダウンを貼り付けると、それが表示されます。それはちょうどうまくいくようです!

ただし、コードの構文強調表示オプションは処理されないようです。つまり、~~~Ruby機能は機能しません。 「Ruby」を印刷するだけです。

1
JESii

私はGitHub Flavored Markdownのためにオプション--from=gfmを付けてPandocを使います:

$ pandoc my_file.md   --from=gfm -t html -o my_file.html
1
Asme Just

Jim Lim's answer に基づいて、私はGitHub Markdown gemをインストールしました。これには、コマンドラインでファイル名を取り、同等のHTMLを標準出力に書き込む、gfmというスクリプトが含まれていました。ファイルをディスクに保存してから、launchyで標準のブラウザを開くように少し修正しました。

#!/usr/bin/env Ruby

HELP = <<-help
  Usage: gfm [--readme | --plaintext] [<file>]
  Convert a GitHub-Flavored Markdown file to HTML and write to standard output.
  With no <file> or when <file> is '-', read Markdown source text from standard input.
  With `--readme`, the files are parsed like README.md files in GitHub.com. By default,
  the files are parsed with all the GFM extensions.
help

if ARGV.include?('--help')
  puts HELP
  exit 0
end

root = File.expand_path('../../', __FILE__)
$:.unshift File.expand_path('lib', root)

require 'github/markdown'
require 'tempfile'
require 'launchy'

mode = :gfm
mode = :markdown if ARGV.delete('--readme')
mode = :plaintext if ARGV.delete('--plaintext')

outputFilePath = File.join(Dir.tmpdir, File.basename(ARGF.path))  + ".html"

File.open(outputFilePath, "w") do |outputFile |
    outputFile.write(GitHub::Markdown.to_html(ARGF.read, mode))
end

outputFileUri = 'file:///' + outputFilePath

Launchy.open(outputFileUri)
0
gerrard00

Elinksの一般ユーザー向けに@ barry-stateおよび@Sandeepの回答を改善するには、次を.bashrcに追加します。

function mdviewer() {
  pandoc $* | elinks --force-html
}

Pandoc(およびelinks)をインストールすることを忘れないでください。

0
daBertl

「手っ取り早い」アプローチは、クローンを作成する代わりにwgetユーティリティを使用してWikiのHTMLページをダウンロードすることです。例えば、これは私がGitHubからHystrix wikiをダウンロードした方法です(私は---を使っています bunt Linux):

 $ wget -e robots=off -nH -E -H -k -K -p https://github.com/Netflix/Hystrix/wiki
 $ wget -e robots=off -nH -E -H -k -K -I "Netflix/Hystrix/wiki" -r -l 1 https://github.com/Netflix/Hystrix/wiki

最初の呼び出しで、Wikiのエントリページとそのすべての依存関係がダウンロードされます。 2番目のものはその上のすべてのサブページを呼び出します。 Netflix/Hystrix/wiki.1.htmlを開くことで、今Wikiを閲覧することができます。

wgetの両方の呼び出しが必要であることに注意してください。 2つ目を実行するだけでは、ページを正しく表示するために必要ないくつかの依存関係を見逃すことになります。

0