LoginSignup
1
0

AstroでWikipediaのSummaryを表示する

Last updated at Posted at 2024-03-11

AstroでWikipediaのSummaryを表示する

最近Astroでサイトを作ることにハマっています。

作成する記事の中でWikipediaへのリンクを張る際にSummaryとか表示できたら便利かなと思い、コンポーネントを作成しました。

と言ってもfetchして表示するだけの単純なものですが・・・。

これからAstroを触ってみようかと思っている方の参考になれば幸いです。

コンポーネントのソース

Wikipedia.astro
---
interface Props {
    keyword: string;
}
const { keyword } = Astro.props;

let res = await fetch(
    `https://ja.wikipedia.org/api/rest_v1/page/summary/${keyword}`,
);
let summary = await res.json();
---

<div class="wikipedia">
    <Fragment set:html={summary.extract_html} />
    <a class="go-wikipedia" href=`${summary.content_urls.desktop.page}` target="_blank">ja.wikipedia</a>
</div>

<style lang="scss">
    div.wikipedia {
        padding: 0 1em;
        border: 1px #2d2d2d solid;
        border-radius: 8px;

        &::before {
            content: 'Wikipedia';
            display: block;
            margin: 0 -1em;
            padding-left: 1em;
            background-color: #2d2d2d;
            color: #cfcfcf;
            font-weight: 700;
        }
        a.go-wikipedia {
            display: block;
            text-decoration: none;
            text-align: right;

            &::before {
                content: '';
                margin-right: 0.5em;
            }
        }
    }
</style>

使い方

使う時はコンポーネントをimportして引用したいキーワードを指定するだけです。

index.astro
---
import Wikipedia from 'src/components/Wikipedia.astro';
---

<article>
    <Wikipedia keyword="Qiita" />
</article>

表示イメージ

プレビューのスクリーショットはこんな感じです。取得したサマリーが表示され、右下に当該記事へのリンクが張ってあります。

スクリーンショットのページにはコンポーネント以外のスタイルも適用されているため、上記のソースだけでは同じにはならないかもしれませんが、あくまでイメージということでよろしくお願いします。

2024.03.11_01430.png

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0