Open8

RustでOGP画像を自動生成したい

ShoutaShouta

タイトルにもある通り、RustでZennみたいなOGPを作りたい。

記事のタイトルを引数に渡すと生成してくれる、みたいな

ShoutaShouta

https://github.com/atroche/rust-headless-chrome

これでヘッドレスブラウザを起動して、HTML + CSS を読み込み、スクリーンショットを撮影して画像を生成する方法

開発環境がWSLだからなのか、すんなりは行かなかった。
頑張って格闘すればいけるかも。

ShoutaShouta

知識不足なので上記のうちどの方法がいいのかは分からないが、下手に格闘するより地道に改行の位置を調整するのが手っ取り早い気がした

ShoutaShouta

とりあえず文字数に応じて改行してみようと思ったが、それだと英語を使ったときにおかしくなりそう。

RustでOG
P画像を

みたいな感じ

ShoutaShouta

結局、tinysegmenterというライブラリを使って単語分割?して文字数が大きくなりすぎない程度に調節する、という実装にした。
https://github.com/woxtu/rust-tinysegmenter

最強のCSS-in-JS!Kaze Styleの紹介!["最強","の","CSS","-","in","-","JS","!","Kaze"," ","Style","の","紹介","!"]['最強のCSS-in-JS!', 'Kaze Styleの紹介!']
ShoutaShouta

あとは上記の形式のVec<String>をforかなんかで一行ずつ描画するだけ。
もう少し簡単にする方法もありそうだけど、とりあえず動くからいいや