はてなブログからの乗り換え先を一生懸命探しましたけど、はてなブログでイこうかなと思います

f:id:yasay:20211103180208p:plain

ここ二日間くらい、はてなブログからの移行先を一生懸命探していました。しかし、はてなブログでイこうという結論に行き着きました。

はてなブログから移行を検討した理由

移行を検討した主な理由として以下があります。

リポジトリ管理

私はプログラマーですので、GitHubを好んで利用しています。はてなブログの記事情報もリポジトリ管理し、リポジトリ更新をトリガーにはてなブログを更新できれば素敵だと考えました。継続的デリバリーというヤツですね!

Markdown記法

はてなブログMarkdown記法で一番不便だと思っていたのが、改行の扱いです。はてなブログMarkdown記法で改行を扱うには以下の方法があります。

  • 行末に半角スペースを2つ挿入しつつ改行
  • 改行のみの行をはさむ
  • 改行タグ

行末にスペースを2つ挿入しつつ改行

これは少しだけ不便です。GitHubリポジトリ管理しているMarkdownファイル(.md)も同じ仕様ではあるのですが、はてな記法に慣れるととても不便に感じます。また、はてなブログのエディタでスペースをハイライトする方法がブラウザで検索するくらいしかないので、スペースを挿入することを忘れがちになります。この点において、はてな記法はとても便利です。改行を挿入するだけでOKです。半角スペース不要の設定はHexoやHugoなどの静的サイトジェネレーターでも可能です。

改行のみの行をはさむ

改行のみの行をはさむ場合は、段落として扱われてしまうんですかね?ただの改行ではなく少し行間が空いてしまいます。

改行タグ

できれば改行タグ(br)は使いたくないですね。テーブルなどでどうしても使いたい時のみにしたいです。

静的サイトジェネレーターの検討

そこで、静的サイトジェネレーターの利用を検討しました。以下を候補として実際に導入検証してみました。

  • Hexo
  • Hugo

静的サイトジェネレーターのメリットとしては、カスタマイズ性が高く、基本的にバックエンドが不要なので高速なアクセスが可能になることが挙げられます。しかし、実際に動かして検証してみたところ、以下のようなデメリットがありました。

  • テーマ毎に設定項目が変わることによる学習コスト
  • 高度な機能の実装が期待した挙動を示さない可能性

テーマ毎に設定項目が変わることによる学習コスト

HexoもHugoもテーマありきです。特にHugoは、initコマンドを実行しても初期テーマが導入されず自分でテーマを選ぶ必要があります。このテーマが曲者で、ドキュメントが充実していなかったり、設定変更しても微妙に期待した挙動を示さなかったりして、テーマを覚える学習コストが発生します。私が望むことはテーマのカスタマイズに習熟することでしょうか?違いますね。

高度な機能の実装が期待した挙動を示さない可能性

静的サイトジェネレーターを調べれば調べるほど、はてなブログがよく出来ていることが分かります。検索コメント目次SNSシェアリンクプレビューなど、読み手にとって便利な機能が満載です。これをHexoやHugoで実現しようとすると、実現可能ではあるのですが ... 期待した機能を完璧に実現させるとなると大きな労力が発生します。移行ですからはてなブログと同等の機能を求めるわけですが、検索機能ひとつ取っても、検索結果の内容がはてなブログとは異なり期待した結果が得られない場合があるわけですね。ここに学習コストを割くのも少し違う気がしますね。余程暇かスーパーフロントエンドエンジニアなら別ですが...。

はてなブログの記事をリポジトリ管理するという選択肢

静的サイトジェネレーターはメリットもあればデメリットもあるということが分かりました。それでは別の方法を探ってみましょうか。はてなブログの記事をリポジトリ管理するという方法です。これは既にいくつかのOSSGitHubに公開されております。代表的なOSSblogsyncがあります。

github.com

CircleCIを利用して、自動的に変更差分のPRを作成することも可能です。はてなブログの更新は基本的にエディタで行い、blogsyncでリポジトリ管理するという方法はありよりのありだと思います。リポジトリは移行のためのバックアップのような役割になってしまうと思いますが、文章校正や他のメディアへの横展開などにも利用できるかなと思います。

はてなブログのデメリットには目をつむる

デメリットと言うと少し違うかもしれませんが、無料版において、はてなブログはいくつかの制約があります。例えば以下のような制約です。

しかしこれには目をつむりましょう。特に収益化を目指していないこのブログでPROプランに加入するのは少し違う気がします。最近投稿も減っていますしね...

Markdownの改行仕様には慣れる

Markdownの半角スペース2つによる改行は、私自身が慣れていく必要があるのかなと思います。GitHubのmdファイルだって半角スペース2つが必要です。そもそも、文章を読ませるブログにおいて明示的な改行がそこまで必要でしょうか。画面サイズが小さい場合などにおいて、明示的な改行が逆に読みにくくさせるかもしれません。

今後はblogsyncによる自動バックアップの仕組みを構築しようと思います。

blogsyncによる自動バックアップの仕組みは、別のエントリーとして投稿したいと思います。

総括

結局、新しいブログへの移行は実現しませんでしたが、静的サイトジェネレーターやblogsyncの利用や検証などいい経験値が得られたと思います。