A Gatsby theme for publishing a digital garden.
If you're creating a new site and want to use the garden theme, you can use the garden theme starter. This will generate a new site that pre-configures use of the garden theme.
gatsby new my-digital-garden https://github.com/mathieudutour/gatsby-starter-digital-garden
- Install the theme
npm install gatsby-theme-garden
- Add the configuration to your
gatsby-config.js
file
// gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-theme-garden`,
options: {
// basePath defaults to `/`
basePath: `/garden`,
rootNote: `/garden/About-these-notes`,
contentPath: `/content/garden`,
},
},
],
};
-
Add notes to your site by creating
md
ormdx
files inside/content/garden
. -
Run your site using
gatsby develop
and navigate to your notes. If you used the above configuration, your URL will behttp://localhost:8000/garden
You can also use a Roam Research database to source your notes. Specify the
roamUrl
,roamEmail
androamPassword
options to do so. More information on gatsby-source-roamresearch
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 | |
roamUrl |
The URL of your Roam Research database | |
roamEmail |
Email used to sign into Roam Research | |
roamPassword |
Password used to sign into Roam Research | |
mdxOtherwiseConfigured |
false |
Set this flag true if gatsby-plugin-mdx is already configured for your site. |
-
Create a custom react component.
-
Shadow the component with the custom component created in step 1.
-
All the MDX components that are used within
gatsby-theme-garden
can be shadowed by placing the custom components under the following path./src/gatsby-theme-garden/components/mdx-components/index.js
-
Create a custom
CodeBlock
component as mentioned in the MDX Guides -
Create a file named
./src/gatsby-theme-garden/components/mdx-components/index.js
with 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 with use this component