この日記はどう作られているか
Astro, UnoCSS, Vercel などを使い、盆栽のようにブログをつくっている
7月になりました。5月12日に始めたこの日記(ブログ)では、5月に9本、6月に6本の記事を書きました。
北海道大学でのCoSTEPの講義は、開講式特別プログラムと、「モジュール1. 科学技術コミュニケーション概論」(計5回)が終わりました。7月からは、CoSTEPスタッフによる「モジュール2. 表現とコミュニケーションの手法」(計4回)が始まっています。
ここまで毎回、講義や演習、実習のたびに記事を書いていましたが、ここからは、それに限らず、ざっくりやっていこうかと思います。
今回は、この日記をどう作っているかを書いてみます。既存のブログサービスを使わず、自分で一から実装しています。
盆栽のように
私はウェブサービスをつくるお仕事をしています。
仕事では、様々な技術を用途に応じて採用しますが、趣味のプロダクトでは、後で述べるような好きなものをいくらでも導入することができます。
誰に頼まれてやっているわけでもない、締め切りもないものです。好きな時に、インクリメンタルに、デザインや機能を変えていったりできます。
このブログも、最初はシンプルな文字だけのデザインでしたが、数週間経って、サムネイル画像を表示する形に変えました。この記事をあなたが読んでいる頃には、また変わっているかもしれません:
広大なインターネットの世界にある好きな例を、いくつか紹介します:
- macwright.com
- brr(南極大陸で働いている方のブログ)
- Hail2u
- Yuhei Yasuda
- blog.8-p.info
- r7kamura.com
- Taichi Nakashima | Taichi Nakashima
- bkブログ Archives
- 辺境社会研究室 - youkoseki.com
ブログに関する記事もいくつか:
- How to blog - macwright.com
- Some blogging myths - Julia Evans
- The Surprisingly High Table Stakes of Modern Blogs - swyx
- ブログ投稿のハードルと雑さについて - yuheiy.com
- 読者を意識した、キャリアのためのブログ - blog.8-p.info
- 心のざわめきを無くして日記を書くということ / secon.dev への移転 - A Day in the Life
- 2021年だから人類はHTMLを手打ちしろ - youkoseki.com
以前の日記で、時系列の「ブログ」ではない、Wikiのような「デジタル・ガーデン」という形を紹介しましたが、とりあえずは、このような日記もいいのではないかなと。
友人が「盆栽のような個人ブログを」と言っていました。のんびりと、あれやこれやと試していければいいなと思っています。
好きな技術を好きなだけ: Astro, UnoCSS, Vercel
この日記のコードおよびコンテンツ、編集履歴は、全て以下のページ(GitHubレポジトリ)で確認できます:
実装には「Astro」というWebフレームワークを使っています。2022年にv1.0がリリースされました。Next.jsが複雑なWebアプリの構築へ適しているのに対し、Astroはコンテンツをベースとしたウェブサイト(ブログやランディングページなど)へフォーカスしています。私としては「まさにこういうのが欲しかったんだよ!」という気持ちで、使いやすく、昨年末くらいから積極的に利用しています:
ちなみに個人的には、以前は静的サイトジェネレーターのEleventy(11ty)を使っていましたが、そちらはNunjucksやHAML、といったテンプレート言語を使うものでした。一方でAstroは、よりモダンなWeb開発のフレーバーです。また、ReactやVue.js、Svelteといったフレームワークのコンポーネントをそのまま利用することもできます:
また、↑のような埋め込みを容易にするため、Astroでコンポーネントを作成し、それをMDXで利用しています:
Markdown for the component era | MDX
Markdocにも興味があるのですが、そのタイミング(2023年5月ごろ)はまだAstroのContent Collectionsという機能にMarkdocが正式対応していなかったようなので、MDXを使っています:
- Markdoc support by bholmesdev · Pull Request #508 · withastro/roadmap
- @astrojs/markdoc 🚀 Astro Documentation
スタイルには、UnoCSSというアトミックCSS(ユーティリティファーストCSS)フレームワークを使っています(Tailwind CSSのようなものです)。個人的にかなり好きで、手に馴染みます。最近、一番惚れた技術です:
デプロイにはVercelを使っています。無料プランで十分使えています。シンプルで、開発者体験が良くて好きです:
Vercel: Develop. Preview. Ship. For the best frontend teams
ぼちぼちやっていきます 🧑🌾