Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話

Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話

2026.6.3 toranoana.deno #25 登壇資料

Avatar for すずとも

すずとも

June 03, 2026

More Decks by すずとも

Other Decks in Technology

Transcript

  1. Deno + Chart.js だけではチャートを作れない サーバー用のランタイムには Canvas API がない → Canvas

    API 互換のライブラリ を組み合わせる必要がある Deno 用に Canvas API を実装したライブラリがある JSR “canvas” 🔎 で出てきたいくつかのライブラリで使ってみたが… jsr:@gfx/[email protected] ❌ jsr:@gfx/[email protected] ❌ jsr:@josefabio/[email protected] ❌ 5
  2. Deno + Chart.js だけではチャートを作れない npm もいくつか試してみて… npm:[email protected] ❌ npm:[email protected]

    nodeModulesDir: “auto” にしてと言われるし、しても動かない :( 6 npm:@napi-rs/[email protected] 🎉 nodeModulesDir の設定も不要!
  3. crux-feed github.com/kamekyame/crux-feed CrUX : Chrome UX Report LCP、INP、CLS(Core Web Vitals で使われる指標)など

    実際のユーザー環境 で測定&集計したものがデータとして公開 CrUX Viz という可視化ツールはある→ 変化を Slack で 継続的に監視 したい! → RSS Feed として配信しよう Deno Deploy でホスト 11
  4. まとめ Chart.js + @napi-rs/canvas を使えば Deno でもチャート作成ができる Node & npm

    互換性向上 のおかげ いつから動くようになったんだろう? この組み合わせを crux-feed に活用しました Deno Deploy 上でも問題なく動くことを確認済み ファイルから フォント読み込みもできました(数字には Roboto を使っています) よかったら使ってください! CrUX Viz とクエリパラメータがほぼ互換なので、ドメイン名を変えれば使えます! 14