こんにちは、21B SysAd班のmehm8128です。
イベントやアナウンス以外でブログリレー期間外にブログを書くのは初めてかもしれません。
今回はプログラミング教室の資料を改善した話を書きます。
プログラミング教室
僕はtraPの役員会に所属していて、その中でも平役員という一番権威が低そうな名前の役職についています。平役員はさらにその中で合宿担当、コミケ担当、GAME^3担当、そしてプログラミング教室担当というように、担当を分けて主にイベントの運営を行っています。イベント期間外は仕事があまりない担当もあるので、イベント以外にも雑用を任されることもあります。
そして、僕はプログラミング教室担当をやっています。
プログラミング教室については以下の記事がまとまっているので、読んでみてください。
また、前回の開催記事は以下から閲覧できます。
上記のブログ記事のこの部分で説明されているように、プログラミング教室ではtraP独自の資料を用いています。
しかし、資料の作成に用いられているツールやその周辺プラグインに色々と不都合が出てきたため、最近Webエンジニアになろう講習会の資料改修にも使われた、VitePressに移行しようという話になりました。
なろう講習会については以下のブログが参考になります。
今年の夏のプログラミング教室終了後に僕が手をつけていい感じにしていたのですが、先ほど一旦移行完了という感じになったため、ブログを書いています。
URL公開していいかちょっと不明なのでスクショだけ貼るのですが、こんな感じです。
やったこと
Giteaで管理しているためリポジトリの外部公開はしていないのですが、ディレクトリ構成などは基本的になろう講習会のものと同じです。分量がなろう講習会ほど多くないので簡潔にはなっています。
Markdownで管理されていたので、基本的にはそれをコピペするだけでした。
今までコードブロックはMarkdown内に直書きしていて、1箇所だけ変更して別の箇所で変更し忘れる、などということが発生していたのですが、今回VitePressに移行したことによってコードを別ファイルで管理しておいて、その何行目から何行目を引用する、ということが可能になりました(もしかしたらhonkitにもあるかも、確認してません)。
またそれに伴い、コードブロックの行数表示も何行目から開始というのを指定したかったのですが、当時のVitePressにはありませんでした。そこでissueを出してみたところ、スッと実装してくれる人がいて指定できるようになりました(行数指定して引用できること自体知らなかったのでそれも教えてもらえました。今見たら僕の説明のしかたがかなり悪いですね...)。
https://github.com/vuejs/vitepress/issues/2907
https://github.com/vuejs/vitepress/pull/2917
しかしこの実装だと、グローバルにlineNumbers(コードブロックで行数を表示する設定)をオンにした場合に上手く指定できなかったので、以下のPRを自分で出して解決しました(一発でマージされたけどこれでよかったのかな)。
https://github.com/vuejs/vitepress/pull/2941
これで無事、コードブロックをいい感じに表示できるようになりました。
また、honkitのときはデフォルトではコピーボタンがなくてプラグインを入れたけど上手く動かずという状態だったのですが、VitePressではデフォルトでコードブロックにコピーボタンがついているので、コピペも簡単にできます(プログラミング教室では、コードを書くことではなくてプログラミングを通してゲームを作ることを体験することを本質と考えているため、コピペは推奨しています)。
その他、なろう講習会のときに作ってもらったtraPっぽい色のテーマを取ってきてそのまま使い、見た目をいい感じにしました。
そして、NeoShowcaseを使ってデプロイまでしました。
今後
既にいくつかissueが立っていて、主な今後の改善点は以下の通りです。
- 差分表示をできるようにする
- どこにコードを追加したのかが現状分かりにくいという話が毎回出ているので、VitePressの差分表示機能を使って分かりやすくしようと考えています
- 前のリポジトリの段階でissueが立っている、資料自体の内容の細かい調整
- より分かりやすくするための、説明文の改良などです
- PDF化
- 前のリポジトリのときはhonkitからPDF化ができてそれも配布していたのですが、VitePressになってからできなくなりました多分
- https://github.com/vuejs/vitepress/issues/593 ここで挙げられているいくつかのライブラリでいいものがあればそれを使ってもいいと考えているのですが、そもそもPDFは紙に印刷して配布する用だったので、現在は不要かなと考えています(コピペ推奨ということもあり、数回前から配布しなくなりました。印刷代もかかるし...)
まとめ
次のプログラミング教室は3月なので、それまでにさらに改善していけたらなと思います。ただ、僕は12月で役員引退なので後輩たちへの引き継ぎもいい感じにできるように頑張ります。