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
380
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
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
Genie Codeハンズオン応用編
taka_aki
0
120
JavaScript 研修 (2026)
recruitengineers
PRO
2
610
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
320
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.6k
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
220
Reference-Free Image Quality Assessment for Virtual Try-On via Human Feedback
zozotech
PRO
0
570
私がブラウザを自作したくなった理由
supurazako
1
250
AIのためのEthernet技術動向 (SerDes)
markunet
1
200
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
4
370
エンドユーザー視点で見る SansanのMeraki活用と内製自動化
sansantech
PRO
0
100
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
A better future with KSS
kneath
240
18k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
540
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
280
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Designing Powerful Visuals for Engaging Learning
tmiket
1
490
Joys of Absence: A Defence of Solitary Play
codingconduct
1
440
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Automating Front-end Workflow
addyosmani
1369
210k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
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