From df0329c7d5cde2399912869136936ce978c4240f Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Mon, 16 Sep 2019 21:33:14 +0300 Subject: [PATCH] Enrich snippet schema, probably finalize structure --- gatsby-node.js | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 4454ce2c6..94c55dc4d 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -127,10 +127,13 @@ exports.sourceNodes = ({ actions, createNodeId, createContentDigest, getNodesByT const typeDefs = ` type Snippet implements Node { html: HtmlData - tags: [String] + tags: TagData title: String - code: String + code: CodeData id: String + slug: String + path: String + text: TextData } type HtmlData @infer { @@ -139,6 +142,21 @@ exports.sourceNodes = ({ actions, createNodeId, createContentDigest, getNodesByT code: String example: String } + + type CodeData @infer { + src: String + example: String + } + + type TextData @infer { + full: String + short: String + } + + type TagData @infer { + primary: String + all: [String] + } `; createTypes(typeDefs); @@ -161,9 +179,21 @@ exports.sourceNodes = ({ actions, createNodeId, createContentDigest, getNodesByT let mNode = markdownNodes.find(mN => mN.frontmatter.title === id); let nodeContent = { id, - tags: sNode.attributes.tags, + tags: { + all: sNode.attributes.tags, + primary: sNode.attributes.tags[0] + }, title: mNode.frontmatter.title, - code: sNode.attributes.codeBlocks.es6 + code: { + src: sNode.attributes.codeBlocks.es6, + example: sNode.attributes.codeBlocks.example + }, + slug: mNode.fields.slug, + path: mNode.fileAbsolutePath, + text: { + full: sNode.attributes.text, + short: sNode.attributes.text.slice(0, sNode.attributes.text.indexOf('\n\n')) + } }; createNode({ id: createNodeId(`snippet-${sNode.meta.hash}`),