From c40643a98487d0dbe4d9b89877fb98249055c31d Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Thu, 25 Jun 2026 13:56:02 +0900 Subject: 全ページにSNS共有ボタンと見出しアンカーリンクを追加 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SocialShare コンポーネント: X/Facebook/LINE 共有ボタンを 各ページフッターに表示 - Footer コンポーネントを上書きして SocialShare を組み込み - 見出し(h2/h3)にホバーでコピー可能なアンカーリンクを追加 - custom.css にアンカーリンクのスタイルを追加 --- src/components/SocialShare.astro | 77 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/components/SocialShare.astro (limited to 'src/components/SocialShare.astro') diff --git a/src/components/SocialShare.astro b/src/components/SocialShare.astro new file mode 100644 index 0000000..a818822 --- /dev/null +++ b/src/components/SocialShare.astro @@ -0,0 +1,77 @@ +--- +export interface Props { + /** Page URL (defaults to current page) */ + url?: string; + /** Page title */ + title?: string; +} + +const { url, title } = Astro.props; +const pageUrl = url ?? Astro.url.href; +const pageTitle = title ?? ""; + +const encodedUrl = encodeURIComponent(pageUrl); +const encodedTitle = encodeURIComponent(pageTitle); + +const SHARE_LINKS = [ + { + label: "X", + href: `https://x.com/intent/tweet?url=${encodedUrl}&text=${encodedTitle}`, + svg: '', + }, + { + label: "Facebook", + href: `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`, + svg: '', + }, + { + label: "LINE", + href: `https://social-plugins.line.me/lineit/share?url=${encodedUrl}`, + svg: '', + }, +]; +--- + +
+ Share: + {SHARE_LINKS.map((link) => ( + + + + ))} +
+ + -- cgit v1.3.1