2017-11-07 6 views
2

私はGatsby JSを使用しています。私はMarkdownファイルを使ってblogpostsを生成するブログを作ろうとしています。ブログポストテンプレートには別のセクションがあります。私は自分のブログポストテンプレートの異なるセクションに入れたいと思います。しかし私はMarkdownファイルでそれらを別々にどのようにアクセスできるのか分かりません。GatsbyJS:Markdownファイル(GraphQL)に保存されたブログ投稿の異なるセクションへのアクセス

私は全体のテキストを取得する方法とフロントマットの別の部分を取得する方法を知っていますが、私はどのように私のテキストから '原料'の情報だけを得るのか分かりません。

今はブログのさまざまなセクションをfrontmatterに直接組み込むことでこの問題を解決していますので、graphQLでこれらのセクションにアクセスできますが、これはfrontmatterが使用されるものではないことがわかります。

Graphdownクエリでこれらの個々の部分を使用できるように、Markdownテキストの部分をセクションに分割する方法はありますか?

これは私が持っているものです。

--- 
title: "Cake" 
date: "09-12-2017" 
post: "2" 

Name: "Chocolate Cake" 
Author: "DJ" 
Source: "Book" 

Ingredients: "milk, dark chocolate, coca cola, skittles, tea, liquorice" 

Subtitle1: "First Heading |" 
Subtitle2: "Second Heading |" 
Subtitle3: "Third Heading |" 

Text1: "first text" 
Text2: "second text" 
Text3: "third text" 
--- 

My excerpt goes here 

私はこのような何かやりたい:

--- 
title: "Cake" 
date: "09-12-2017" 
post: "2" 
--- 

Name: " Chocolate Cake" 
Author: "DJ" 
Source: "Book" 

Ingredients: "milk, dark chocolate, coca cola, skittles, tea, liquorice" 

Subtitle1: "First Heading |" 
Subtitle2: "Second Heading |" 
Subtitle3: "Third Heading |" 

Text1: "first text" 
Text2: "second text" 
Text3: "third text" 

Excerpt: my excerpt goes here 

をして、何とかブログ投稿の内部で使用するためにこれらの情報の別々の部分をつかむことができるようテンプレート。

答えて

1

Gatsbyのデータレイヤには、データのカスタム変換を行うためのフックがあります。構造化されたフィールドにマークダウンファイルを分割するようなものです。これを行うには、あなたのgatsby-node.jsファイルにonCreateNodeを実装して、マークダウンファイルを解析し、createNodeField

+2

でMarkdownRemarkノード上にフィールドを追加するには

は、お返事ありがとうございます!私はonCreateNodeをgatsby-node.jsに実装し、createNodeFieldを使ってMarkdownRemarkノードにフィールドを追加しました。このフィールドはテンプレートのblog-post.jsファイルにアクセスしました。私は、createNodeFieldの 'value'パラメータからノードフィールドの値を取得していることを知っています。これは、私が書いたテキストです。 ノードフィールドの値を(特定のdivのような)マークダウンファイルの特定の部分にしたいのであれば、マークダウンファイルをこれらのセクションに分割してノードの各フィールド値にフックアップするにはどうすればいいですか? – user74843

関連する問題