From 7ceda0bc7a167315da6b8a424e52e6a28b5526fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Tue, 15 Nov 2022 22:52:33 +0100 Subject: [PATCH] fix: fix page & post issues --- gatsby-node.ts | 61 +++++++++++++++++++ .../{mdx.slug}.tsx => layouts/Page.tsx} | 19 +++--- .../blog/{mdx.slug}.tsx => layouts/Post.tsx} | 2 +- src/pages/terms-of-service.mdx | 2 +- 4 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 gatsby-node.ts rename src/{pages/{mdx.slug}.tsx => layouts/Page.tsx} (65%) rename src/{pages/blog/{mdx.slug}.tsx => layouts/Post.tsx} (97%) diff --git a/gatsby-node.ts b/gatsby-node.ts new file mode 100644 index 0000000..77be5de --- /dev/null +++ b/gatsby-node.ts @@ -0,0 +1,61 @@ +import path from "path"; +import type { GatsbyNode } from "gatsby" + +export const createPages: GatsbyNode["createPages"] = async ({ + graphql, + actions, + /* createNodeId, + createContentDigest, */ +}) => { + const { createPage } = actions + + const results = await graphql(` + query { + allMdx { + edges { + node { + slug + fields { + source + } + } + } + } + } + `) + + const allEdges: any[] = results.data.allMdx.edges + + const blogEdges = allEdges.filter( + (edge) => edge.node.fields.source === "posts" + ) + const pageEdges = allEdges.filter( + (edge) => edge.node.fields.source === "pages" + ) + + blogEdges.forEach((edge, index) => { + const previous = + index === blogEdges.length - 1 ? null : blogEdges[index + 1].node + const next = index === 0 ? null : blogEdges[index - 1].node + + createPage({ + path: `/blog/${edge.node.slug}`, + component: path.resolve("./src/layouts/Post.tsx"), + context: { + slug: edge.node.slug, + previous, + next + } + }) + }) + + pageEdges.forEach((edge, index) => { + createPage({ + path: `/${edge.node.slug}`, + component: path.resolve("./src/layouts/Page.tsx"), + context: { + slug: edge.node.slug + } + }) + }) +} diff --git a/src/pages/{mdx.slug}.tsx b/src/layouts/Page.tsx similarity index 65% rename from src/pages/{mdx.slug}.tsx rename to src/layouts/Page.tsx index f4af9b6..54c5fe4 100644 --- a/src/pages/{mdx.slug}.tsx +++ b/src/layouts/Page.tsx @@ -1,18 +1,15 @@ -import React from "react" +import * as React from "react" import { graphql, PageProps } from "gatsby" import { MDXRenderer } from "gatsby-plugin-mdx" import Layout from "../components/organisms/Layout" -const Page = ({ data: { mdx }, path }: PageProps) => { - console.log("Page...", { path, mdx }) - return ( - - - {mdx?.body ?? ""} - - - ) -} +const Page = ({ data: { mdx }, path }: PageProps) => ( + + + {mdx?.body ?? ""} + + +) export const query = graphql` query Page($id: String) { diff --git a/src/pages/blog/{mdx.slug}.tsx b/src/layouts/Post.tsx similarity index 97% rename from src/pages/blog/{mdx.slug}.tsx rename to src/layouts/Post.tsx index bca1d3a..b71b420 100644 --- a/src/pages/blog/{mdx.slug}.tsx +++ b/src/layouts/Post.tsx @@ -3,7 +3,7 @@ import { graphql, Link as GatsbyLink, PageProps } from "gatsby" import { GatsbyImage, getImage } from "gatsby-plugin-image" import { MDXRenderer } from "gatsby-plugin-mdx" import NavigateNextIcon from "@mui/icons-material/NavigateNext" -import Layout from "../../components/organisms/Layout" +import Layout from "../components/organisms/Layout" import { defineCustomElements as deckDeckGoHighlightElement } from "@deckdeckgo/highlight-code/dist/loader"; import { Breadcrumbs, Link } from "@mui/material"; diff --git a/src/pages/terms-of-service.mdx b/src/pages/terms-of-service.mdx index 1d35606..3ebd2af 100644 --- a/src/pages/terms-of-service.mdx +++ b/src/pages/terms-of-service.mdx @@ -11,7 +11,7 @@ Germany ## Contact Information -Telephone: +491723956877 +Telephone: +49 172 3956877 E-Mail: admin@felschr.com Website: [felschr.com](https://felschr.com)