Gatsby製ブログのリンクをカード表示にする

Gatsby製ブログのリンクをカード表示にする

このブログのリンクカード表示に Iframey を使っていましたが、カードになったりならなかったり不安定だったため、Gatsby用のプラグインで使いやすいものを改めて調べてみました。

今回使用するプラグインはこちらです。

画像つきのリンクの場合は以下のように表示されます。

またカード表示を指定しない場合、マウスオーバーでリンク先のスクリーンショットが表示されます。 こんな 感じ。(日本語は文字化けしてしまいますが)

インストール

npm install gatsby-remark-link-beautify でインストールします。

次にgatsby-config.js へ以下のように記述します。 gatsby-transformer-remark  の中のプラグインとして指定する必要があります。

{
  resolve: `gatsby-transformer-remark`,
    options: {
    plugins: [`gatsby-remark-link-beautify`],
  },
},

スタイル調整

そのままだとスタイルがあたっていないため、 gatsby-browser.js 内に以下の記述を行うか、自分でスタイルを調整します。

import 'gatsby-remark-link-beautify/themes/notion.css';
//もしくは
import 'gatsby-remark-link-beautify/themes/twitter-card.css';

プラグインにもともと用意されているCSSです。それぞれ以下のような見た目になります。 Notion風↓ notion type

Twitter風↓ twitter type

自分の場合は他のCSSと若干干渉したため、上のテンプレートをベースに調整したものをグローバルCSSに記述しました。

使用方法

[$card](https://example.com)でカード表示になります。$cardを付けなければ通常のリンク表示となります。

ご覧いただきありがとうございました。

About

元紅茶バイヤーのフロントエンドエンジニア見習い。
2022年4月から、オンラインでロンドン大学にてコンピューターサイエンスを学んでいます。
MarkdownからPDFを生成できるオンラインエディタをリリースしました。
markedPDF