diff --git a/gatsby-node.js b/gatsby-node.js index a5126d3e..aa2cea3f 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -53,8 +53,8 @@ exports.sourceNodes = async ({ const compacted = await jsonld.compact(doc, context.jsonld) compacted['@graph'].forEach((graph, i) => { const { - narrower, narrowerTransitive, broader, broaderTransitive, inScheme, topConceptOf, - hasTopConcept, ...properties + narrower, narrowerTransitive, broader, broaderTransitive, related, + inScheme, topConceptOf, hasTopConcept, ...properties } = graph const type = Array.isArray(properties.type) ? properties.type.find(t => ['Concept', 'ConceptScheme']) @@ -71,6 +71,7 @@ exports.sourceNodes = async ({ hasTopConcept___NODE: (hasTopConcept || []).map(topConcept => topConcept.id), broader___NODE: (broader && broader.id) || null, broaderTransitive___NODE: (broaderTransitive && broaderTransitive.id) || null, + related___NODE: (related || []).map(related => related.id), internal: { contentDigest: createContentDigest(graph), type, diff --git a/src/components/Concept.js b/src/components/Concept.js index f5e7a674..f14f58a9 100644 --- a/src/components/Concept.js +++ b/src/components/Concept.js @@ -1,8 +1,9 @@ /** @jsx jsx */ import { jsx } from '@emotion/core' import Markdown from 'markdown-to-jsx' +import { Link } from 'gatsby' -import { t, getDomId } from '../common' +import { t, getDomId, getFilePath } from '../common' const Concept = ({ pageContext: { node: concept } }) => (
@@ -46,6 +47,22 @@ const Concept = ({ pageContext: { node: concept } }) => (
) } + {concept.related + && ( +
+

Related

+ +
+ ) + } ) diff --git a/src/context.js b/src/context.js index 5f697820..1038126e 100644 --- a/src/context.js +++ b/src/context.js @@ -57,6 +57,9 @@ const jsonld = { "narrower": { "@container": "@set" }, + "related": { + "@container": "@set" + }, "narrowerTransitive": { "@container": "@set" }, diff --git a/src/queries.js b/src/queries.js index a80cbe9e..60c10b0c 100644 --- a/src/queries.js +++ b/src/queries.js @@ -55,6 +55,12 @@ module.exports.allConcept = (inScheme, languages) => ` ${[...languages].join(' ')} } } + related { + id + prefLabel { + ${[...languages].join(' ')} + } + } inScheme { id title { diff --git a/src/types.js b/src/types.js index df27bc49..b10d5dcc 100644 --- a/src/types.js +++ b/src/types.js @@ -19,6 +19,7 @@ module.exports = languages => ` narrowerTransitive: [Concept] @link(from: "narrowerTransitive___NODE"), broader: Concept @link(from: "broader___NODE"), broaderTransitive: [Concept] @link(from: "broaderTransitive___NODE"), + related: [Concept] @link(from: "related___NODE"), inScheme: ConceptScheme! @link(from: "inScheme___NODE"), hub: String, inbox: String