メインコンテンツへスキップ
  1. 記事/

Wordpressの記事をMarkdown形式に一括出力したい

雑記 Wordpress
著者
麻婆ペレット
まぼペです。メイポやってます。かえで/ハヤト
目次

個人的な覚え書きです。

wordpress、めんどくさい
#

当ホームページは 以前記載した通り、OCI(Oracle Cloud Infrastructure)の無料アカウントでLinuxの無料サーバ(Always Free)をレンタルし、NGINXとWordpressをインストールして動いています。
開設して1年も経っていないですが、WordpressをOCIの無料アカウントで運用するにあたり以下のような不便さを感じていました。

  • 無料サーバで動的サイトを表示しているので動作が重くページを表示するのに時間がかかる
  • Wordpressがセキュリティ的に不安。また、プラグインやテーマの更新が面倒
  • NGINXやMySQLの面倒も自分で見なければならないので、趣味で保守するには重い

そこで、ホスティングサーバをレンタルするのではなくて、CloudfrarePageやGitHub Pagesで、静的に配信する方法に切り替えようと考えています。大体1か年計画くらい。
静的サイトを構築するフレームワークは多数ありますが、今回は比較的知見の多そうなHugoを利用してみることにしました。

Wordpressの記事をMarkdown形式に一括出力したい
#

WordpressからHugoへの乗り換えを行うにあたり、テーマの選定、それから記事の移植が求められます。

テーマは前評判のよさそうなBlowfishを利用することにしました。

さて、移行するには書き溜めた記事を移植しなければなりませんが、Hugoの記事はMarkdown形式で作成する必要があります。 wordpress記事の移植は 公式ではWordpressのプラグイン「wordpress-to-hugo-exporter」を使えと記載があるのですが、OCIでレンタルしているサーバのスペックが低いせいか、うまく出力できません。

そこでツール「wordpress-export-to-markdown」を利用して、ローカルでWordpressの記事をMarkdown形式に変更することにしました。使い方は以下の通り。

wordpressの記事をエクスポートする
#

wordpressの管理画面でツール→エクスポートを選択。
「エクスポートする内容を選択」で「すべてのコンテンツ」を選択して「エクスポートファイルをダウンロード」をクリック。xmlファイルがダウンロードされるので適当なところに保存。

人によって設定画面は違うと思います

Node.jsをインストールする
#

Node.jsはjavascriptの実行環境です。既にインストールされていたら割愛。Node.jsの公式サイトからダウンロード。後述のwordpress-export-to-markdownの利用推奨バージョンをダウンロードすべきですが、悩んだらとりあえず推奨版をインストールしといけばいいんじゃないでしょうか。javascriptはほとんど触ったことがないので勘でやっていきます。

wordpress-export-to-markdownをダウンロード
#

wordpress-export-to-markdownのGithubページからzipをダウンロード。
解凍して適当なディレクトリに設置しておきます。

wordpress-export-to-markdownを実行
#

PowerShellを起動。前項で解答したwordpress-export-to-markdown内(package.jsonが格納されているディレクトリ内)に移動します。今回はデスクトップへの解凍を想定。

cd C:\Users\hoge\Desktop\wordpress-export-to-markdown

その後同ディレクトリ内でnpmを実行。パッケージをインストール

npm install

最後にnpxでwordpress-export-to-markdownを実行

npx wordpress-export-to-markdown

実行するといろいろ聞かれますがここは公式サイトの optionsを参照してください。worpressからダウンロードしたxmlファイルのパスや、出力先を入力します。

しばらく待ってAll done!と言われたら完了です。

Hugoから確認
#

出力したフォルダを確認します。固定ページはpageフォルダに、ブログ部分はpostフォルダに出力されています。フォルダをたどっていくと、Markdownに変換された本文ファイルindex.mdと本文に添付された画像ファイルが格納されているimagesフォルダがあります。

これをまるまるHugoのcontentフォルダにコピーして、Hugoを起動。出力内容を確認します。

サイトの見た目はまだまだ着手できていません。

無事記事を移植できました。

Hugoに移行する上での課題
#

一応移植はできましたが、さすがにそのまま使えない部分もあります。

  • wordpressのプラグインを利用して表示していた部分は手直しが必要
  • 内部リンクの修正も必要
  • 既存URLから新サイトに飛べるよう、index.mdのURLの修正が必要

このwordpressのプラグイン関係が思ったよりも面倒で修正に時間がかかりそうです。また、wordpressでできてHugoではできないことはたくさんあります。

  • ブログカード、アコーディオンメニューは自分でショートコードを作成する必要がある。
  • 画像のサイズが思うようにリサイズできないhtmlを使ってリサイズできました
  • CSSが思うように適用されない
  • RSSリーダーの設定ができるか不明できた

ほどんど私の技術的な問題だとは思いますが、ゆっくりと移行作業を進めていこうと思います。

余談
#

手直しはMarkdown対応エディタのobsidianを使っています。超便利でオススメ。

2024/07
Markdownを使うこともありますがhtmlもそれなりに使うので、無難にどっちもプレビューできるVisual Studio Codeに落ち着きました。

Related

サーバを再起動したらWordpressに接続できなくなった
雑記 OCI Wordpress
パソコンと周辺機器を購入した話
雑記 PC
非公式メイプル公式サイト更新情報BOTを作成しました
雑記 雑記 Twitter Bot プログラミング