@synesthesia/gatsby-theme-garden v0.4.0
@synesthesia/gatsby-theme-garden
A Gatsby theme for publishing a digital garden forked from mathieudutour/gatsby-digital-garden.
Please note this fork is for personal experimentation, use at your own risk and please do not have any expectation of support.
Installation
Manually add to your site
Install the theme
npm install @synesthesia/gatsby-theme-gardenAdd the configuration to your
gatsby-config.jsfile// gatsby-config.js module.exports = { plugins: [ { resolve: `@synesthesia/gatsby-theme-garden`, options: { // basePath defaults to `/` basePath: `/garden`, rootNote: `/garden/About-these-notes`, contentPath: `/content/garden`, }, }, ], };Add notes to your site by creating
mdormdxfiles inside/content/garden.Run your site using
gatsby developand navigate to your notes. If you used the above configuration, your URL will behttp://localhost:8000/garden
Options
| Key | Default value | Description |
|---|---|---|
basePath | / | Root url for the garden |
rootNote | The URL of the note to use as the root | |
contentPath | Location of local content | |
mdxOtherwiseConfigured | false | Set this flag true if gatsby-plugin-mdx is already configured for your site. |
How to inject custom MDX Components?
Create a custom react component.
Shadow the component with the custom component created in step 1.
All the MDX components that are used within
@synesthesia/gatsby-theme-gardencan be shadowed by placing the custom components under the following path./src/@synesthesia/gatsby-theme-garden/components/mdx-components/index.js
Example: Injecting a custom CodeBlock component to support Syntax Highlighting
Create a custom
CodeBlockcomponent as mentioned in the MDX GuidesCreate a file named
./src/@gatsby-theme-garden/components/mdx-components/index.jswith the following content.// the components provided by the theme export { AnchorTag as a } from "@gatsby-theme-garden/src/components/mdx-components/anchor-tag"; // your own component to inject into mdx export code from "./your-component"; // any code block will use this component
Embedding 3rd party content in MDX pages
This theme includes gatsby-plugin-mdx-embed so you can embed third-party content from a range of sources.
Please see the mdx-embed documentation.