Python-Markdownをコマンドラインで使う

初回公開:2018/01/01
最終更新:2018/01/13

Command Line — Python Markdown」をつたない翻訳,勝手な解釈。

【 目次 】

Python-Markdownはおもにpythonプログラムのライブラリーとして使われますが、それのみならずコマンドラインで実行されるスクリプトも含まれています。
他にも多くのコマンドライン実装がありますが、それらをインストールしていないかもしれません。
あるいは、Python-Markdownのさまざまな拡張機能extensionsを使いたいと望むかもしれません。

一般的には、Markdownライブラリーを使用してコマンドラインでスクリプトを実行するために、システムにMarkdownライブラリを完全にインストールしておきたいと望むでしょう。
詳細については、インストール手順を参照してください。

Python-Markdownのコマンドラインスクリプトは、Pythonの -mフラグを利用しています。
したがって、python実行可能ファイルがシステムパスにあると仮定すると、
以下の形式で:

$ python -m markdown [options] [args]

これは、オプションと引数が与えられたスクリプトとしてモジュールを実行します。

最も基本的な使い方では、単に引数としてファイル名を渡すだけです:

$ python -m markdown input_file.txt

パイプ入出力( STDINSTDOUT)は完全にサポートされています。
例えば:

$ echo "Some **Markdown** text." | python -m markdown > output.html

使用可能なすべてのオプションと引数を一覧表示するには --helpオプションを使います:

$ python -m markdown --help

-mフラグを使って)Python実行ファイルを直接呼びたくないなら、ラッパースクリプトを使用するために以下の手順に従ってください。


訳者による蛇足

-mフラグについては

セットアップ

インストール時に、 markdown_pyスクリプトがPythonの"Scripts"ディレクトリにコピーされます。
システムパスにあるPythonの"Scripts"ディレクトリにどのようなファイルがあるかを確認するために、異なるシステムは異なる方法を必要とします。

  • Windows:

    WindowsでのPythonのデフォルトインストールを想定すると、 "Scripts"ディレクトリはC:\ Python26 \ Scriptsにある可能性が最も高いでしょう。
    "Scripts"ディレクトリの場所を確認してシステムパスに追加してください。

    コマンドラインから markdown_pyを呼び出すと、インストール時に作成された"Scripts"ディレクトリのラッパーバッチファイルmarkdown_py.batが呼び出されます。

  • *nix (Linux, OSX, BSD, Unix, など):

    それぞれの* nixディストリビューションが異なるので、おそらくすべてを文書化することはできません。
    ここでは、いくつかの役立つ情報を提供します:

    • システムによっては、あなたのパスに自動的にスクリプトがインストールされるものもあります。
      試してみてください、そして動作するかどうかを確認してください。。
      コマンドラインから markdown_pyを実行するだけです。

    • 他のシステムでは、パスに追加する必要がある分離された"Scripts"( "bin")ディレクトリを配置されるかもしれない。
      それを見つけて(あなたの配布物にチェックする)、パスに追加するか、パスからシンボリックリンクを作成します。

    • markdown_pyがパス上にあるか確認して、それでもまだ見つからないなら、ファイルのパーミッションをチェックし、実行可能であることを確認してください。

    これらの代わりに、ソースディストリビューションを含むディレクトリにただcdしてそこから実行します。
    けれども、マークダウンテキストファイルはそのディレクトリにはない可能性が高い。
    そこで、パスのとおったデレクトリにmarkdown_pyが存在した方が断然,便利です。

注意

Python-Markdownは " markdown_py "をスクリプト名として使います。
なぜなら、Perlの実装ではすでに、"markdown"というより明確なスクリプト名が使われているからです。
さらに、いくつかのシステムではデフォルトのPythonの設定は、"markdown.py"と名付けられたスクリプトがmarkdownライブラリーではなく、むしろそれ自身をインポートする事による失敗の原因になるでしょう。
それゆえ、妥協策として、このスクリプトは"markdown_py"という名前になっています。
もし、あなたのシステムにおいてスクリプトのために異なる名前がお好みなら、お好みの名前で markdown_pyへのシンボリックリンクを作成することをお勧めします。

使い方

コマンドラインから markdown_pyを使うには、次のように実行します。

$ markdown_py input_file.txt

または

$ markdown_py input_file.txt > output_file.html

オプションの完全なリストについては、

$ markdown_py --help

Extensionsを使う

コマンドラインからPython-Markdownのextensionをロードするには、 -x(または --extension)オプションを使います。
extensionモジュールはあなたの PYTHONPATHになければなりません
(詳細はExtension APIを参照)extensionはPythonのドット構文を使用して、そのモジュールの名前で呼び出すことができます:

$ python -m markdown -x path.to.module input.txt

複数のextensionsをロードするには、各extensionに -xオプションを指定します:

$ python -m markdown -x markdown.extensions.footnotes -x markdown.extensions.codehilite input.txt

もし、extensionでコンフィグレーションオプションがサポートされているなら(どのような設定がサポートされているかは、extensionのためのドキュメントを参照)、それらを渡すこともできます:

$ python -m markdown -x markdown.extensions.footnotes -c config.yml input.txt

-c(または--extension_configs)オプションはファイル名を受け入れます。
ファイルはYAMLまたはJSONのいずれかの形式でなければなりません。
そして、、markdown.Markdownクラスのextension_configsキーワードによって要求される形式でPythonディクショナリにマップされたYAMLまたはJSONデータが含まれます。

したがって、ファイル config.yamlは上記の例では次のようになります。

markdown.extensions.footnotes:
    PLACE_MARKER: ~~~~~~~~
    UNIQUE_IDS: True

--extension_configsオプションは"markdown.extensions.footnotes"extensionを指定していますが、-xオプションでextensionをロードする必要があります。
さもないと、そのextensionのコンフィグレーションは無視される事に注意してください。

PyYAMLがシステムにインストールされている場合のみ、--extension_configsオプションはYAMLのコンフィグレーションファイルをサポートします。
JSONは依存するものを追加しないでも動作するはずです。
フォーマットのコンフィグレーションファイルが自動的に検出されます。

警告

これまでにドキュメント化されていたextensionのコンフィグレーションオプションを文字列としてextension名に対して追加する方法は、Python-Markdownバージョン2.6では推奨されないでしょう。
--extension_configsオプションが代わりに使われるべきです。
詳細は、2.5 release notesを参照してください。


訳者による蛇足

YAML形式というのは

いろいろな言語で使えるようで

PyYAMLについて、参考になりそうなサイトをググってみると

JSONはおなじみだがYAMLにはなじみがなかったので。

ページのトップへ戻る