# Placehold.jpを使ってSNSシェア用のOGP画像を生成するように設定してみました

# DORASU Tech. BLOG を参考にさせていただきました

VuePressでOGP自動設定 (seoプラグイン&placehold.jp編) をそのままコピペしたら、背景にdorasu-techと表示されてしまったので、ちゃんと設定項目を理解していこうと思います。笑

# Vuepressのconfig.jsで設定

現状👇こんな感じになっているわけなのですが、どういう設定になっているのか見てみましょう

module.exports = {
    〜略〜
  plugins: [
    〜略〜
    [
      'seo',
      {
        〜略〜
        image: ($page, $site) => $page.frontmatter.image && (($site.themeConfig.domain || '') + $page.frontmatter.image) || 'https://placehold.jp/40//fff/600x315.png?css=%7B"padding"%3A"%200%2080px"%2C"background-image"%3A"%20url(https%3A%2F%2Fplacehold.jp%2F057%2F333%2F130x40.png%3Ftext%3Dyoshida.red)"%7D&text='+encodeURIComponent($page.title||$site.title),
        〜略〜
      }
    ],

Vuepress Plugin SEOのimageの設定において、前半部分はfrontmatterのimageが設定されていたらそれを使いましょうって感じですが、今回は https://placehold.jp〜 のところに焦点をあてていきたいと思います。

👇はとりあえずイイとして、

https://placehold.jp/

その後の3つのパラメーターは https://placehold.jp/ によると、文字サイズ、背景色、文字色の順番での設定となっているようです👇

http://placehold.jp/{文字サイズ}/{背景色}/{文字色}/150x100.png

今回は👇 文字サイズ: 40で、背景色: 無し、文字色: fff となっています。

40//fff/

そして、その次の 600x315.png は幅が600ピクセルで高さが315ピクセルのPNG画像。

600x315.png

はてな(?)の後は"JSON化したCSSパラメータ文字列"ということで、更に細かい表現を追加する上級者向けの設定となっています。

?css=%7B"padding"%3A"%200%2080px"%2C"background-image"%3A"%20url(https%3A%2F%2Fplacehold.jp%2F057%2F333%2F130x40.png%3Ftext%3Dyoshida.red)"%7D

ということで、ここから先はCSSのお勉強。

%7B が { で、%7D が } で、%3Aが : で、%2C が , で、%20 が SPACE で、%2F が / で、%3D が = になるので👇こんな感じになりそうです。

{
  "padding":" 0 80px",
  "background-image":" url(https://placehold.jp/057/333/130x40.png?text=yoshida.red)"
}

これは難易度高いですね〜。paddingは上下は0pxで左右に80pxということでしょうか。そしてシビレルのが、background-imageでさらに 130x40 で、自分のブログの ヨシダレッド という文字列に背景画像を変更しています(ブワーっと敷き詰められていくイメージ)

そして最後に👇でページのタイトル(もしくはサイトのタイトル)をUTF-8でエンコーディングして安全なパラメータとして渡してあげます。

&text='+encodeURIComponent($page.title||$site.title)

ということで、TwitterやFacebookでシェアすると👇のような感じになります。

Twitter

Facebook

いやー、とても勉強になりました。というか、そのままパクってすみません的な感じですが、ちょっとくらい色変えたりしてみようかな…^^;

一体何歳になったらCSSとか書けるようになるのだろうか…笑