StackbitブログにSNSシェアボタンを追加する

Stackbitブログに検索機能を追加する

SNS シェアボタンを追加しました!

こんにちは、junwatanabe72 です。
せっかくブログを書いたなら SNS でシェアしてほしいですよね。
Stackbit ブログのデフォルトにはない機能なので、今回も自分で実装してみました。

要件

  • 各記事ページのタイトル下に SNS ボタンを設置する。
  • 各ボタンを padding で間隔を空けて横並びで表示させる。
  • ボタンを押下すると、各 SNS ページに遷移し、記事のタイトルと URL が表示される。

実装

1.ライブラリのインストール

SNS シェアボタンを簡単に追加できる「react-share」をインストールします。

npm install react-share
2.ファイルの編集及び新規作成

編集するファイル:「src/layouts/post.js」
新規作成ファイル:「ShareButtons.js」「_posts-page.scss」

2.1 post.js の編集

ShareButtons に渡す props を抽出します。
必要な props は「title」(記事のタイトル)と「__metadata.urlPath」(記事の URL)です

2.2 ShareButtons.js の新規作成

渡された props を使い各 SNS ボタンを生成し、リスト化します。

2.3 _posts-page.scss の新規作成

シェアボタンを横並びとするために flex を設定します。
また、Stackbit デフォルトの css を調整します。
具体的には、button の box-shadow と list のリストマークの無効化です。

3.実装の要点
  • post.js 内で必要なデータ、「title」,「URL」を抽出し ShareButtons に渡す。
  • 必要な SNS ボタンとアイコンを「react-share」から import する。
  • Stackbit のデフォルト css が邪魔なので、適宜、上書きする。
  • JSX で list を作成する時は map を使用して記述量を抑える。

完成品

まとめ

便利なライブラリreact-share」を使用することで容易に SNS シェアボタンを導入できました。車輪の再発明は極力控えて、いろんなライブラリを探してブログをバージョンアップしていきたいですね!

関連記事

PROGRAMの関連記事