@arrempee/gatsby-theme-mdx-collections v1.0.2
Gatsby Theme: MDX Collections
This Gatsby theme sits on top of gatsby-theme-mdx-pages, expanding on it and
its Hugo inspiration by implementing "collections"- distinct groups of content
that share commonalities with each other which aren't necessarily shared between
other groups.
For instance, in a blog, there is a separation between the date-based content "posts" and regular pages like "about" or "contact". This theme aims to make implementing that separation a first-class concern.
Configuration
On top of the options specific to this theme, all provided options are also
passed through to the underlying gatsby-theme-mdx-pages instance.
collections: object
While collections will be automatically parsed from top-level subdirectories of
the directory specified by contentDir, they may also be manually defined to add
extra context and configuration to the resulting Collection nodes.
getCollection: function({ node, getNode })
This function is used by the theme to get the key of the collection each
particular MdxPage node is under. It recieves the MdxPage node in question,
and also has access to Gatsby's getNode to reach into other nodes, like the
Mdx or File nodes above it.
createPages: boolean
If set to false, the createPages callback will be aborted. Useful for
implementing your own createPages while still using nodes made by this theme.
templateDirectory: string
The directory where template components are located, relative to the site's root. defaults to "src/templates".
This is also passed to gatsby-theme-mdx-pages
defaultTemplate: string
The path of the template that pages will fall back on if their specified template cannot be found.
Defaults to "default", making the default default template "src/templates/default.js".
getTemplateComponent: function({ node, defaultTemplate, templateDirectory, collection })
If provided, this function will override the default one that searches for a
component given an MdxPage node, its collection, and the defaultTemplate and
templateDirectory settings
Node Types
Collection
This node represents a Collection, and holds any Collection-level settings.
One will be made for each top-level subdirectory in the contentDir.
Only one field will always be present: the key string that represents the
name of the collection's directory and/or the key its configuration is under in
the collection config object.
Any fields specified in a manual configuration will be added directly to the
resulting node, except key, which will be overwritten.
CollectionEntry
This node type serves as a link between an MdxPage and the Collection it's
contained in. If you want to get all nodes in a certain collection, query these.
Fields
collection: A direct link to the
Collectionnode.page: A direct link to the
MdxPagenode.