Community Plugin
View plugin on GitHub@undataforum/gatsby-theme-events
A Gatsby theme to create event pages and an events overview page. Can be used for any types of events, including webinars and sessions.
Usage
Theme options
| Key | Default Value | Description |
|---|---|---|
basePath |
/ |
Root url for all events. Should be changed to /events in most cases. basePath is used in Gatsby lifecycle methods to generate individual event pages and the events overview page. |
contentPath |
content/events |
Location of event MDX files. The filename convention is <slug>.md, e.g. keynote-session.md. If you do not set a slug in the frontmatter, the MDX file’s base name, in this example keynote-session, is used as slug. contentPath is used to configure plugin gatsby-source-filesystem. Any file in contentPath is part of the GraphQL Mdx collection. |
assetPath |
content/assets |
Location of assets for events. assetPath is used to configure plugin gatsby-source-filesystem. Any image in assetPath can be linked to an event by adding it to the frontmatter images array via relative path. Images can follow any file name convention you like. |
collection |
events |
The collection option is supplied to the name option of plugin gatsby-source-filesystem for the contentPath definition. This makes it possible to filter File nodes by collection using sourceInstanceName. If you configure this theme more than once in gatsby-config.js, you can use collection to distinguish different event collections, e.g. collections webinars and sessions. |
profiles |
undefined |
If profiles is not set, frontmatter properties moderators and speakers are interpreted as an array of names and rendered as such. If profiles is set, it refers to a specific collection of profiles created with @undataforum/gatsby-theme-profiles. In this case frontmatter moderators and speakers are interpreted as array of profile slugs that each reference a profile in the collection defined by the profiles option. |
This example config shows how to configure two separate posts collections:
// gatsby-config.js
module.exports = {
plugins: [
{
resolve: `@undataforum/gatsby-theme-events`,
options: {
basePath: '/webinars',
assetPath: '/assets/webinars',
contentPath: '/content/webinars',
collection: 'webinars'
},
},
{
resolve: `@undataforum/gatsby-theme-events`,
options: {
basePath: '/sessions`,
assetPath: `/assets/sessions`,
contentPath: '/content/sessions',
type: 'webinars`
},
},
],
}MDX Frontmatter
Frontmatter for MDX profiles located in contentPath. The YAML type of each key
corresponds to the GraphQL type listed in the following section.
| Key | Required | Description |
|---|---|---|
title |
yes | Event title. |
start |
yes | Shortened ISO 8601 timestamp (yyyy-MM-ddTHH:mm), eg 2019-08-29T09:00. |
end |
yes | See start. |
timezone |
yes | Time zone name from tz database, eg America/New_York. |
moderators |
no | If theme option profiles is not set, this is a list of moderator names. If theme option profiles is set, this is a list of profile slugs that references profiles from the collection provided in theme option profiles. |
speakers |
no | If theme option profiles is not set, this is a list of speaker names. If theme option profiles is set, this is a list of profile slugs that references profiles from the collection provided in theme option profiles. |
location |
yes | Location ID. You can localize the location ID to provide a more meaningful location description. |
slug |
no | The default slug is the event MDX file’s base name. This value overrides the default. |
description |
no | The default description for SEO purposes is the first paragraph in an event MDX file. This value overrrides the default. |
registrationLink |
no | Optional registration link. |
GraphQL Event type
This theme adds GraphQL type Event which can be queried with event and
allEvent queries. Type Event makes no assumptions about what the underlying
data source is.
| Field | Type | Description |
|---|---|---|
id |
ID! |
Gatsby node GUID. |
slug |
ID! |
Alternative ID used for querying and building the graph. |
collection |
String! |
Distinguish separate event collections. |
title |
EventTitle! |
Text and compiled MDX variant of event title. |
startDate |
Date! |
Start date converted to UTC. |
endDate |
Date! |
End date converted to UTC. |
displayDate |
String! |
This is the start date augmented with time zone information. |
duration |
String! |
Event duration (calculated with startDate and endDate). |
moderators |
[String!] or [Profile!] |
Type depends on theme option profiles. |
speakers |
[String!] or [Profile!] |
Type depends on theme option profiles. |
description |
EventDescription! |
Text and compiled MDX variants of event description. |
registrationLink |
String |
|
body |
String! |
A string representation of the body of the event page. For MDX pages this is the MDX body. |
path |
String! |
Path to generated page. |