gatsby-theme-blog-core
v4.0.0
Published
The core theme for gatsby-theme-blog
Downloads
520
Keywords
Readme
A Gatsby theme for creating a blog child theme. It includes all the data structures you need to get up and running building a blog and includes no additional theming or style opinions. gatsby-theme-blog
uses this theme under the hood.
Installation
For a new site
If you're creating a new site and want to use the blog theme, you can use the blog theme starter. This will generate a new site that pre-configures use of the blog theme.
gatsby new my-themed-blog https://github.com/gatsbyjs/gatsby-starter-blog-theme-core
For an existing site
- Install the theme
npm install gatsby-theme-blog-core
- Add the configuration to your
gatsby-config.js
file
// gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-theme-blog-core`,
options: {
// basePath defaults to `/`
basePath: `/blog`,
},
},
],
}
Add blog posts to your site by creating
md
ormdx
files inside/content/posts
.Note that if you've changed the default
contentPath
in the configuration, you'll want to add your markdown files in the directory specified by that path.Run your site using
gatsby develop
and navigate to your blog posts. If you used the above configuration, your URL will behttp://localhost:8000/blog
Usage
Theme options
| Key | Default value | Description |
| ------------------------ | ---------------- | ----------------------------------------------------------------------------------------------------------- |
| basePath
| /
| Root url for all blog posts |
| contentPath
| content/posts
| Location of blog posts |
| assetPath
| content/assets
| Location of assets |
| mdxOtherwiseConfigured
| false
| Set this flag true
if gatsby-plugin-mdx
is already configured for your site. |
| excerptLength
| 140
| Length of the auto-generated excerpt of a blog post |
| imageMaxWidth
| 1380
| Set the max width of images in your blog posts. This applies to your featured image in frontmatter as well. |
| filter
| {}
| Set the posts filter, for example: { frontmatter: { draft: {ne: true} } }
|
| limit
| 1000
| Set the amount of pages that should be generated |
Example usage
// gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-theme-blog-core`,
options: {
// basePath defaults to `/`
basePath: `/blog`,
},
},
],
}
Additional configuration
In addition to the theme options, there are a handful of items you can customize via the siteMetadata
object in your site's gatsby-config.js
// gatsby-config.js
module.exports = {
siteMetadata: {
// Used for the site title and SEO
title: `My Blog Title`,
// Used to provide alt text for your avatar
author: `My Name`,
// Used for SEO
description: `My site description...`,
// Used for resolving images in social cards
siteUrl: `https://example.com`,
// Used for social links in the root footer
social: [
{
name: `Twitter`,
url: `https://twitter.com/gatsbyjs`,
},
{
name: `GitHub`,
url: `https://github.com/gatsbyjs`,
},
],
},
}
Blog Post Fields
The following are the defined blog post fields based on the node interface in the schema
| Field | Type | | ----------- | -------- | | id | String | | title | String | | body | String | | slug | String | | date | Date | | tags | String[] | | excerpt | String | | image | String | | imageAlt | String | | socialImage | String |
Available components and styling
There are some existing components that you can import and use. Reference the full path to do so, e.g. gatsby-blog-theme-core/src/components/post
.
Also note that there are classNames
on elements in these components allowing you to target them with styles in your CSS.