garden.canalswans.net/src/pages/zines.js

51 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-12-27 03:06:00 +00:00
import React from "react"
import { graphql } from "gatsby"
2020-01-06 04:00:52 +00:00
import SLink from '../components/SLink'
2019-12-27 03:06:00 +00:00
import Layout from "../layouts/layout.js"
const PostLink = ({ post }) => (
<div>
2020-01-06 04:00:52 +00:00
<SLink to={post.frontmatter.path}>
2019-12-27 03:06:00 +00:00
{post.frontmatter.title} ({post.frontmatter.date})
2020-01-06 04:00:52 +00:00
</SLink>
2019-12-27 03:06:00 +00:00
</div>
)
const ZinesPage = ({
data: {
allMarkdownRemark: { edges },
},
}) => {
const Zines = edges
.filter(edge => !!edge.node.frontmatter.date) // You can filter your posts based on some criteria
.map(edge => <PostLink key={edge.node.id} post={edge.node} />)
return (
<Layout hideFooter={true}>
<div className="toc-wrapper">
<p className="table-of-contents">Zines</p>
<div className="posts-wrapper">{Zines}</div>
</div>
</Layout>
)
}
export default ZinesPage
export const pageQuery = graphql`
query {
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] }
filter: { frontmatter: { type: { eq: "zine" } } }
)
{
edges {
node {
id
frontmatter {
date(formatString: "MMMM DD, YYYY")
path
title
}
}
}
}
}
`