Caution
This fork has moved to my second-brain-public as it's the only place I used it and I can integrate better. All in one place. So see there for the latest.
Used by Quartz -> My latest Quartz v3+my addtions are on sspaeti/second-brain-public.
This repository comes to you in two parts.
- GitHub Action (scrapes links into a
.jsonfile) - Hugo Partial (turns
.jsonfile into graphs and tables)
GitHub action and binary to scrape Obsidian vault for links and exposes them as a .json file for easy consumption by Hugo.
Read Markdown from the /content folder and place the resulting linkIndex.json (and contentIndex.yaml if the index flag is enabled) into /data
# Installation
go install github.com/sspaeti/hugo-obsidian@latest
# Run
hugo-obsidian -input=content -output=data -index=trueAdd 'Build Link Index' as a build step in your workflow file (e.g. .github/workflows/deploy.yaml)
...
jobs:
deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Build Link Index
uses: sspaeti/hugo-obsidian@latest
with:
input: content # input folder
output: data # output folder
index: true # whether to index content
...- Added enrichment of Blogs and Book articles, see
- Fixed case sensitivity: Both processTarget and processSource now convert links to lowercase, ensuring that capitalization differences (like "Semantic Layer" vs "semantic layer") don't cause missed links.
- Improved block reference handling: The code now properly extracts the base path from links that include block references (like [[Semantic Layer^SOMEHASH]]), ensuring the link is properly registered.
- Added special character handling: Added specific handling for titles with slashes, replacing " / " with "-" to ensure consistency between file paths and link references.
- Optimized for large vaults: Pre-allocated maps with larger capacities and simplified the mapping logic to better handle large numbers of links.