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
パイプ入出力( STDIN
とSTDOUT
)は完全にサポートされています。
例えば:
$ 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形式というのは
いろいろな言語で使えるようで
- Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
- Java開発者のためのYAML入門:XMLやJSONとの違い (1/3):CodeZine(コードジン)
- C#でYAMLを使えるか試してみた | OPC Diary
PyYAMLについて、参考になりそうなサイトをググってみると
JSONはおなじみだがYAMLにはなじみがなかったので。