diff --git a/src/pages/404.js b/src/pages/404.js index 177bc27..202cdd7 100644 --- a/src/pages/404.js +++ b/src/pages/404.js @@ -1,9 +1,11 @@ import React from "react"; +import { graphql } from "gatsby"; import Page from "../templates/page"; -export default function NotFound() { +export default function NotFound({ data }) { + var siteMetadata = data.site.siteMetadata; return ( - +

Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. @@ -14,3 +16,11 @@ export default function NotFound() { ) } + +export const query = graphql` + query { + site { + ...HeaderInfo + } + } + `; \ No newline at end of file diff --git a/src/pages/categories.js b/src/pages/categories.js new file mode 100644 index 0000000..cc76499 --- /dev/null +++ b/src/pages/categories.js @@ -0,0 +1,35 @@ +import React from "react"; +import { graphql } from "gatsby"; +import Page from "../templates/page"; + +export default function Categories({ data }) { + var siteMetadata = data.site.siteMetadata; + var categoryListItems = data.allMarkdownRemark.group.map(function(category) { + return ( +

  • {category.name} ({category.totalCount})
  • + ); + }); + + return ( + +

    Browse posts by category.

    +
      + {categoryListItems} +
    +
    + ) +} + +export const pageQuery = graphql` + query { + allMarkdownRemark { + group(field: frontmatter___categories) { + name: fieldValue + totalCount + } + } + site { + ...HeaderInfo + } + } +`; \ No newline at end of file diff --git a/src/pages/index.js b/src/pages/index.js index cc399db..3d5b12e 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -8,7 +8,7 @@ export default function Home({ data }) { const siteMetadata = data.site.siteMetadata; return ( - +

    {post.frontmatter.title}

    @@ -55,10 +55,7 @@ export const query = graphql` } } site { - siteMetadata { - title - tagline - } + ...HeaderInfo } sitePage { path diff --git a/src/pages/tags.js b/src/pages/tags.js new file mode 100644 index 0000000..113ddca --- /dev/null +++ b/src/pages/tags.js @@ -0,0 +1,35 @@ +import React from "react"; +import { graphql } from "gatsby"; +import Page from "../templates/page"; + +export default function Tags({ data }) { + var siteMetadata = data.site.siteMetadata; + var tagListItems = data.allMarkdownRemark.group.map(function(tag) { + return ( +
  • {tag.name} ({tag.totalCount})
  • + ); + }); + + return ( + +

    Browse posts by tag.

    +
      + {tagListItems} +
    +
    + ) +} + +export const pageQuery = graphql` + query { + allMarkdownRemark { + group(field: frontmatter___tags) { + name: fieldValue + totalCount + } + } + site { + ...HeaderInfo + } + } +`; \ No newline at end of file diff --git a/src/templates/page.js b/src/templates/page.js index a30192a..1f0a89b 100644 --- a/src/templates/page.js +++ b/src/templates/page.js @@ -1,9 +1,9 @@ import React from "react"; import Layout from "../components/layout" -export default function Page({ title, tagline, pageTitle, children }) { +export default function Page({ headerInfo, pageTitle, children }) { return ( - +

    {pageTitle}

    {children} @@ -11,3 +11,12 @@ export default function Page({ title, tagline, pageTitle, children }) { ); } + +export const query = graphql` + fragment HeaderInfo on Site { + siteMetadata { + title + tagline + } + } +`; \ No newline at end of file diff --git a/src/templates/post.js b/src/templates/post.js index e7af835..2d4fda3 100644 --- a/src/templates/post.js +++ b/src/templates/post.js @@ -62,10 +62,7 @@ export const query = graphql` } } site { - siteMetadata { - title - tagline - } + ...HeaderInfo } sitePage { path