Boostnote から WordPress に画像つきで記事投稿する

Boostnote
スポンサーリンク

Boostnote から WordPress への投稿は標準にある

画像の投稿の部分を除けば、 Boostnote から直接 WordPress への投稿をする方法は標準であります。

Boostnoteからwordpressに投稿する時に注意する事 - doudemo.info
現状、Boostnoteとwordpressの連携機能はイマイチ。でも Boostnoteが素晴らしいツールであることに変わりはないのでインストールナウ!

ここの記事にもあるように、最終的には "コピペしてしまえ" というぐらいの使いようしかないです。画像アップロードにも対応していないですし、Markdown を HTML に書き換えてから書き出すことになるので Markdown の状態で WordPress 上で管理できるようになるわけではありません。認証には JWT も使えるのでそちらはさほど問題にならなさそうです。

なぜ Boostnote で記事作成したいのか

ローカルのドラッグアンドドロップで記事中に画像を挿入することができるので、とてもお手軽であることです。いちいちメディアアップロードをして画像を選択する手間が省けます。

画像自動アップロード付きスクリプトの作成

というわけで、使い勝手のあまり良くない標準のアップロードに変わって投稿できるスクリプトを作成することにしました。作ったのはこちら。

GitHub - fx-kirin/boostnote_to_wordpress: Post boostnote article to wordpress. Including image uploading.
Post boostnote article to wordpress. Including image uploading. - fx-kirin/boostnote_to_wordpress

導入方法

あまり Windows 上での動作を想定して作成していないというのはご注意ください。

記事内の画像リンクの自動変換は Mistune というライブラリとその派生ライブラリを使っているのですが、派生ライブラリの方は PYPI での更新がなされていないようなので、 Github から直接インストールすることにします。

Python に馴染みのある方なら、スクリプト自体は pip コマンド一つでインストールできます。ただ、このスクリプトを使うにあたっては、下のプラグインの導入と設定が必要になります。

pip install git+https://github.com/lepture/mistune-contrib
pip install boostnote_to_wordpress

こちらのプラグインを導入して、 OAuth に必要なキーや認証コードなどを作成しておきます。

GitHub - WP-API/OAuth1: OAuth server implementation for WP API
OAuth server implementation for WP API. Contribute to WP-API/OAuth1 development by creating an account on GitHub.

あとは初回のスクリプトの起動時に設定を聞かれるので、入力すれば自動でホームディレクトリの .config/markdown_to_wordpress 下に config.yml ファイルが保存され、次回移行はそのファイルを使って自動で投稿してくれるようになります。

使い方

コマンドラインから以下のように実行します。

upload2wp <your boostnote scon file> [<wordpress article status>]

scon ファイルというのは、 WordPress の保存先に設定したフォルダ下の note フォルダにあります。そこで該当するファイルを探してください。 Boostnote の右上のインフォメーションボタンでファイルに使われている UUID が確認できます。私は更新時間が手っ取り早いのでそれで確認しています。そのファイルへのパスを第一引数に設定すれば、画像を含めてアップロードできます。

第二引数で記事の投稿状態である "draft" や "publish" などを設定できますが、標準の draft のみで十分でしょう。そのまま publish にすると、マークダウンから HTML への変換が行われる前の状態で記事が表示されてしまいます。

なかなか快適に記事を作成できる環境が整いました。

コメント

タイトルとURLをコピーしました