Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

sspaeti/hugo-obsidian

 
 

Repository files navigation

Obsidian Link Scraper

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.

  1. GitHub Action (scrapes links into a .json file)
  2. Hugo Partial (turns .json file into graphs and tables)

GitHub Action

GitHub action and binary to scrape Obsidian vault for links and exposes them as a .json file for easy consumption by Hugo.

Example Usage (Binary)

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=true

Example Usage (GitHub Action)

Add '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
      ...

Changelog

2026-06-05

2025-04-23

  1. 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.
  2. 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.
  3. Added special character handling: Added specific handling for titles with slashes, replacing " / " with "-" to ensure consistency between file paths and link references.
  4. Optimized for large vaults: Pre-allocated maps with larger capacities and simplified the mapping logic to better handle large numbers of links.

About

simple GitHub action to parse Markdown Links into a .json file for Hugo

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 93.7%
  • Makefile 4.5%
  • Dockerfile 1.8%