Skip to content

A Template to Publish Obsidian/Foam Notes on Github Pages (uses MkDocs)

License

Notifications You must be signed in to change notification settings

jobindjohn/obsidian-publish-mkdocs

Repository files navigation

Publish your Obsidian Notes

MkDocs template Built with Material for MkDocs

Would you like to take some of your notes in Obsidian and make it public?

This template gives you an easy (and automated) way to publish your Obsidian notes (or blog!) on your Github pages.

With this template, you get these out-of-the-box:

  • an awesome website based on Material theme, complete with a search bar (Checkout this template repo published here)
  • get the Obsidian/Roam style [[wikilinks]] from your vault in your published notes
  • Toggle between light and dark mode
  • Blog folder

Quick start

  1. Create a new github repository using this template. Click the green button at the top or use this link.

  1. Give a name to your repository. By default your notes will be published at <https://username.github.io/repo-name/>
    • Copy only the main branch while creating the repo from the template
  2. Clone the repository you generated into your Obsidian folder/vault.
  3. Move your notes that you would like to make public to the repo-name/docs folder.
    • Easiest way to do this would be using drag and drop within Obsidian
  4. Commit and push the changes. Github actions will take care of the rest, publishing your notes using MkDocs, with the Material theme.
  5. Go to Settings > Pages and select the select the Source as your gh-pages branch.

Not working for you? Open an issue and let me know what went wrong.

Configuring your website

How do I arrange notes as sections and pages?

By default, the sections and pages will follow the folder structure within /docs. The folders and sub-folders will show up as sections. Try not to have white spaces in your folder and file names, as these will be converted to HTML links. The webpage heading will be the same as the first-level heading in the markdown note.

  • If you would like to arrange the pages manually, then use the nav option in the mkdocs.yml configuration file at the root of this repo to set custom page navigation.
    • For example, see the setup for the Blue Book at github. Managing each page using nav can become cumbersome as the number of notes increase though!
  • The Materials theme provides multiple options to arrange sections, use navigation tabs, and many other helpful navigation setups

Alternatives

Other interesting projects