ブログを書くとき、「エディタは使い慣れたMarkdownがいいけれど、WordPressにコピペして整形するのは面倒……」と感じたことはありませんか?
今回は、PythonのmarkdownライブラリとWordPress REST APIを組み合わせて、ローカルのMarkdownファイルを一瞬で「下書き投稿」するスクリプトを解説します。
1. 処理の全体像
このスクリプトは大きく分けて3つのステップで動いています。
- Markdownの読み込み: ローカルファイルを読み込み、1行目を「タイトル」、2行目以降を「本文」として分離します。
- HTML変換:
markdownライブラリを使い、WordPressが解釈できるHTML形式へ変換します。 - API送信: 変換したデータをWordPressのREST APIへ投げ、記事を作成します。
2. スクリプトの解説
ステップ1:MarkdownをHTMLに変換する
WordPressは基本的にHTMLでコンテンツを保持します。そこで、Pythonのmarkdownパッケージを利用します。
# 'extra' 拡張を使うと、表(テーブル)なども扱えるようになります
html_content = markdown.markdown(body_markdown, extensions=['extra', 'codehilite'])
Point:
extensions=['extra']を指定することで、標準的なMarkdownだけでなく、テーブル(表)や脚注などの高度な記述にも対応できるようになります。
ステップ2:認証(Basic認証)
WordPress APIを叩くためには「合言葉」が必要です。ユーザー名とアプリケーションパスワード(WordPress管理画面で発行可能)をBase64形式でエンコードしてヘッダーに含めます。
ステップ3:JSON形式でデータをPOST
最後に、タイトルと変換後のHTMLを辞書形式にまとめ、APIエンドポイントへ送信します。
data = {
"title": title,
"content": html_content, # ここがHTMLになる
"status": "draft", # いきなり公開せず「下書き」に設定
}
3. 実行時の注意点
- 環境構築: 事前に
pip install requests markdownでライブラリをインストールしておきましょう。 - アプリケーションパスワード: 自分のログインパスワードではなく、WordPressのユーザー設定画面で発行する「アプリ専用パスワード」を使用してください(セキュリティ上重要です!)。
- シンタックスハイライト:
codehilite拡張を使う場合、表示側のWordPressテーマにCSSが設定されていないとコードが綺麗に色分けされないことがあります。
まとめ
このスクリプトを使えば、VS Codeなどで書いたドキュメントをコマンド一つでWordPressへアップロードできます。
「執筆はローカルで爆速に、公開はWordPressでスマートに」
これで快適なブログライフをぜひ手に入れました!

コメント