11---
2- title : データからプログラムによるページを作成する
2+ title : プログラムでデータからページを生成する
33typora-copy-images-to : ./
44disableTableOfContents : true
55---
@@ -8,22 +8,22 @@ disableTableOfContents: true
88
99## このチュートリアルは何ですか?
1010
11- 前回では Markdown を取得して、ブログ投稿のタイトルと抜粋のリストを作成し 、すばらしい index ページを作成しました。しかし、抜粋の表示だけではなく、実際の Markdown を表示するページが必要です。
11+ 前回では Markdown を取得して、ブログ投稿のタイトルと抜粋のリストを生成し 、すばらしい index ページを作成しました。しかし、抜粋の表示だけではなく、実際の Markdown を表示するページが必要です。
1212
13- ` src/pages ` に React コンポーネントを設置することで、ページの作成を続けることができますが、今回は** データ** から** プログラムで** ページを作成する方法を学びます 。 Gatsby は多くの静的サイトジェネレーターのように、ページの作成をファイルに ** 限定しません** 。 Gatsby は GraphQL を使用して** データ** を取得し、ビルド時にクエリの結果を** マッピング** できます。これはとても強力なアイディアです。このチュートリアルで、その意味と実装の手順を掘り下げていきます。
13+ ` src/pages ` に React コンポーネントを設置することで、ページの作成を続けることができますが、今回は** データ** から** プログラムで** ページを生成する方法を学びます 。 Gatsby は多くの静的サイトジェネレーターのように、ページの生成をファイルに ** 限定しません** 。 Gatsby は GraphQL を使用して** データ** を取得し、ビルド時にクエリの結果を** マッピング** できます。これはとても強力なアイディアです。このチュートリアルで、その意味と実装の手順を掘り下げていきます。
1414
1515さっそく始めましょう。
1616
17- ## ページのスラッグの作成
17+ ## ページのスラッグの生成
1818
19- ページの作成には 2 つの手順があります。
19+ ページの生成には 2 つの手順があります。
2020
21211 . ページのパスかスラッグを生成する。
22- 2 . ページを作成する 。
22+ 2 . ページを生成する 。
2323
24- _ ** ヒント** : 多くのデータソースは、コンテンツのスラッグやパスを直接提供します。それらを提供するシステム(CMS など)で作業をする場合は、 Markdown のように自分でスラッグを作成する必要はありません 。_
24+ _ ** ヒント** : 多くのデータソースは、コンテンツのスラッグやパスを直接提供します。それらを提供するシステム(CMS など)で作業をする場合は、 Markdown のように自分でスラッグを生成する必要はありません 。_
2525
26- Markdown のページを作成するために 、2 つの Gatsby API を学びます。
26+ Markdown のページを生成するために 、2 つの Gatsby API を学びます。
2727[ ` onCreateNode ` ] ( /docs/node-apis/#onCreateNode ) と
2828[ ` createPages ` ] ( /docs/node-apis/#createPages ) です。この 2 つは、多くのサイトやプラグインで使用されている主力の API です。
2929
@@ -37,7 +37,7 @@ exports.onCreateNode = ({ node }) => {
3737}
3838```
3939
40- ` onCreateNode ` 関数は、新しいノードが作成 (または更新)されたるたびに Gatsby によって呼び出されます。
40+ ` onCreateNode ` 関数は、新しいノードが生成 (または更新)されたるたびに Gatsby によって呼び出されます。
4141
4242開発用のサーバーを再起動してください。すると、多数のノードがターミナルのコンソールに記録されます。
4343
@@ -55,7 +55,7 @@ exports.onCreateNode = ({ node }) => {
5555}
5656```
5757
58- ページのスラッグを作成するために 、各 Markdown のファイル名が必要です。` pandas-and-bananas.md ` なら ` /pandas-and-bananas/ ` になります。しかし、どうやって ` MarkdownRemark ` ノードからファイル名を取得するのでしょうか?` File ` ノードには、あなたが必要としているファイルの情報が含まれているので、ノードのつながりから** 親の** ` File ` ノードまで** 辿る** 必要があります。それを行うために、関数を再度変更します。
58+ ページのスラッグを生成するために 、各 Markdown のファイル名が必要です。` pandas-and-bananas.md ` なら ` /pandas-and-bananas/ ` になります。しかし、どうやって ` MarkdownRemark ` ノードからファイル名を取得するのでしょうか?` File ` ノードには、あなたが必要としているファイルの情報が含まれているので、ノードのつながりから** 親の** ` File ` ノードまで** 辿る** 必要があります。それを行うために、関数を再度変更します。
5959
6060``` javascript:title=gatsby-node.js
6161// highlight-next-line
@@ -73,7 +73,7 @@ exports.onCreateNode = ({ node, getNode }) => {
7373
7474![ markdown-relative-path] ( markdown-relative-path.png )
7575
76- 次に、スラッグを作成する必要があります。ファイル名からスラッグを作成するロジックは複雑になりがちです 。` gatsby-source-filesystem ` プラグインにはスラッグを作成する関数が付属されているので 、それを使用しましょう。
76+ 次に、スラッグを生成する必要があります。ファイル名からスラッグを生成するロジックは複雑になりがちです 。` gatsby-source-filesystem ` プラグインにはスラッグを生成する関数が付属されているので 、それを使用しましょう。
7777
7878``` javascript:title=gatsby-node.js
7979const { createFilePath } = require (` gatsby-source-filesystem` ) // highlight-line
@@ -85,11 +85,11 @@ exports.onCreateNode = ({ node, getNode }) => {
8585}
8686```
8787
88- この関数はスラッグの作成とともに 、 親の ` File ` ノードの探索を処理します。サーバーを再起動すると、Markdown ごとに 1 つずつ、計 2 つのスラッグがターミナルに表示されます。
88+ この関数はスラッグの生成とともに 、 親の ` File ` ノードの探索を処理します。サーバーを再起動すると、Markdown ごとに 1 つずつ、計 2 つのスラッグがターミナルに表示されます。
8989
90- これで新しいスラッグを ` MarkdownRemark ` ノードに直接追加できます。これは、ノードに追加したデータを後から GraphQL で取得できるので、強力です。新しくページを作成する時に 、スラッグを簡単に取得できます。
90+ これで新しいスラッグを ` MarkdownRemark ` ノードに直接追加できます。これは、ノードに追加したデータを後から GraphQL で取得できるので、強力です。新しいページを生成する時に 、スラッグを簡単に取得できます。
9191
92- そのためには、[ ` createNodeField ` ] ( /docs/actions/#createNodeField ) と呼ばれる関数を使用します。この関数を使用すると、他のプラグインにより作成されたノードに、追加のフィールドを作成できます 。ノードを変更できるのは元の作成者のみなので、他のプラグイン(` gatsby-node.js ` を含む)は、フィールドを追加するためにこの関数を用いる必要があります。
92+ そのためには、[ ` createNodeField ` ] ( /docs/actions/#createNodeField ) と呼ばれる関数を使用します。この関数を使用すると、他のプラグインにより生成されたノードに、フィールドを追加できます 。ノードを変更できるのは元の作成者のみなので、他のプラグイン(` gatsby-node.js ` を含む)は、フィールドを追加するためにこの関数を用いる必要があります。
9393
9494``` javascript:title=gatsby-node.js
9595const { createFilePath } = require (` gatsby-source-filesystem` )
@@ -125,9 +125,9 @@ exports.onCreateNode = ({ node, getNode, actions }) => {
125125}
126126```
127127
128- これでスラッグが作成され、ページを作成できます 。
128+ これでスラッグが生成され、ページを生成できます 。
129129
130- ## ページを作成する
130+ ## ページを生成する
131131
132132` gatsby-node.js ` ファイルに、以下を追加します。
133133
@@ -171,16 +171,16 @@ exports.createPages = async ({ graphql, actions }) => {
171171
172172プラグインがページを追加できるように Gatsby が呼びだす [ ` createPages ` ] ( /docs/node-apis/#createPages ) API を追加しました。
173173
174- チュートリアルの冒頭で述べたように、プログラムでページを作成する手順は次の通りです 。
174+ チュートリアルの冒頭で述べたように、プログラムでページを生成する手順は次の通りです 。
175175
1761761 . GraphQL でデータを取得
1771772 . 結果をページにマッピング
178178
179- 上記のコードは、` graphql ` 関数を使用して Markdown のスラッグを取得するため、 Markdown からページを作成する最初のステップです 。これで、次のような取得結果が出力されます。
179+ 上記のコードは、` graphql ` 関数を使用して Markdown のスラッグを取得するため、 Markdown からページを生成する最初のステップです 。これで、次のような取得結果が出力されます。
180180
181181![ query-markdown-slugs] ( query-markdown-slugs.png )
182182
183- ページを作成するためには 、スラッグの他に、ページのテンプレートコンポーネントを追加する必要があります。Gatsby の他のページと同様に、プログラムされるページは React コンポーネントによって動作します。ページを作成する時には 、使用するコンポーネントを指定する必要があります。
183+ ページを生成するためには 、スラッグの他に、ページのテンプレートコンポーネントを追加する必要があります。Gatsby の他のページと同様に、プログラムされるページは React コンポーネントによって動作します。ページを生成する時には 、使用するコンポーネントを指定する必要があります。
184184
185185` src/templates ` ディレクトリーを追加し、` src/templates/blog-post.js ` を作成して、以下を追加します。
186186
@@ -247,7 +247,7 @@ exports.createPages = async ({ graphql, actions }) => {
247247}
248248```
249249
250- サーバーを再起動すれば、ページが作成されます!作成したページを見つける簡単な方法は 、サイトに存在しないでたらめなパスへ移動することです。Gatsby がページのリストを表示してくれます。例えば < http://localhost:8000/sdf > に移動すれば、作成したページのリストが表示されます 。
250+ サーバーを再起動すれば、ページが生成されます!生成されたページを見つける簡単な方法は 、サイトに存在しないでたらめなパスへ移動することです。Gatsby がページのリストを表示してくれます。例えば < http://localhost:8000/sdf > に移動すれば、生成されたページのリストが表示されます 。
251251
252252![ new-pages] ( new-pages.png )
253253
@@ -298,7 +298,7 @@ export const query = graphql`
298298
299299すばらしい!
300300
301- 最後のステップは、index から作成したページにリンクすることです 。
301+ 最後のステップは、index から生成されたページにリンクすることです 。
302302
303303` src/pages/index.js ` に戻り、 Markdown のスラッグを取得し、リンクを作成します。
304304
0 commit comments