GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

trentm

python-markdown2 – markdown2:MarkdownをPythonですばやく完全に実装する

投稿日:

markdown2:MarkdownをPythonですばやく完全に実装する

Markdownは軽いテキストマークアップフォーマットであり、それをHTMLに変換するプロセッサーです。 発信者は、次のように記述します。

Markdownは、Webライター向けのテキストからHTMLへの変換ツールです。 Markdownを使用すると、読みやすい使いやすいテキスト形式で書いてから、構造的に有効なXHTML(またはHTML)に変換することができます。

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

これ(markdown2)は、MarkdownのPythonの完全で完璧な実装です。 Perlで実装された元のMarkdown.plの動作とよく似たものに書かれています。 Markdown2には、シンタックスカラーリング、テーブル、ヘッダーIDなどの拡張機能(「エクストラ」と呼ばれる)もいくつか付属しています。 下記の「余分な構文」を参照してください。 “markdown2″は、2.4から3.3までのPythonのすべてのバージョン(pypyとjythonをサポートしていますが、頻繁にテストしていません)をサポートしています。

もう一つPythonのmarkdown.pyがあります。 しかし、少なくともこのプロジェクトが開始された時点で、markdown2.pyはより速く( パフォーマンスノートを参照)、私の知る限り、より正確でした( テストノート参照)。 それはしばらく前ですが、Python-markdownをあなたの配慮から割り引いてはいけません。

python- markdown2の更新については、 @trentmickに従ってください。

Travis-ci.orgのテストステータス:

インストール

Pythonインストールにインストールするには、次のいずれかを実行します。

pip install markdown2
pypm install markdown2      # if you use ActivePython (activestate.com/activepython)
easy_install markdown2      # if this is the best you have
python setup.py install

しかし、これを実行するために必要なものはすべて “lib / markdown2.py”にあります。 それが簡単な場合は、そのファイルをPythonPath(モジュールとして使用する)または実行可能なパス(スクリプトとして使用する)のどこかにコピーすることができます。

クイック使用法

モジュールとして:

>>> import markdown2
>>> markdown2.markdown("*boo!*")  # or use `html = markdown_path(PATH)`
u'<p><em>boo!</em></p>\n'

>>> from markdown2 import Markdown
>>> markdowner = Markdown()
>>> markdowner.convert("*boo!*")
u'<p><em>boo!</em></p>\n'
>>> markdowner.convert("**boom!**")
u'<p><strong>boom!</strong></p>\n'

スクリプト(CLI)として:

$ python markdown2.py foo.md > foo.html

私はピップベースのインストールもこれを有効にすると思う:

$ markdown2 foo.md > foo.html

詳細は、 プロジェクトwikilib / markdown2.py docstringsおよび/またはpython markdown2.py --helpを参照してください。

余分な構文(別名拡張子)

多くのMarkdownプロセッサには、オプションの追加構文(「拡張機能」と呼ばれることもあります)のサポートが含まれています。また、markdown2も例外ではありません。 マークダウン2では、これらは「エクストラ」と呼ばれます。 例として “footnotes”を余分に使用すると、余分なものをモジュールとして使う方法があります:

$ python markdown2.py --extras footnotes foo.md > foo.html

スクリプトとして:

>>> import markdown2
>>> markdown2.markdown("*boo!*", extras=["footnotes"])
u'<p><em>boo!</em></p>\n'

テーブル、脚注、 <pre>ブロック、自動リンクパターン、目次、Smarty Pants(ファンシー引用符、ダッシュなど)などのシンタックスカラーリングのために、現在実装されているエキストラがいくつかあります。 詳細については、 Extras wikiページを参照してください。

プロジェクト

python-markdown2プロジェクトはhttps://github.com/trentm/python-markdown2/にあります (注:2011年3月6日、このプロジェクトはGoogle CodeからGithubに移されました 。) Python Package Index(PyPI)のmarkdown2も参照してください。

変更ログ: https : //github.com/trentm/python-markdown2/blob/master/CHANGES.md

バグを報告するには: https : //github.com/trentm/python-markdown2/issues

貢献する

私たちはコミュニティからのプルリクエストを歓迎します。 このプロジェクトを支援する機会をTODOで見てください。 python-markdown2プルリクエストを提出したい場合は、次の要件を満たしていることを確認してください。

  • それはPEP8を通過しなければならない。
  • 関連するテストカバレッジを含める必要があります。
  • バグを修正するには、バグを実行する回帰テストが含まれている必要があります。
  • テストスイート全体が通過する必要があります。
  • READMEおよび/またはドキュメントはそれに応じて更新されます。

テストスイート

このマークダウンの実装は、かなり広範なテストスイートをパスします。 それを実行するには:

make test

テストスイートの要点は、.text(input)ファイルと.html(expected output)ファイルが一致する多数の “cases”ディレクトリです。 これらは:

tm-cases/                   Tests authored for python-markdown2 (tm=="Trent Mick")
markdowntest-cases/         Tests from the 3rd-party MarkdownTest package
php-markdown-cases/         Tests from the 3rd-party MDTest package
php-markdown-extra-cases/   Tests also from MDTest package

詳細については、 Testing Notes wikiページを参照してください。







-trentm

執筆者: