440

GitHub フレーバーの Markdownファイルを取得して HTML にレンダリングするためのコマンド ライン ユーティリティがあるかどうか疑問に思っています。

GitHub wiki を使用して Web サイトのコンテンツを作成しています。サーバー上のリポジトリを複製した後、それを通常の HTML に処理したいと考えています。GitHub に表示されるものが、まさに私の Web サイトでどのように表示されるかが重要です。また、フェンスで囲まれたブロックを~~~で使用したいので、標準の Markdown 構文のみを使用したくありません。

Node.js にフックできると思って、JavaScript のライブ プレビューを少し調べましたが、非推奨であるとのことです。redcarpet リポジトリを確認しましたが、コマンド ライン インターフェイスがないようです。

私は独自のソリューションを作成しましたが、他のソリューションより明らかに優れているソリューションはないため、回答を選択せず​​に質問を残します。

4

26 に答える 26

471

Python で小さな CLI を作成し、GFM サポートを追加しました。これはGrip (Github Readme Instant Preview)と呼ばれます。

次を使用してインストールします。

$ 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
  • 2.0 で追加された、リンクされたファイル間を移動する ( vladwingに感謝します!)
  • 2.0で追加された単一のファイルへのエクスポート(ありがとう、iliggio!)
  • 新規: 3.0 で追加された読み取りstdinとエクスポートstdout

これが誰かに役立つことを願っています。それをチェックしてください

于 2012-12-08T20:03:02.730 に答える
118

GitHub 風 Markdown の迅速で簡単な方法は見つかりませんでしたが、もう少し一般的なバージョンであるPandocを見つけました。Markdown、Rest、HTML などの多くのフォーマットとの間で変換します。

Makefileまた、すべての .md ファイルを .html に変換する方法も開発しました(大部分は、 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 $@
于 2011-11-08T12:19:16.877 に答える
29
pip3 install --user markdown
python3 -m markdown readme.md > readme.html

GitHub 拡張機能は処理しませんが、何もないよりはましです。モジュールを拡張して、GitHub の追加を処理できると思います。

于 2012-08-20T21:07:29.520 に答える
29

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

gem install github-markdown

ドキュメントはありませんが、ゴラムのドキュメントから入手しました。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ます。これは、サニタイズなしで本番環境で使用するのは安全ではないことに注意してください。

于 2012-11-14T13:40:02.313 に答える
26

私が使用するターミナルで README.md ファイルを読むには:

pandoc README.md | lynx -stdin

Pandoc はそれを HTML 形式で出力し、Lynx が端末にレンダリングします。

それはうまく機能します: それは私の端末をいっぱいにし、ショートカットが下に表示され、スクロールでき、リンクが機能します! ただし、フォント サイズは 1 つしかありませんが、色 + インデント + 配置がそれを補います。

インストール:

  • 適切:sudo apt-get install pandoc lynx
  • ニックス:nix-shell -p pandoc lynx
于 2014-12-16T11:29:53.437 に答える
25

おそらくあなたが望むものではありませんが、あなたがNode.jsについて言及したので、GitHub Flavored MarkdownドキュメントをGitHubにコミットする前にローカルドライブでプレビューするための良いツールが見つからなかったため、今日はNode.jsに基づいて作成しました: https ://github.com/ypocat/gfms

したがって、質問がまだ実際のものである場合は、Wiki の showdown.js を再利用できます。そうでない場合は、私と同じ問題に直面している他の人が (私と同じように) この質問とそれに対する答えを見つけるでしょう。

于 2012-01-29T08:31:58.057 に答える
19

GitHub には、使用できるMarkdown APIがあります。

于 2014-06-23T02:21:50.377 に答える
14

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

例は次のとおりです。

$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
于 2012-10-25T12:59:37.000 に答える
12

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

vmd

于 2015-02-24T10:56:54.573 に答える
9

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

于 2016-08-23T19:06:58.057 に答える
6

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


[Github] が Markdown ファイルをレンダリングする方法に興味がある場合は、Sundown ライブラリへの Ruby インターフェースであるRedcarpetをチェックしてみてください。

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

于 2011-10-08T05:04:05.040 に答える
4

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

デフォルトのプリインストール パッケージMarkdown PreviewCtrlでは、 + Shift+を使用して別のタブにプレビューを表示できますM

私はその完全な構文をテストしていませんが、これは GitHub からのものであるため、プレビューの構文が彼らのもの (work を使用するフェンシングされたブロック) と異なっていたら非常に驚くでしょう~~~

現在、技術的にはコマンドライン ベースではありませんが、Node.js を使用してDOMベースのレンダラーに出力します。これは、Node.js ベースの Web サーバーで GitHub 構文ベースの HTML をレンダリングしようとしている人、または単に編集しようとしている人に役立つ可能性があります。 /彼の README.md オフライン。

于 2014-07-31T02:09:47.173 に答える
4

私の最終的な解決策は、Python Markdownを使用することでした。フェンスブロックを固定する自作の エクステンションを巻きました。

于 2012-01-30T18:44:49.617 に答える
1

「手っ取り早い」アプローチはwget、クローンを作成する代わりに、ユーティリティを使用して wiki HTML ページをダウンロードすることです。たとえば、これは GitHub から Hystrix wiki をダウンロードした方法です (私はUbuntu 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 番目のものは、その上のすべてのサブページを呼び出します。を開いて wiki を参照できるようになりましたNetflix/Hystrix/wiki.1.html

への両方の呼び出しwgetが必要であることに注意してください。2 番目のものだけを実行すると、ページを適切に表示するために必要ないくつかの依存関係が失われます。

于 2015-05-22T11:58:52.383 に答える
-1

Markdown ファイルからドキュメントを生成する必要があり、GitHub スタイルが非常に優れているため、最近、あなたが望むものを作成しました。それを試してみてください。Node.jsで書かれています。

gfm

于 2013-02-10T15:42:20.777 に答える