Pythonの「markdown」ライブラリでMarkdownをHTMLに変換する方法

2024年11月20日水曜日

Python

t f B! P L

Markdownは、軽量で読みやすいマークアップ言語としてIT技術者を中心に広く使われています。ブログ記事やドキュメント、GithubのREADMEファイルなどでよく見かけますよね。このブログでは、Pythonの「markdown」ライブラリを使って、Markdown形式のテキストをHTMLに変換する方法をわかりやすく紹介します。

「markdown」ライブラリのインストール

まずは「markdown」ライブラリをインストールしましょう。インストールはとても簡単で、pipコマンドを使うだけです。

pip install markdown

これで「markdown」ライブラリがインストールされました。

MarkdownをHTMLに変換してみよう

「markdown」ライブラリを使って、MarkdownテキストをHTMLに変換するのはとても簡単です。以下のPythonコードを見てみましょう。

import markdown

# Markdownテキストの用意
md_text = """
# こんにちは、世界!

これはMarkdown形式のサンプルテキストです。

- リスト項目1
- リスト項目2
- リスト項目3

**太字のテキスト**も使えます。
"""

# MarkdownをHTMLに変換
html = markdown.markdown(md_text)

# 結果を表示
print(html)

上記のコードでは、Markdown形式のテキストをmarkdown.markdown()関数に渡すことで、簡単にHTMLに変換できます。変換後のHTMLは以下のようになります。

<h1>こんにちは、世界!</h1>
<p>これはMarkdown形式のサンプルテキストです。</p>
<ul>
<li>リスト項目1</li>
<li>リスト項目2</li>
<li>リスト項目3</li>
</ul>
<p><strong>太字のテキスト</strong>も使えます。</p>

実用的な使い方

MarkdownをHTMLに変換する方法は、ブログ記事の生成やドキュメントの自動生成など、さまざまな場面で役立ちます。例えば、ファイルからMarkdownテキストを読み込み、それをHTMLに変換するコードも簡単に書けます。

import markdown

# ファイルからMarkdownを読み込む
with open('sample.md', 'r', encoding='utf-8') as f:
    md_text = f.read()

# MarkdownをHTMLに変換
html = markdown.markdown(md_text)

# HTMLをファイルに書き出す
with open('sample.html', 'w', encoding='utf-8') as f:
    f.write(html)

このコードでは、Markdown形式のファイルを読み込み、HTMLに変換して別のファイルに書き出しています。これにより、簡単にMarkdownのドキュメントをHTMLとして公開することができます。

拡張機能の利用

「markdown」ライブラリには、拡張機能を利用してMarkdownの機能を強化することも可能です。例えば、markdown.markdown()関数にextensions引数を渡すことで、追加の機能を有効にできます。

例えば、コードブロックを含むMarkdownを扱う際に便利なfenced_code拡張を有効にすることができます。以下のサンプルコードを見てみましょう。

import markdown

md_text = """
# タイトル

本文には、コードブロックを含めることができます。

```python
print("Hello, Markdown!")
```
"""

# MarkdownをHTMLに変換
html = markdown.markdown(text, extensions=['fenced_code'])

# 結果を表示
print(html)

実行すると、次のようなHTMLが生成されます。

<h1>タイトル</h1>
<p>本文には、コードブロックを含めることができます。</p>
<pre><code class="language-python">print("Hello, Markdown!")
</code></pre>

まとめ

Pythonの「markdown」ライブラリを使うことで、Markdownテキストを簡単にHTMLに変換できます。シンプルな使い方から拡張機能を活用した高度な使い方まで、様々な用途に対応できるのが魅力です。このブログを参考にして、ぜひMarkdownのHTML変換にチャレンジしてみてくださいね。

スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ