おそらくはそれさえも平凡な日々

k1LoW/deck のコミッターになった

7月頭に技術支援先でプレゼンをする機会があり、いつもの僕の雑なHTMLプレゼンではなくて、ちゃんとしたプレゼンフォーマットにしたいと考えて、 k1LoW/deck を使い始めた。MarkdownをソースとしてGoogleスライドを生成できるツールだ。

GitHub - k1LoW/deck: deck is a tool for creating deck using Markdown and Google Slides.

良かった点

これまで15年以上主にMarkdownからプレゼンテーションを作るスタイルでやってきたので、乗り換えやすかった。

使い始めた6月時点で、上記の紹介エントリーからさらに進化を遂げており。感動的に体験が良かった。特に以下の機能が良かった。

  • --watch オプションでのファイル更新検知と自動適用
  • 画像やコードブロック画像の自動配置
  • 一部のインライン要素のスタイル適用

おかげで、7月頭のプレゼンを乗り切ることができた。

改善の余地を感じた点

同時に、以下の点に改善の余地を感じた。まあ、私自身がMarkdown, HTMLに対して一家言ある往年のWeb標準厨的であることや、いきなり130ページ・画像20枚のスライドを作ったことが問題だったのだが。

  • Markdown内にFrontmatterを書きたかった
    • 私の既存のプレゼンソースのMarkdownにはFrontmatterにメタ情報を記述していた
    • ここにプレゼン用のメタ情報を入れられるようにしたかった
  • パフォーマンス
    • 130ページ・画像20枚のスライドだと生成に12,3分かかった
  • 不十分なMarkdown対応
    • パラグラフ分割・改行の扱いが不正確で、段落分けができなかった
      • 作者のk1LoWさんのユースケース的には箇条書きがちゃんと表示されるだけで十分だったのだろう
    • 生のインラインタグ (<cite>, <s> 要素など) へのスタイリング非対応
    • テーブル記法非対応

コントリビュートしてたらコミッターにしてもらった

ということで、この辺りの課題を k1LoW さんと相談しながら順次解決していって一通り片づけた。パフォーマンス問題は、上記の12,3分かかっていたスライド生成は25秒程度に短縮された。実に30倍である。画像が少ないスライドだと100倍以上のパフォーマンス改善になるケースもあった。

7月頭から1ヶ月半程で、1万行以上のコード追加、70以上のpull requestをマージし、コラボレーター権も付与してもらって、コミッターになった。

今後は、k1LoWさんと一緒に頑張ってメンテナンスに協力していければと思っています。

deck の解説

ここ1ヶ月半で色々アップデートがあったので、改めて deck の使い方をまとめておいた方が良いと思い、以下の解説スライドを作った。これも当然 deck で作った物だ。

色々アップデートがあったと書いたが、当初のシンプルな使い勝手は維持されていて、複雑になってはいないはずだ。徒に機能を増やした訳ではなく、多くの人にあって欲しい機能を追加して「思った通りに動く」ことを重要視した。その為の改善を積み重ねたつもりである。

是非ご利用下さい。

宣伝

スポンサー

上記のスライド内でも書いていますが、deckはOSSなので様々な形で貢献して下されば嬉しく思いますが、k1LoWさんとSongmuはGitHub Sponsorsを開けてあるので、是非少額のワンショットでも良いのでスポンサーして下さると嬉しいです。

ちなみに、deck のインテグレーションテストをGitHub Actionsで実行するためのGoogle WorkspaceやGoogle CloudのリソースにSongmu個人の有料契約を使っているため、ほんのちょっとだけお金がかかっています。

Buildersconに発表プロポーザルを提出しています

この deck へのコントリビュートについて発表プロポーザルを Builderscon 2025 に提出しています。採択されるようにスターなどで後押しして下さると嬉しいですし、採択されたら是非聞きに来て下さい。

k1LoW/deck開発におけるTidy Fitstの実践 - 機能追加とパフォーマンス向上の両立

k1LoWさんとのポッドキャスト

私のポッドキャスト、趣味でOSSをやっている者だでk1LoWさんと色々おしゃべりしています。deck の開発についてもお話しているので、興味があれば是非聞いてみて下さい。

created at
last modified at

2025-08-16T23:05:52+0900

comments powered by Disqus