This project build a static website using mkdocs from your obsidian vault. Please note that this project adds YAML frontmatter to the notes in your existing vault for manging permissions and providing each note a UUID. If you don't like looking at frontmatter yaml in Obsidian you can install hua03/obsidian-toggle-meta-yaml-plugin from the community plugins page.
- Linux Shell
- Obsidian Vault with notes you want to share
- nodejs + npm
- python3 + pip3
- Folder of markdown files you want as a HTML website
python3 -m venv env
source env/bin/activate
python3 -m pip install mkdocs
python3 -m pip install mkdocs-material
python3 -m pip install mkdocs-backlinks
python3 -m pip install material-plausible-plugin
# pip3 install git+https://github.com/danodic-dev/mkdocs-backlinks.git
# pip3 install mkdocs-tooltipster-links-plugin
# pip3 install mkdocs-preview-links-plugin
git clone https://github.com/dentropy/dentropys-obsidian-publisher.git
cd dentropys-obsidian-publisher
npm install
cd dentropys-obsidian-publisher
mkdir pkm
# Move your obsidian vault files you want in this folder
node process_markdown.js
cd site
mkdocs build -v
mkdocs serve -v
Check out Quickstart for GitHub Pages to setup github pages repository
Remember our static site is located at /site/site if you want to change things up
RUN ONE LINE AT A TIME
Create github repo with name $YOUR_GITHUB_USERNAME.github.io.git
# YOUR_GITHUB_USERNAME=dentropy
cd dentropys-obsidian-publisher
git config --global init.defaultBranch main
git clone [email protected]:$YOUR_GITHUB_USERNAME/$YOUR_GITHUB_USERNAME.github.io.git
Edit mkdocs-bak.yml
Replace the dentropy
in site_url: https://dentropy.github.io
to your github username
site_url: https://dentropy.github.io
Change pattern
to the path where your Obsidian Vault is, remember to keep the /**/*.md
at the end
Change offset_index
to what the sliced index is, in this case Root is the main folder
Change out_path
to $YOUR_GITHUB_USERNAME.github.io
Run process_markdown.js
cd dentropys-obsidian-publisher
node raw_to_sqlite.js -i './test_vault' -o './test_site' -oi 1
node raw_to_sqlite.js -i './test_vault' -o './test_site' -cp '..' -oi 1
cd test_site
mkdocs build -v
cd docs
python3 -m http.server
cd dentropys-obsidian-publisher
node process_markdown.js
When process_markdown.js
runs successfully your terminal should say Built Markdown Completed Successfully
Build site
cd dentropys-obsidian-publisher
cd $YOUR_GITHUB_USERNAME.github.io.git
git add .
git commit -m "Updated Site"
mkdocs build -v
cd docs
python3 -m http.server
# Go to http://localhost:8000 in your browser to test your site
# Ctrl + C to exit after verified site
cd ..
git add .
git commit -m "Rebuilt site"
git push origin main
Finish Configuring Github Pages
- Go to the git repository on on the github website
- Select
settings
along the top navigation bar of the repo - Select
Pages
on the left navigation bar undercode and automation
- Under
Source
selectDeploy from a branch
- Under
Branch
selectmain
- Select
/(Root)
drop down and select/docs
- Under
Branch
selectSave
- Under
Wait 10 minutes and check site
Go to https://$YOUR_GITHUB_USERNAME.github.io cause your site should be up now
Note: The docker build is not as fully functionally as the CLI, for example you can not build you entire PKM, I chose this intentionally for security reasons
cp example_dot_env .env
$EDITOR .env
bash container-build.sh
bash container-run.sh
sudo chown $USER:$USER ./pkm_out
git add index.md markdown_files mkdocs* site_data*
git commit -m "Updated Site"
git add .
git commit -m "Rebuilt site"
git push origin main
See Plausible Analytics for Material
Yaml already has what is required, just update it