• 2018-08-06
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/08/pythonmarkdownhtml.html

PythonでMarkdownをHTML出力する

ちょっと自分でMarkdownエディタを作ってるんですけどね、PythonでMarkdownファイルを読み込んでHTML出力すれば良いのか調べました。

markdownをインストール


PythonでMarkdownをHTML変換してくれるツールは「Markdown」です。そのままですね。(;^_^)

以下のコマンドでインストールしましょう。


  • pip install markdown


markdownをHTML出力

では、いざHTML出力に行きます。

マークダウンファイルを読み込んで、そのテキストをmarkdownに食わせればHTMLが出力されます。

open(file_path,encoding="utf-8") as f:
html = markdown.markdown(f.read())

たった2行でOK。結果を見てみましょう。


ザッとは表示されていますが、ちょっと問題が……。
テーブルが表示されません。

extensions追加

上記のソースだとmarkdownの全機能が開放されていないみたいで、部分的にHTML変換が出来ていない部分もあるんですよ。

以下の例だと、テーブルがレンダリングされずにそのまま文字列として出力されてしまっています。


これを解決するにはextensionsを追加しなければなりません。

open(file_path,encoding="utf-8") as f:
html = markdown.markdown(f.read(), extensions=[
            'markdown.extensions.abbr',
            'markdown.extensions.admonition',
            'markdown.extensions.attr_list',
            'markdown.extensions.codehilite',
            'markdown.extensions.def_list',
            'markdown.extensions.extra',
            'markdown.extensions.fenced_code',
            'markdown.extensions.footnotes',
            'markdown.extensions.headerid',
            'markdown.extensions.meta',
            'markdown.extensions.nl2br',
            'markdown.extensions.sane_lists',
            'markdown.extensions.smart_strong',
            'markdown.extensions.smarty',
            'markdown.extensions.tables',
            'markdown.extensions.toc',
            'markdown.extensions.wikilinks',
        ])

これでテーブルのHTML変換が作動しました。


上記で追記したoptionsのうち、テーブル出力に対応しているのは「markdown.extensions.tables」でしょう。

それ以外がそれぞれ何の機能を管轄しているのかは調べていませんが、上のソースでフル解禁されていることになります。

また、markdowsには「方言」があって、extensionsを追加すれば標準には無い自分のエディタ専用のレンダリングを行う事も可能なようです。

0 件のコメント:

コメントを投稿

お気軽にコメント下さい。