astro-notion-blogの記事の最初にFeaturedImageを配置する

Featured image of the post

目次

まえがき

記事の冒頭にFeaturedImageを配置したいと思ったので変更したら、以前の記事による変更と合わせてちょっと大変でした。

📄Arrow icon of a page linkastro-notion-blogの記事一覧でFeaturedImageにも記事へのリンクを設定する

方法

各記事の構造はsrc\pages\posts\[slug].astroが司っています。

102行目からのここがそうです。

<div slot="main" class={styles.main}>
    <div class={styles.post}>
      <PostDate post={post} />
      <PostTags post={post} />
      <PostTitle post={post} enableLink={false} />
      <PostBody blocks={blocks} />
      <PostTags post={post} />

      <footer>
        <PostRelativeLink prevPost={prevPost} nextPost={nextPost} />
      </footer>
    </div>
  </div>

投稿日・タグ・タイトル・記事本文・末尾のタグ・フッターとそのまんまです。

ここで、タイトルの下にFeaturedImageを配置したいと思います。

📄Arrow icon of a page linkastro-notion-blogの記事一覧でFeaturedImageにも記事へのリンクを設定する

以前の記事⬆でのことを思い出すと、import PostFeaturedImage from '../../components/PostFeaturedImage.astro'を足してから<PostFeaturedImage post={post} />を足せばいいと分かります。(処理の外部委託先の住所を書いて、外部委託の指示を挟む)

ちなみに、前回の記事とは編集するファイルの場所が異なるため、正しい場所を示すために'../components/PostFeaturedImage.astro'から'../../components/PostFeaturedImage.astro'へと相対リンクを変更しています。

冒頭のimport群

import Layout from '../../layouts/Layout.astro'
import PostDate from '../../components/PostDate.astro'
import PostTags from '../../components/PostTags.astro'
import PostTitle from '../../components/PostTitle.astro'
import PostBody from '../../components/PostBody.astro'
import PostRelativeLink from '../../components/PostRelativeLink.astro'
import BlogPostsLink from '../../components/BlogPostsLink.astro'
import BlogTagsLink from '../../components/BlogTagsLink.astro'
import styles from '../../styles/blog.module.css'
import PostFeaturedImage from '../components/PostFeaturedImage.astro'
これが

最後に足しておいた。28行目になった。

import Layout from '../../layouts/Layout.astro'
import PostDate from '../../components/PostDate.astro'
import PostTags from '../../components/PostTags.astro'
import PostTitle from '../../components/PostTitle.astro'
import PostBody from '../../components/PostBody.astro'
import PostRelativeLink from '../../components/PostRelativeLink.astro'
import BlogPostsLink from '../../components/BlogPostsLink.astro'
import BlogTagsLink from '../../components/BlogTagsLink.astro'
import styles from '../../styles/blog.module.css'
import PostFeaturedImage from '../../components/PostFeaturedImage.astro'
こうなる

102行目からの部分はこうなる。

<PostTitle post={post} enableLink={false} />
<PostFeaturedImage post={post} enableLink={false} />
<PostDate post={post} />
<PostTags post={post} />
<PostBody blocks={blocks} />
<PostTags post={post} />

<PostFeaturedImage post={post} enableLink={false} />enableLink={false}部分はリンク埋め込みをしないためのものです。以前の記事参照。

これで表示されるようになりました。

Image in a image block

以前の記事での変更内容の考慮

📄Arrow icon of a page linkastro-notion-blogの記事一覧でFeaturedImageにも記事へのリンクを設定する

前回の記事でFeaturedImageには記事へのリンクが埋め込まれています。クリックしたところでその記事を開くだけの無限ループですが、どうも気持ち悪いので修正します。FeaturedImageのコミットは打ち消し。前回の記事を書き換えることにしました。

追記

同じことをやっている方がいました。リンク埋め込みをやっていなければやっぱりシンプルですね。

実装方法もほぼ同じなので、これで良かったんだと安心できました。