INDEX
  1. 何を書くのか
  2. 技術構成
  3. どうやって合成しているか
  4. なぜテンプレートとコンテンツを分けたのか
  5. これから

ブログを作った


takuyaw-w.dev というドメインを持っていたものの、ほとんど活用できていなかった。 ブログを作ろう、作ろうと思いつつ、なかなか重い腰を上げることができずにいたが、AIの力を借りて、ようやくブログのテンプレートを作成できた。

本来はコンテンツに集中したい。 それなのに、ブログの見た目や仕組み、ホスティング、記事管理のような、本質ではない部分に気を取られることにストレスを感じていた。

これでようやく、書くことに集中できるようになった気がする。

何を書くのか

ブログの内容は、たぶん雑記になると思う。

最近は読書にハマっているので、読書の内容をまとめることが多くなるかもしれない。 今まで読書メモはほとんどしていなかった。読み終わった直後は覚えていても、しばらくすると細部はどんどん抜けていく。

読んだ内容を忘れないようにするためにも、読書メモをブログに残していきたい。

技術メモも書く。 開発中に詰まったこと、調べたこと、作ったもの、判断に迷ったことなども置いていく。

技術構成

技術的な話をすると、このブログテンプレートは Astro で作成している。 ホスティングには Cloudflare Pages を使っている。

構成としては、テンプレートとコンテンツを分けた。

  • blog-template
    • Astro本体、レイアウト、CSS、ビルド設定
  • blog-content
    • Markdown記事、About、Projects、画像

同じリポジトリにまとめることもできたが、テンプレートとコンテンツが混ざると、後から分離しづらいと感じた。 記事を書きたいだけなのに、テンプレート側の都合を意識し続けるのは避けたかった。

リポジトリを分けておけば、最悪テンプレートはいつでも捨てられる。 コンテンツさえ残っていれば、別のテンプレートや別の仕組みに載せ替えられる。

どうやって合成しているか

テンプレートとコンテンツの合成は、Cloudflare Pages のビルド処理で行っている。

Cloudflare Pages には blog-template のリポジトリを紐づけている。 blog-template が更新された場合は、そのまま Cloudflare Pages の CI/CD が走る。

一方で、記事は blog-content 側で管理している。 記事を更新して blog-content に push すると、Webhook 経由で Cloudflare Pages の Deploy Hook を叩く。

すると、Cloudflare Pages が blog-template を再ビルドする。 そのビルド中に blog-content を clone し、テンプレート側の src/content に同期する。

その上で Astro がビルドされ、最終的に dist が公開される。

ざっくり言うと、こういう流れになる。

blog-contentMarkdown記事を書くGitHub pushGitHub WebhookCloudflare PagesDeploy HookCloudflare Pages再ビルド開始blog-template を取得blog-content clonesrc/content に同期Astro build公開

そして今、このブログが公開されている。

なぜテンプレートとコンテンツを分けたのか

なぜここまでして、テンプレートとコンテンツを分けたのか。

一番大きい理由は、文章を自分の手元に置いておきたかったからだ。

世の中には、はてなブログや note のような便利なブログサービスがある。 もちろん、それらはそれらで良い。すぐ書けるし、管理も楽だ。

ただ、そういったサービスでは、テンプレートとコンテンツが完全には分離していない。 場合によっては、Markdownで書くことや、Markdownとして出力することが十分にサポートされていないこともある。

自分が書いた文字が、自分が書いた文章が、どこかのサービスのどこかのサーバーに保存される。 それ自体は普通のことではある。

でも、コンテンツの所有者は誰なのか。

私である。

私が書いた文章は、私のものであるべきだ。

だから、テンプレートとコンテンツを分けた。 文章は Markdown として Git で管理する。テンプレートはその文章を表示するための仕組みとして扱う。

保存先として GitHub を利用しているので、完全に自分の手元だけで完結しているわけではない。 ただ、GitHub はある種のストレージとして見なしている。そこは勘弁されたい。

これから

まずは、あまり構えずに書いていく。

技術記事を書くこともあると思う。 読書メモを書くこともあると思う。 ただの日記に近いものを書くこともあると思う。