Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話
Search
すずとも
June 03, 2026
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話
2026.6.3
toranoana.deno #25
登壇資料
すずとも
June 03, 2026
More Decks by すずとも
See All by すずとも
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
1.6k
Deno Tunnel を使ってみた話
kamekyame
0
610
Other Decks in Technology
See All in Technology
紙 to デジタル
ichien178
0
340
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
460
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
500
The Django UUID Story - DjangoCon US 2026
pauloxnet
0
300
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
240
Point Cloud as a Foreign Language for Multi-modal Large Language Model
takmin
0
260
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
120
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
dbt と Snowflake と tag
kevinrobot34
2
290
カーネルまで探検して理解するふたつの自動計装
sumiyae
0
330
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
0
490
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Into the Great Unknown - MozCon
thekraken
41
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
New Earth Scene 8
popppiees
3
2.5k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
390
Skip the Path - Find Your Career Trail
mkilby
1
200
Mind Mapping
helmedeiros
PRO
1
340
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
We Are The Robots
honzajavorek
0
310
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Joys of Absence: A Defence of Solitary Play
codingconduct
1
450
Transcript
Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話 2026.06.03 toranoana.deno #25 すずとも / kamekyame
自己紹介 すずとも / subname: kamekyame 株式会社 jig.jp フロントエンドエンジニア 福井在住 Deno、Angular
2 @SuzuTomo2001 @kamekyame kamekyame.com
Deno + Chart.js 3
Chart.js とは JavaScript でチャートを書くためのライブラリ Canvas を使って描画される 4 https://www.chartjs.org/docs/latest/samples/line/line.html https://www.chartjs.org/docs/latest/samples/other-charts/doughnut.html
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
Deno + Chart.js だけではチャートを作れない npm もいくつか試してみて… npm:
[email protected]
❌ npm:
[email protected]
❌
nodeModulesDir: “auto” にしてと言われるし、しても動かない :( 6 npm:@napi-rs/
[email protected]
🎉 nodeModulesDir の設定も不要!
Deno + Chart.js + @napi-rs/canvas の使い方 7 github.com/kamekyame/deno-chartjs-sample
Deno + Chart.js + @napi-rs/canvas の使い方 8 github.com/kamekyame/deno-chartjs-sample
とても簡単 😙 9
活用した事例を紹介 10
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
crux-feed の機能 CrUX API から得られるデータを XML 形式にして返すだけ /feed subscribe https://crux-feed.kamekyame.deno.net/?view=cwvsummary&url=https://deno.com/&identifier=url
12 OGP 画像の作成に Chart.js を使用
OGP 画像はアクセス時に作成 OGP に指定している画像 URL https://crux-feed.kamekyame.deno.net/i?url=https://deno.com https://crux-feed.kamekyame.deno.net/i?url=https://nodejs.org/ja 13 deno.com nodejs.org/ja
まとめ Chart.js + @napi-rs/canvas を使えば Deno でもチャート作成ができる Node & npm
互換性向上 のおかげ いつから動くようになったんだろう? この組み合わせを crux-feed に活用しました Deno Deploy 上でも問題なく動くことを確認済み ファイルから フォント読み込みもできました(数字には Roboto を使っています) よかったら使ってください! CrUX Viz とクエリパラメータがほぼ互換なので、ドメイン名を変えれば使えます! 14