diff --git a/src/content/docs/ja/tutorial/5-astro-api/3.mdx b/src/content/docs/ja/tutorial/5-astro-api/3.mdx index c5f54cca9bfb4..a6ee7069bfef6 100644 --- a/src/content/docs/ja/tutorial/5-astro-api/3.mdx +++ b/src/content/docs/ja/tutorial/5-astro-api/3.mdx @@ -23,7 +23,7 @@ import { Steps } from '@astrojs/starlight/components'; ## `/pages/folder/index.astro`ルーティングパターンを使う -ウェブサイトにタグインデックスページを追加するには、`src/pages/tags.astro`に新しいファイルを作成すればできます。 +ウェブサイトにタグインデックスページを追加するには、新しく`src/pages/tags.astro`を作成します。 しかし、すでに`/tags/`ディレクトリがあるので、Astroの別のルーティングパターンを利用して、タグに関連するファイルをすべてまとめてみましょう。 @@ -91,7 +91,7 @@ import { Steps } from '@astrojs/starlight/components'; ```astro title="src/pages/tags/index.astro" --- import BaseLayout from '../../layouts/BaseLayout.astro'; - const tags = ['astro', 'blogging', 'learning in public', 'successes', 'setbacks', 'community'] + const tags = ['astro', 'ブログ', '公開学習', '成功', 'つまずき', 'コミュニティ'] const pageTitle = "タグインデックス"; --- @@ -114,7 +114,7 @@ import { Steps } from '@astrojs/starlight/components'; ```astro title = "src/pages/tags/index.astro" ins={3} --- import BaseLayout from '../../layouts/BaseLayout.astro'; - const allPosts = await Astro.glob('../posts/*.md'); + const allPosts = Object.values(import.meta.glob('../posts/*.md', { eager: true })); const pageTitle = "タグインデックス"; --- ``` @@ -125,8 +125,8 @@ import { Steps } from '@astrojs/starlight/components'; ```astro title = "src/pages/tags/index.astro" ins={4} --- import BaseLayout from '../../layouts/BaseLayout.astro'; - const allPosts = await Astro.glob('../posts/*.md'); - const tags = [...new Set(allPosts.map((post) => post.frontmatter.tags).flat())]; + const allPosts = Object.values(import.meta.glob('../posts/*.md', { eager: true })); + const tags = [...new Set(allPosts.map((post: any) => post.frontmatter.tags).flat())]; const pageTitle = "タグインデックス"; --- @@ -145,7 +145,7 @@ import { Steps } from '@astrojs/starlight/components'; {tags.map((tag) => {tag})} ``` - ブラウザのプレビューで、タグがリスト表示されていることを確認します。 + ブラウザのプレビューで、タグがリスト表示されていることを確認します。ブログ投稿にタグが設定されていない場合や、タグの形式が不適切な場合、TypeScriptによるエラーが表示されます。これによりコードを確認し修正できます。 2. 各タグをそれぞれのページにリンクさせるには、次の``リンクを各タグ名に追加します。 @@ -209,9 +209,9 @@ import { Steps } from '@astrojs/starlight/components'; ```astro title="src/pages/tags/index.astro" --- import BaseLayout from '../../layouts/BaseLayout.astro'; -const allPosts = await Astro.glob('../posts/*.md'); -const tags = [...new Set(allPosts.map((post) => post.frontmatter.tags).flat())]; -const pageTitle = "Tag Index"; +const allPosts = Object.values(import.meta.glob('../posts/*.md', { eager: true })); +const tags = [...new Set(allPosts.map((post: any) => post.frontmatter.tags).flat())]; +const pageTitle = "タグインデックス"; --- @@ -272,47 +272,47 @@ const pageTitle = "Tag Index"; 1. `...`と``を`src/pages/tags/index.astro`からコピーして`MarkdownPostLayout.astro`内で再利用します。 - ```astro title="src/layouts/MarkdownPostLayout.astro" ins={13-17, 21-40} - --- - import BaseLayout from './BaseLayout.astro'; - const { frontmatter } = Astro.props; - --- - - {frontmatter.description} - {frontmatter.pubDate.toString().slice(0,10)} - - 著者: {frontmatter.author} - - - - - {tags.map((tag) => ( - {tag} - ))} - - - - - - ``` + ```astro title="src/layouts/MarkdownPostLayout.astro" ins={13-17, 21-40} + --- + import BaseLayout from './BaseLayout.astro'; + const { frontmatter } = Astro.props; + --- + + {frontmatter.description} + {frontmatter.pubDate.toString().slice(0,10)} + + 著者: {frontmatter.author} + + + + + {tags.map((tag: string) => ( + {tag} + ))} + + + + + + ``` このコードが機能するには、`MarkdownPostLayout.astro`に貼り付けたコードを**1箇所だけ編集**する必要があります。どこを編集すればいいかわかりますか? @@ -333,14 +333,13 @@ const pageTitle = "Tag Index"; ```astro title="src/layouts/MarkdownPostLayout.astro" "frontmatter" - {frontmatter.tags.map((tag) => ( + {frontmatter.tags.map((tag: string) => ( {tag} ))} ``` - ### MarkdownPostLayoutのコードの確認 @@ -361,7 +360,7 @@ const { frontmatter } = Astro.props; - {frontmatter.tags.map((tag) => ( + {frontmatter.tags.map((tag: string) => ( {tag} ))} @@ -395,7 +394,7 @@ const { frontmatter } = Astro.props; ### 確認テスト -与えられたファイルパスと同じルートにページを作成する別のファイルパスを選択してください。 +与えられたファイルパスと同じルーティングでページを作成する別のファイルパスを選択してください。 1. `src/pages/categories.astro`
{tag}
{frontmatter.description}
{frontmatter.pubDate.toString().slice(0,10)}
著者: {frontmatter.author}