Vim 駅伝開始1ヶ月を振り返る
はじめに
Vimmer が中心となって技術記事を投稿し続ける Vim 駅伝 の開始から、ちょうど1ヶ月が経とうとしています。3月1日から始まって週に3回(月・水・金)のペースで記事公開が進み、今日のこの記事が14番目となります。
Vim 駅伝は Vim-jp コミュニティの中で立ち上がり、サイトやコンテンツ管理のシステムも主にコミュニティのメンバーで開発されてきました。Vim 駅伝の仕組みがどのように整っていったのか、簡単に振り返りたいと思います。
2/6〜2/8 Vim 駅伝の企画
Vim 駅伝、始動します - 永遠に未完成 にもある通り、Vim 駅伝は最初 Vim-jp Slack における thinca さんの発言から生まれました。
「Vim 駅伝、始動します — 永遠に未完成」より画像を引用
私個人としても Vim Advent Calendar には毎年楽しく参加しており、通年での記事執筆企画にも興味があったことから、積極的に参加することにしました。
ちなみにこれは自慢ですが、この後に「Vim 駅伝」という名前を提案したのは私でした。Slack ログは3ヶ月で消えてしまうため、ここに証拠を残しておきます。
なお、私が提案したイベント名の中で最もリアクションの多かったのはこれです。
これは採用されませんでした。なぜでしょうね🤔
2/8〜2/28 Vim 駅伝の仕組み整備
Vim 駅伝が企画されてからの約3週間は準備期間でした。Slack 等での話し合いの結果、Vim 駅伝全体の仕組みは、基本的にすべて vim-jp/ekiden リポジトリ内で以下のように管理されることになりました。
- Astro を用いて静的サイトを作成する。
- 参加記事のタイトル、URL などの本質的な情報は
src/content.json
に置き、Astro から参照して一覧ページを構築する。 - 参加登録などの仕組みは GitHub の issue + GitHub Actions で管理する。
- 専用の issue テンプレートを用意し、それを埋めた issue を立てることで参加登録とする。
- 参加登録用の issue が立てられると、GitHub Actions が起動して
src/content.json
が編集され、サイトに反映される。 - その他に、公開日当日の記事存在チェックなどを GitHub Actions の定期実行で実施する。
「細かいことは走りながら考える」をモットーに作り始めたため、非常にシンプルな仕組みとなっています。
私が Astro で最初に作ったページはこんなのでした。最低限のカレンダーはあるものの、記事名と日付が重なっているなど、かなり見づらいですね。
たたき台として作ったサイト
ちなみにこのときちょうどタイミングよくゴリラさん主催のもくもく会が開催され、そこで thinca さん・ゴリラさんをはじめ様々な Vimmer の方と相談しながらレイアウトを試行錯誤したのですが、これが個人的にはとても楽しかったです。ぜひまたやりたいですね。
Vim 駅伝が始まってから
2月末あたりで Vim 駅伝を続けるために必要な最低限の準備が整ったことから、キリの良い 3/1 が最初の記事投稿日となりました。Vim 駅伝を続けられるほどの記事が本当に集まるのか少し不安でしたが、蓋を開けてみると開始1ヶ月間を埋めるのに十分な数(14記事)はなんと1週間足らずで達成することができました。
記事だけでなく、Vim 駅伝のサイトのレイアウトにも皆様のご協力により様々な改善が加えられ、3月の中旬あたりからはカレンダーもかなり見やすくなりました。ありがとうございます。
9bc629a におけるサイトの様子。様々な改善が加えられている
さらに、レイアウトについて様々な議論を交わした結果、スマホ等の小さい画面で表示が崩れやすいカレンダービューを廃止し、より見やすいタイムラインビューを採用することとなりました。これはつい昨日(3月30日)マージされた新たなトップページです。tani さん主導で開発されています。
タイムラインビューを中心にした新たなレイアウト (#52)
今後はこのレイアウトをベースにして改善を重ねる予定です。
これからの Vim 駅伝
1ヶ月という区切りまでは無事にたどり着けたものの、今後どうなるかはこの記事を読んでいる皆さん次第です。どんなに良いサイトやシステムがあっても、記事がなければ Vim 駅伝は回りません。Vim 駅伝を長く続けるためには、一人でも多くの方が Vim 駅伝に記事を投稿することが非常に大切なのです。
この記事を読んでくださった皆さん、Vim 駅伝に自分の記事を投稿してみませんか。どんな些細な記事でも一発ネタでも問題ありません。それどころか、直接 Vim と関係のない技術の話、たとえば
- 普段 Vim を起動させているターミナルやマルチプレクサ(tmux など)についての話
- Vim 以外のテキストエディタについての話
- キーボードやディスプレイなど、普段開発に用いているガジェットの話
…といった話題でも構いません。これらも皆、Vimmer にとっては話題の種になるからです。GitHub アカウントさえあれば、トップページの「募集中」と書かれている日付のどこかをクリックすることで簡単に参加登録ページに遷移できます。幅広いジャンルの記事を心よりお待ちしています。
また、Vim 駅伝のウェブサイト参加登録の仕組みを改善してくれる人も募集しています。
- ウェブサイト: Astro (HTML + CSS + TypeScript)
- 記事の登録やキャンセルなどの処理: GitHub Actions + Deno
これらの技術に明るい方、ぜひご協力いただけると助かります。興味のある方は vim-jp/ekiden をチェックしてください。リアルタイムで議論の流れを追うため、Vim-jp Slack の #event-vim-ekiden チャンネルへの参加もおすすめします。
おわりに
長く走り続けられるよう、皆さんの手で Vim 駅伝を盛り上げていきましょう!
Discussion