Skip to content

Commit 7962307

Browse files
tksktoyanthomasdevjp-knj
authored
i18n(ja): update tutorial/5-astro-api/1.mdx (#12452)
Co-authored-by: Yan <[email protected]> Co-authored-by: knj <[email protected]>
1 parent 50394ca commit 7962307

File tree

1 file changed

+19
-15
lines changed
  • src/content/docs/ja/tutorial/5-astro-api

1 file changed

+19
-15
lines changed

src/content/docs/ja/tutorial/5-astro-api/1.mdx

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ type: tutorial
33
title: ブログ記事一覧を作成する
44
description: |-
55
「初めてのAstroブログ」チュートリアル -
6-
Astro.glob()を使用してプロジェクト内にあるファイルのデータにアクセスする
6+
import.meta.glob()を使用してプロジェクト内にあるファイルのデータにアクセスする
77
i18nReady: true
88
---
99
import Box from '~/components/tutorial/Box.astro';
@@ -16,20 +16,20 @@ import { Steps } from '@astrojs/starlight/components';
1616
リンクしたいブログ記事がいくつかできたので、そのリストを自動的に作成するようブログページを設定しましょう!
1717

1818
<PreCheck>
19-
- `Astro.glob()`を使ってすべての投稿のデータに一度にアクセスする
19+
- `import.meta.glob()`を使ってすべての投稿のデータに一度にアクセスする
2020
- 動的に生成された記事のリストをブログページに表示する
2121
- リストの各項目に`<BlogPost />`コンポーネントを使用するようリファクタリングする
2222
</PreCheck>
2323

2424
## 記事のリストを動的に表示する
2525

2626
<Steps>
27-
1. 以下のコードを`blog.astro`に追加して、すべてのMarkdownファイルに関する情報を取得します。`Astro.glob()`は、各ブログ記事に対応するオブジェクトの配列を返します。
27+
1. 以下のコードを`blog.astro`に追加して、すべてのMarkdownファイルに関する情報を取得します。`import.meta.glob()`は、各ブログ記事に対応するオブジェクトの配列を返します。
2828

2929
```astro title="src/pages/blog.astro" ins={3}
3030
---
3131
import BaseLayout from '../layouts/BaseLayout.astro'
32-
const allPosts = await Astro.glob('../pages/posts/*.md');
32+
const allPosts = Object.values(import.meta.glob('./posts/*.md', { eager: true }));
3333
const pageTitle = "私のAstro学習ブログ";
3434
---
3535
<BaseLayout pageTitle={pageTitle}>
@@ -48,7 +48,7 @@ import { Steps } from '@astrojs/starlight/components';
4848
```astro title="src/pages/blog.astro" del={9,10,11} ins={13}
4949
---
5050
import BaseLayout from '../layouts/BaseLayout.astro'
51-
const allPosts = await Astro.glob('../pages/posts/*.md');
51+
const allPosts = Object.values(import.meta.glob('./posts/*.md', { eager: true }));
5252
const pageTitle = "私のAstro学習ブログ";
5353
---
5454
<BaseLayout pageTitle={pageTitle}>
@@ -58,12 +58,12 @@ import { Steps } from '@astrojs/starlight/components';
5858
<li><a href="/posts/post-2/">Post 2</a></li>
5959
<li><a href="/posts/post-3/">Post 3</a></li>
6060
61-
{allPosts.map((post) => <li><a href={post.url}>{post.frontmatter.title}</a></li>)}
61+
{allPosts.map((post: any) => <li><a href={post.url}>{post.frontmatter.title}</a></li>)}
6262
</ul>
6363
</BaseLayout>
6464
```
6565

66-
`Astro.glob()`によって返される配列をマップすることで、ブログ記事のリスト全体が動的に生成されるようになりました
66+
Astroは標準でTypeScriptをサポートしています。`import.meta.glob()`が返す配列をマップすることで、ブログ記事のリスト全体が動的に生成されます
6767

6868
3. `src/pages/posts/`に新しく`post-4.md`ファイルを作成し、Markdownコンテンツを追加して新しいブログ記事を追加します。以下で使用されているフロントマターのプロパティを少なくとも含めるようにしてください。
6969

@@ -79,7 +79,7 @@ import { Steps } from '@astrojs/starlight/components';
7979
pubDate: 2022-08-08
8080
tags: ["astro", "成功"]
8181
---
82-
記事のリストを作成するために`Astro.glob()`がすべての記事データのリストを返しているので、この記事は他のブログ記事と一緒に表示されるはずです。
82+
`import.meta.glob()`で取得した記事データの配列を使っているので、この記事は他のブログ記事と一緒に表示されるはずです。
8383
```
8484

8585
4. ブラウザのプレビューで`http://localhost:4321/blog`のブログページに再度アクセスし、新しいブログ記事を含む4つの項目のリストへと更新されているのを確認してください。
@@ -93,8 +93,8 @@ import { Steps } from '@astrojs/starlight/components';
9393

9494
```astro title="src/pages/blog.astro" del={2} ins={3}
9595
<ul>
96-
{allPosts.map((post) => <li><a href={post.url}>{post.frontmatter.title}</a></li>)}
97-
{allPosts.map((post) => <BlogPost url={post.url} title={post.frontmatter.title} />)}
96+
{allPosts.map((post: any) => <li><a href={post.url}>{post.frontmatter.title}</a></li>)}
97+
{allPosts.map((post: any) => <BlogPost url={post.url} title={post.frontmatter.title} />)}
9898
</ul>
9999
```
100100

@@ -141,7 +141,7 @@ import { Steps } from '@astrojs/starlight/components';
141141
---
142142
import BaseLayout from '../layouts/BaseLayout.astro';
143143
import BlogPost from '../components/BlogPost.astro';
144-
const allPosts = await Astro.glob('../pages/posts/*.md');
144+
const allPosts = Object.values(import.meta.glob('../pages/posts/*.md', { eager: true }));
145145
const pageTitle = "私のAstro学習ブログ";
146146
---
147147
```
@@ -161,13 +161,13 @@ import { Steps } from '@astrojs/starlight/components';
161161
---
162162
import BaseLayout from '../layouts/BaseLayout.astro';
163163
import BlogPost from '../components/BlogPost.astro';
164-
const allPosts = await Astro.glob('../pages/posts/*.md');
164+
const allPosts = Object.values(import.meta.glob('../pages/posts/*.md', { eager: true }));
165165
const pageTitle = "私のAstro学習ブログ"
166166
---
167167
<BaseLayout pageTitle={pageTitle}>
168168
<p>ここには、私がAstroを学んでいく旅の様子を投稿します。</p>
169169
<ul>
170-
{allPosts.map((post) => <BlogPost url={post.url} title={post.frontmatter.title} />)}
170+
{allPosts.map((post: any) => <BlogPost url={post.url} title={post.frontmatter.title} />)}
171171
</ul>
172172
</BaseLayout>
173173
```
@@ -186,7 +186,7 @@ Astroコンポーネントに以下のコードが含まれているとします
186186

187187
```astro
188188
---
189-
const myPosts = await Astro.glob('../pages/posts/*.md');
189+
const myPosts = Object.values(import.meta.glob('./posts/*.md', { eager: true }));
190190
---
191191
```
192192

@@ -244,4 +244,8 @@ const myPosts = await Astro.glob('../pages/posts/*.md');
244244
- [ ] ローカルファイルのデータを取得できる。
245245
- [ ] ブログ記事のリストを表示できる。
246246
</Checklist>
247-
</Box>
247+
</Box>
248+
249+
### 参考
250+
251+
- [globパターンでインポートする](/ja/guides/imports/#importmetaglob)

0 commit comments

Comments
 (0)