Gatsby knowledge base theme
This is a Gatsby theme for publishing a knowledge base or personal wiki. Named gatsby-theme-kb
.
Create your Second Brain by writing down your thoughts - or as the term used this theme topics
- and their relations in markdown.
Heavily inspired by gatsby-digital-garden and Obsidian.
✨ Features
- Support bidirectional [[Wiki Link]] in double brackets
[[]]
, will show the backlink reference context. - Hover preview for wiki-links.
- A nice interactive [[Graph View]] visualizing the relationships of your notes.
- Mobile-friendly responsive design.
- Local search.
- Light and dark mode.
- Auto-generated sidebar based on notes directory.
- Auto-generated [[Show Table Of Contents]].
- Configurable
mdx
processing system, with the power ofgatsby-plugin-mdx
. - Page customization by [[Using frontmatter]].
This demo site has some extra gatsby config apart from gatsby-theme-kb
itself. You can find them on github.
Working with knowledge management tools
Foam
Foam is a personal knowledge management and sharing system inspired by Roam Research, built on Visual Studio Code and GitHub.
But it doesn't bundle with an official publishing system (yet).
And gatsby-theme-kb
is one of the few Foam publishing solutions that support note graph rendering.
With the help of Foam for VSCode plugin auto-creating link definitions, your knowledge base can have nested folders.
I've created a Foam template foam-template-gatsby-kb to help you start. It can also be used to publish an Obsidian vault. There are some detailed instructions in its readme.
Obsidian
This theme can be used to publish an Obsidian project.
Though currently this is far less versatile than Obsidian's publishing system. e.g. lack of tagging system.
But this is free and open, you can always extend it as you wish.
Extending it in your Gatsby site
- Shadowing in Gatsby Themes, Gatsby offical tutorial about extending a theme.
- Extend
gatsby-theme-kb
to [[Add a comment system]]. - [[Override Styles]] shows some approaches to change the appearance of the site.
Any Thoughts to make this better?
Welcome to open issues and PRs on github repo.