横書き日記 - 完了

私的ブログ環境を “非公開の Wordpress.com ブログを Hugo にインポート” という従来の方式から “code-server で Hugo のドラフトを書き GitHub に push して CI で公開” という方式に移行した。

従来は Hugo にエクスポートするほかに App Engine を使って WP のデータからランダムな URL を割り振ったドラフト用のページを生成して友達に送ることもしていた。このドラフト公開用途には oauth2-proxy と Cloud Run を使うことにした。

ブログとは別に Confluence Cloud の fee tier で防備録 Wiki をつけていたが、それもこの新しいブログに統合した。(目次の下の方にひっそりリンクがある)。Confluence に書いたものは、気が向いたら手動でコピペしようと思っている。実際に参照したらそのタイミングで移行すればいいかな。


自分のブログ環境には以下のような要件があった。

  • 普段 Chromebook や Linux といったアプリの不自由なラップトップを使っているので、ブラウザの中で作業を完結したい。
  • 複数の PC から編集したい。のでデータはクラウドに置きたい。
  • ブログは書き溜めてあとで公開したい。ただし友人たちには書いたものを送りつけたい。
  • 自分だけが読む日記のようなものも同じ場所に書きたい。場所がいくつもあると書かなくなりがちなので。

自分の防備録 Wiki には以下のような要件があった。

  • やはりブラウザで完結して欲しい。
  • 読むのはウェブブラウザのタブや履歴を使ってサクサクしたいので、 閲覧と編集は別れていてほしい。(Notion はこれができない。)

WP+Confluence には以下のような不満があった:

  • 遅い! どちらもとにかく遅い!
  • WP の Gutenberg editor がめちゃ使いにくい。
  • WP と Confluence の二箇所に書く場所があるのがかったるい。

以下の点は妥協した。

  • WYSIWYG で編集するのは諦めて Markdown を受け入れた。WYWIWYG を諦めて vscode (code-server) の速度をとった。
  • 無料での運用は諦め、code-server の VM 代は払うことにした。e2-micro という一番やすいインスタンスで RAM だけ増やして使っている。$5-$10/m くらいの想定。この運用でいけると確信できたら前払いの discount を行使する予定。
  • モバイルは完全に諦めた。外出先でブログとか書かないのでいいです。

工夫したところ:

  • Messsage Passing で使っていた oauth2-proxy + Cloud Run を static file の配信に転用した。費用をかけずにドラフト公開ができる。
  • 自分専用に小さな vscode extension を書いてブログ草稿の stub ファイルづくりを自動化した。新しい記事を作る認知負荷が高いのが Hugo の弱点だったけど、これで敷居が下がった。
  • パブリック、友人向け、自分向けと三段階の可視性を実現するのに、Hugo の draft (友人向け公開) と expiryDate (自分向け公開) を併用した。

まあ大した工夫はしてないけど、大した工夫をしなくて済むならその方が保守の負担は小さくなるのでそれでいいです。例えば最初は Foam という vscode の拡張を基盤にしようかと試したものの、大掛かり過ぎる(かつ buggy) なので諦めた。

良いところ:

  • 速い! VSCode の速さプラス有償で VM を確保しているおかげで、新規記事作成、保存とプレビューも一瞬。公開は git commit + push で CI が走る都合から遅いけど、非同期なので UI がブロックされたりはしない。既存の記事への移動も速い。URL を覚えていれば Ctrl+P でインクリメンタルサーチできるし、全文検索も普通にある。WP や Confluence にあった遅さへの不満は完全に解決された。満足。
  • データソースが Git のテキストファイルなのでロックインされていない。たとえば Confluence の export は不完全で Blog を export できない。テキストファイルだとそういう不安はない。
  • VSCode 拡張で雑に UX を拡張できる。

良くないところ:

  • code-server の持続性が不安。Coder という on-premise な Github Codespaces 代替みたいなやつをやってる会社なんだけど、いかにも儲かんなくて潰れそう。ただ Codespaces 的な VSCode on Brower/Cloud はあまりに正しすぎて消えることはないと個人的には思っているので、なんらかの代替品が出てくるんじゃないかと期待している。し、最悪 VS Code を手元で使っても良い。
  • 公開がめんどくさい、というか今のところまだできていない。anemone.dodgson.org の git repo を fork しているので、時期がきたら merge back すればいいかなとは思っている。
  • 有償。
  • SSH port forwarding するのがちょっとめんどくさい。

やりのこし作業、かすかな不満:

  • Wiki 的環境の支援。新規ファイル作成は Blog 用しかないので Blog にもほしい気がしている。
  • Hugo の shortcode Wikilink をつくる。

自分は Wiki 側は編集頻度があまり高くないので、このへんは気が向いたらやります。

  • Blog のミタメのダサさ、雑さ。もうちょっとシュっとしてほしい気もする。

これは・・・ほっときます。


WP は 5 年くらい使った。この構成もそのくらい長持ちすると良いなあ。