ブログをHugoからWordPressに移行したメモ

突然、このブログWordPressの方がコスト安くない?という謎の声が聞こえたのでHugoからWordPressに移行したくなった。ボタン追加したいな〜とCSS書いたりしていたんだけどそれがなんかめんどくさくなったり、アクセス解析とかもアナリティクスでやっていたりしたんだけどダッシュボード的なところで色々見れるのが僕は好きなんだな、と思ったのであった。色々頑張っても良かったんだけど、諸事情で他のプロジェクトでWordPressを見る機会もあったりするのでプライベートで触っていても損はないだろ、と思ったのであった。まあサーバの管理とか考えるとHugoでいいかと思ったと思うけど、色々あってそういうのを考えなくていい手段があったのでWordPressに移行した。

さて、現行の「火だるまらんたん」はHugoで構築されている。過去にWordPress→Middleman→Hugoと移行してのWordPressへの帰還であるから、実は古い記事なんかは特に色々シッチャカメッチャカになっている。画像のリンクとかは辛うじて置換してきたりしたのであるが、コードブロックとかの記法が結構適当な感じになっていた。単純にmd to htmlな変換をするとちょっと汚い感じになるし、そもそもWordPressの投稿画面から頑張ってポチポチ投稿するのは嫌だった。なので、適当なスクリプトを書いた。

j-o-lantern0422/md-to-wp: jolantern.mugcup.xyzをHugoからWordPressに移行させたときのスクリプト

工夫したところ

今までのリンクをクリックして404にはしたくないので、同じURLになるようにした。Hugoというか僕のブログはファイル名が [YYYY-MM-DD-title.md](http://yyyy-mm-dd-title.md) という名前になっている場合と title.md となっている場合とで変わってきていて、 YYYY-MM-DD が頭についている場合 YYYY/MM/DD/title というパスになっていた。なんでそんな2パターンになってるかというと、むかーし雑に立てたWordPressの設定がそんなだったからかな。あとはまあ、 なブロックが邪魔だから消してあげたり(ハイライトが死んだのだが、まあいいや)、メタデータとして持ってるカテゴリーとかそういうのをなるべく持っていけるようにしたりした。どうせ再利用することなんてないだろうし、あるとしたらまたその時の状況に合わせて頑張って書けばいいやと思ったのでかなり雑。

やってること

メタデータとって、要らない要素消して、本文だけ抜き出してmarkdownをhtmlに変換してくれるgemにまかせて変換したのをrubypressというWordPressのAPIラッパーでdocker上のwordpressに突っ込んだ後DBをぶっこ抜いて本番のDBに突っ込み直す。そんで、mysqlのコンソールを開いて下記のSQLを実行した。

UPDATE wp_posts SET guid=REPLACE(guid, "localhost:8080", "jolantern.mugcup.xyz");
UPDATE wp_options SET option_value = 'https://jolantern.mugcup.xyz' where option_name IN ('home','siteurl');
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"localhost:8080","jolantern.mugcup.xyz");

別に本番環境に直接つないでも良かったのではと思ったり。まあいいや。

感想

これでとりあえず外出先からでも更新するのがさほど難しくなくていいなと思いました。結局下書きはNotionで書くんだけど。gh-pagesでやっていたのだが、ブログ1つ更新すんのにブランチきって記事書いてadd commitしてpushしてマージってのがだるくなってきていた。別にmasterにpushでもよかったんだけども。とりあえずなんかこれじゃない、と思っていたので原点に戻ってみた。だいぶやっつけで、空き時間に書いて放置してを3回ぐらい繰り返して書いたコードなので適当さが目立つけどまあ移行できたのでヨシ。

コメント

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