capyBearista/ObsiWiki

Implement bidirectional syncing (GitHub Wiki → Obsidian)

Open

#2 opened on Jul 30, 2025

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Python (1 fork)auto 404
advancedenhancementhelp wanted

Repository metrics

Stars
 (7 stars)
PR merge metrics
 (PR metrics pending)

Description

Remember, the entire feature doesn't need to be implemented at once for you to contribute!! Creating prototypes or even just sharing ideas is enough :)

Currently, the sync only works in one direction: Obsidian → GitHub Wiki. We need to implement the reverse direction to create true bidirectional synchronization.

Current behavior:

  • ✅ Obsidian changes → GitHub Wiki (working)
  • ❌ GitHub Wiki changes → Obsidian (no implementation)

What needs to be implemented:

  1. Git hook for GitHub Wiki changes, if possible: Create a post-commit hook for the wiki repository
  2. Reverse transformation logic: Convert GitHub Wiki syntax back to Obsidian syntax
  3. Conflict resolution: Handle cases where both sides have been modified
  4. Sync detection: Detect when changes come from GitHub Wiki vs local Obsidian
  5. Merge strategy: Decide how to handle concurrent edits

Technical challenges to solve:

  1. Syntax conversion:

    • GitHub Wiki: [[title|filename]] → Obsidian: [[filename|title]]
    • GitHub Wiki: [[image.ext]] → Obsidian: ![[image.ext]]
      • I expect this to be more complicated than the others.
    • GitHub Wiki: [custom display text](#some-header) → Obsidian: [[#Some Header|custom display text]]
  2. Branch management:

    • How to handle the reverse sync without creating conflicts
    • When to trigger the reverse sync
  3. Conflict detection:

    • Detect if local Obsidian has uncommitted changes
    • Prevent data loss during sync

How to contribute:

  1. Research existing bidirectional sync patterns in Git workflows
  2. Design the reverse transformation logic
  3. Implement a new git hook for the wiki repository
  4. Create conflict resolution strategies
  5. Test with real-world scenarios
  6. Update documentation with bidirectional workflow

Expected outcomes:

  • True bidirectional sync between Obsidian and GitHub Wiki
  • Robust conflict resolution
  • Clear documentation of the bidirectional workflow
  • Improved user experience with seamless sync in both directions

Contributor guide