Markdownでリンクカードを表示する「remark-link-card」の使い方

#Astro#HowTo#Web開発
投稿日:

ブログなどでは、リンクを埋め込む際にリンクカードを表示することがあります。リンクカードは、リンク先のページのタイトルやサムネイル、概要などを一覧表示でき、リンク先の情報を簡単に把握できるため、ユーザーにとって便利な機能です。

この記事では、Markdownでリンクカードを表示するための 「remark-link-card」の使い方について解説します。

remark-link-cardのnpmページ
remark-link-cardのnpmページ

remark-link-cardは、OGPのリンクカードを表示するための、Markdownパーサーのremark用のプラグインです。

remark-link-cardを使うと、Markdownファイル内のベアリンクを自動でリンクカードに変換できます。リンクカードにはサムネイルやタイトル、概要、favicon、リンク先のURLが表示されます。

remak-link-cardを使うには、まずプロジェクトにインストールします。

Terminal window
npm install remark-link-card

インストールが完了したら、remarkにremark-link-cardを追加します。

import remark from "remark";
import rlc from "remark-link-card";
(async () => {
const result = await remark()
.use(rlc)
.process(exampleMarkdown)
console.log(result.contents);
})();

Astroを使っている場合は、astro.config.mjsにremark-link-cardを追加します。

astro.config.mjs
import { defineConfig } from "astro/config";
import rlc from "remark-link-card";
// https://astro.build/config
export default defineConfig({
// ...
markdown: {
remarkPlugins: [rlc]
}
});

オプション

remark-link-cardには、次のオプションがあります。

オプションを利用する場合は、次のように設定します。

import remark from "remark";
import rlc from "remark-link-card";
(async () => {
const result = await remark()
.use(rlc, {
cache: true,
shortenUrl: true
})
.process(exampleMarkdown)
console.log(result.contents);
})();
astro.config.mjs
import { defineConfig } from "astro/config";
import rlc from "remark-link-card";
// https://astro.build/config
export default defineConfig({
// ...
markdown: {
remarkPlugins: [
[
rlc,
{
cache: true,
shortenUrl: true
}
]
]
}
});

リンクカードを表示する方法

リンクカードを表示するには、Markdownファイル内にベアリンク(むき出しのURL)を記述します。ベアリンクではないリンクは、カードに変換されません。また、1行に複数のリンクがある場合も変換されません。

次のコードは、リンクカードが表示される例です。

## リンクカードが表示される
https://example.com
<https://example.com>

次のコードは、リンクカードが表示されない例です。

## リンクカードが表示されない
[リンクカードが表示されない](https://example.com)
https://example.com https://example.com

Markdownではリンクを< >で囲っても囲わなくても動作します。MDXではエラーが出るため、リンクを< >囲わないことをオススメします。

まとめ

この記事では、Markdownでリンクカードを表示するための「remark-link-card」の使い方について解説しました。

リンクカードを手軽に実装できるので、ぜひ使ってみてください。

参考

Xに共有する Blueskyに共有する Misskeyに共有する LINEに共有する Threadsに共有する
著者のアイコン画像

生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。

Webフロントエンドプログラマーで、テクノロジーに関する話題を追いかけています。動画編集やプログラミングが趣味で、たまにデザインなどもやっています。主にTypeScriptを使用したWebフロントエンド開発を専門とし、便利で実用的なブラウザー拡張機能を作成しています。また、個人ブログを通じて、IT関連のニュースやハウツー、技術的なプログラミング情報を発信しています。