GitHub風のMarkdown ファイルを取ってそれをHTMLにレンダリングするためのコマンドラインユーティリティがあるのだろうか。
私はGitHub Wikiを使ってWebサイトのコンテンツを作成しています。私は自分のサーバーにリポジトリをクローンしたので、それを通常のHTMLに処理したいと思います。私にとって重要なのは、GitHubに表示されるのは、それが私のWebサイトをどのように探すべきかということです。私は本当に~~~
と一緒にfencedブロックを使用したいので、私はむしろ標準的なMarkdown構文だけを使用したくないです。
私はそれをNode.jsにフックできると考えてJavaScriptライブプレビューを少し調べましたが、彼らはそれが廃止予定であると言います。私はredcarpetリポジトリを見ましたが、コマンドラインインターフェースを持っているようには見えません。
私は自分自身の解決策を転がしました、しかし、ここでの解決策が他のものより明らかに優れているわけではないので、私は選択された答えなしで質問を残します。
私は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
注目すべき機能:
stdin
から読み込み、3.0で追加されたstdout
にエクスポートするこれが誰かに役立つことを願っています。 チェックアウト 。
私は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 $@
多分これは役立つかもしれません:
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
で実行してください。これは消毒せずに生産で使用するのは安全ではないことに注意してください。
pip3 install --user markdown
python3 -m markdown readme.md > readme.html
GitHubの拡張機能は扱えませんが、何もないよりはましです。私はあなたがGitHubの追加を処理するためにモジュールを拡張できると信じています。
おそらくあなたが欲しいものではないが、Node.jsに言及した時から、私のローカルドライブでGitHub Flavored Markdownのドキュメントをプレビューするための良いツールを見つけることができなかったので、今日Node.jsに基づいて作成しました。 https://github.com/ypocat/gfms
質問がまだ現実的であれば、おそらくあなたはあなたのWikiのためにそれからshowdown.jsを再利用することができます。そうでなければ、多分私がしたのと同じ問題に直面している他の人々は(私がしたように)この質問とそれに対するこの答えを見つけるでしょう。
GitHubは Markdown API あなたが使うことができます。
ターミナルでREADME.mdファイルを読むには、次のようにします。
pandoc README.md | lynx -stdin
PandocはそれをHTML形式で出力します。Lynxはこれを端末に表示します。
それは素晴らしい仕事です:それは私の端末をいっぱいにします、近道は下に示されています、私はスクロールすることができます、そしてリンクは働きます!ただ一つのフォントサイズがあります、しかし、色+インデント+配置はそれを補います。
インストール:
Sudo apt-get install pandoc lynx
マーク付き を使用してください。 GitHub Flavored Markdownをサポートし、Node.jsモジュールとして、そしてコマンドラインから使用することができます。
例は次のとおりです。
$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
これは主に 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の統合
ほとんどのエディタで許可されているように、現在の選択または現在のドキュメントをいつでも上記のいずれかにパイプ処理できます。 pandoc
がMarkdownバンドルで使用されるデフォルトの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プロセッサに置き換わります。
私はAtomのプレビュー機能に似たツールを作成しましたが、スタンドアロンアプリケーションとして作成しました。これがあなたが探しているものかどうかわからないが、それは役に立つかもしれません。 - https://github.com/yoshuawuyts/vmd
pandoc
とbrowser
は私にとってはうまくいきます。
使用法:cat README.md | pandoc -f markdown_github | browser
インストール(あなたがMac OSXを使用していると仮定して):
$ brew install pandoc
$ brew install browser
Debian/Ubuntuの場合:apt-get install pandoc browser
https://softwareengineering.stackexchange.com/a/128721/24257 も参照してください。
Markdownファイルのレンダリング方法に興味があるなら、SundownライブラリへのRubyインタフェース Redcarpet をチェックしてください。
ローカルのRubyがある場合は、 Redcarpet を使用するRubyスクリプトが「コマンドラインユーティリティ」になります。
上に構築 このコメント 私はcurl
とjq
を使って 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"
に置き換えます。
GFM Markdown文書を閲覧するための本当に素晴らしくシンプルなツールがあります。
それはあなたがそれらを閲覧するためにマークダウンファイルを含む任意のディレクトリで始めることができるそれはシンプルで軽量な(設定不要)HTTPサーバーです。
特徴:
GitHubは、(以来) Atom と呼ばれるNiceモジュール式テキストエディタを開発しました(Chromiumをベースにしており、パッケージに Node.js モジュールを使用しています)。
デフォルトのプレインストールパッケージ Markdown Preview を使うと、プレビューを別のタブに表示することができます。 Ctrl + Shift + M。
完全な構文をテストしたことはありませんが、GitHubからのものなので、プレビューの構文がそれらの構文(~~~
作業を使用したフェンスブロック)と異なる場合は、非常に驚きます。
技術的にはコマンドラインベースではありませんが、Node.jsを使用して DOM ベースのレンダラーに出力します。 JSベースのWebサーバー、または単に彼女/彼のREADME.mdをオフラインで編集する。
私の最後の解決策は Python Markdown を使うことでした。私はローリングしました 私自身のエクステンション これでフェンスブロックが修正されました。
私はその目的のために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であなたを助けません、それはこの答えに失敗しているようです。
最近の追加だが showdownjs あなたがMDからHTMLにパースするために使うことができるCLIツールを持っている。
@ barry-staeの解決策を改善する。このスニペットを〜/ .bashrcに貼り付けてください
function mdviewer(){
pandoc $* | lynx -stdin
}
それから私達はすぐにコマンドラインからファイルを見ることができます。 SSH/Telnetセッションでもうまく動作します。
mdviewer README.md
http://tmpvar.com/markdown.html 。マークダウンを貼り付けると、それが表示されます。それはちょうどうまくいくようです!
ただし、コードの構文強調表示オプションは処理されないようです。つまり、~~~Ruby
機能は機能しません。 「Ruby」を印刷するだけです。
私はGitHub Flavored Markdownのためにオプション--from=gfm
を付けてPandocを使います:
$ pandoc my_file.md --from=gfm -t html -o my_file.html
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)
Elinksの一般ユーザー向けに@ barry-stateおよび@Sandeepの回答を改善するには、次を.bashrcに追加します。
function mdviewer() {
pandoc $* | elinks --force-html
}
Pandoc(およびelinks)をインストールすることを忘れないでください。
「手っ取り早い」アプローチは、クローンを作成する代わりに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つ目を実行するだけでは、ページを正しく表示するために必要ないくつかの依存関係を見逃すことになります。