さようならWordPress

これまで2年ほどブログ書きは下のようなフローでやってきました1

Emacs > org2blog > WordPress > freenom > AWS

しかし

  1. org2blogがなかなか曲者でときどき言うことを聞かなくなったりします
  2. WordPressのバージョンアップが激しくてついていけない(涙)
  3. SSL対応をしなくてはと思いつつおっくうで着手せず気がかりでした
  4. AWSの無料サービス期間が終わって年間使用料金が 重荷 になってきました

などなどから一念発起。この際、ブログ書きの流れをつぎのように変えようと思いました。

Emacs > org-mode > ox-hugo > Hugo > Netlify > GitHub

この流れだとコストとしてはNetlifyだけを心配すればよいわけですが、とうぜん 無料枠 (starter)で行きます。ちなみにNetlifyの無料枠は次のようになっています。

転送量(bandwith)                     100G/月
ビルド時間(build minutes)             300分/月
フォール投稿(form submission)          100回/月
リクエスト回数(serverless functions)   125,000回/月

ふつうの善良な市民の個人ブログでこれを超えるようなことはちょっと考えられないです。とくにリクエスト回数が月に 125,000回 を超えるなんてことはまず心配無用、もしそんなことが起こればそれはまことにめでたいことです(笑)

四苦八苦ログ

ところが意気揚々と引っ越し作業を始めてみるとあちこちに 地雷落とし穴 が!ちゃんとした「新装開店」まで まだ一山も二山もあるかと思います。

最大の難関

NetlifyがGitHubレポジトリをデプロイするところでかなりはまりました。ウエッブで調べてみると、とても簡単だったという記事がある一方で、ひどくハマったという記事が英語でも日本語でも多数あります。それらを見ながらほんとうにいろいろやりました。

文字通り四苦八苦しましたが、ついに 2021/03/25 に初デプロイ成功!。うまくいった理由は

  1. hugoを hugo_extended_0.81.0_Linux-64bit.deb にアップしたこと

  2. Netlifyウエブサイトの’Deploy settings’中の’Build settings’の内容をGitHubのサイトルートにしたこと

    Base = bingo/
     :
    Publish = public
     :
    

などが奏功したのではないかと思いますが、じつは理由はよく分かっていません。

何回もやりなおして苦労したので、後日 org-mode+~ox-hugo+Hugo+Netlify+GitHub でホームページを公開する手順を整理して備忘録としてまとめようと思います。

Hugoテーマの変更

ここでもハマりました。つまらないことですがテーマによって必要なディレクトリの名称が postsだったりpostだったり!それ以外にもテーマを変更したときに変更の必要な設定ファイル類があちこちに在ります。分かるまでエラーの嵐でした。

まったく新規にレポジトリを作ってテーマの設定をまっさらな状態で行えばスムーズなのでしょうが、そうるすとNetlifyのデプロイをやり直さなければなりません。そこでまたハマる。

それから、いったんローカルのある特定のディレクトリでhugo初期化した投稿記事原稿には、環境が変わると変更が必要になるところがあります2。40から50本程度の記事数ですが、手作業ではできないのでその都度スクリプトを書いたりして、結構つかれました3

あとヘッダー内の ARCHIVES という語を POSTS に変更したくて、コード内を grep -ir したのですが見つからず困ってました。そしたら灯台下暗し、 config.toml 内で簡単に書き換えできました。

Netlifyのドメイン名変更

ここはまだハマった状態です(笑)。

環境

ソフトウエアの環境は次のとおりです。

Software Version
OS Ubuntu20.04
Emacs 26.3
org-mode 9.4.4
ox-hugo 0.7
hugo extended 0.81.0
git 2.25.1

(これはテストページです)

Footnote


  1. 今は昔、HTML=ホームページの黎明期、国内の大学で学科単位のHPを持っているところがほとんどなかった頃、HTMLの直書きで所属学科のHPを一人で書きました。その時の記憶が少しだけ残っていて今回の作業にもいくらか役に立ちました。 ↩︎

  2. #+HUGO_BASE_DIR: の変更は必須です。もしこれが記事中に散在する「一般語」と重複すると置換作業が面倒だったのですが、幸い今回は重複ゼロでしたので簡単なスクリプトで一発置換できました。 ↩︎

  3. これを回避する方法があるようです。 ↩︎