gatsby-theme-wirehead-tree

CircleCInpm versionContributor CovenantHippocratic License

I wanted to make Gatsby work the way I wanted it to work, which turns out to be a little non-trivial.

Specifically:

  • I don’t want to be too wedded to a “blog” idea where it’s just an about section and a single blog. Hierarchial trees are great.
  • I want a content folder that contains a bunch of markdown or MDX files with frontmater
  • I don’t want to have to put slugs in the file names, I just want the file name to determine the path.
  • I want to be able to generate queries for the structure of the site easily, including breadcrumbs.
  • I want to have titles for each of the pages (specified as the title key in the frontmatter) and I want them to be respected in the navigational elements and breadcrumbs with.
  • I want to be able to add dates with a date key in the frontmatter and be able to search on them.
  • I want to be able to use a type key in the frontmatter to select the template because MDX has some weird stuff with it’s native idea of templating and it doesn’t really work the way I wanted it to.
  • I also want to be able to make JSX pages that have front matter in them. And I don’t want to have a bunch of special-case code generating the navigational bits of the site that check if it’s using JSX or MDX.
  • I wanted to mark something as a draft and have it not be published.

WORK IN PROGRESS WARNING: I’m totally not finished messing with this.

Release status

I’m using it, but it’s still getting moved around in places.

Installation

Use the package manager npm to install.

npm i gatsby-theme-wirehead-tree

Usage

WORK IN PROGRESS WARNING: I’m not ready with much docs yet.

See gatsby-starter-wirehead-tree for an example.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Code of conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

Hippocratic Open Source License 2.1 see LICENSE.md