The Markdown Hijacker plugin enables seamless synchronization between your vault and external folders, supporting markdown and other user defined file types. It allows one-way or bidirectional syncs, with real-time monitoring and offline change detection to ensure files stay updated even if edited outside the app. You can map multiple folder pairs, control how deletions are handled, and finetune inclusion based on subfolders, file extensions, or hidden files. Sync status is visible in the status bar, and metadata is managed via frontmatter. This setup is especially useful for integrating existing notes, working across devices, or collaborating with other tools without being locked into a single workspace.
Release Notes
0.1.8
- Windows compatibility: Fixed sync not working on Windows due to path handling issues
- Added path normalization utilities to handle backslash (
\) vs forward slash (/) differences - Added case-insensitive path comparison for Windows file system
- Fixed
getRelativePath()to properly normalize paths before comparison - Fixed
isFrontmatterValid()to usepathStartsWith()instead ofincludes()to prevent false matches
- Added path normalization utilities to handle backslash (
- Bug fix: Fixed file watchers not properly stopping when disabling sync
- Watchers now call
close()explicitly instead of relying on garbage collection - Prevents external file frontmatter from being continuously updated after sync is disabled
- Watchers now call
- Bug fix: Fixed Global Sync toggle not working on first enable after plugin load
- Watcher instances are now created on plugin load regardless of Global Sync state
- Enabling Global Sync from settings now immediately starts synchronization
0.1.7
- Bug fix: Fixed path conversion bug when folder name matches filename
- Previously, if internal folder name (e.g.,
test) was contained in filename (e.g.,test3.md), the file would be incorrectly renamed to3.md - Fixed
getRelativePath()to properly check directory prefix before replacing - Applied fix across SyncService, SnapShotService, and SyncInternalManager
- Added file existence check in
isFrontmatterValid()to prevent ENOENT errors
- Previously, if internal folder name (e.g.,
0.1.6
- Version bump and license update
- Added author contact link (Twitter) to LICENSE file
0.1.51
- Remove Debug Messages
0.1.5
- Enhanced Explorer Integration: Improved visual indicators and quick access for synced folders
- Changed circular badge to connection name badge for synced folders in file explorer
- Click badge to open external folder in system file manager (Finder/Explorer)
- Added right-click context menu for synced folders with options:
- Rename Connection
- Open Synced Folder in Finder/Explorer
- Copy External Path
- Open Synaptic Bridge Settings
- Refactored duplicate code for better maintainability
0.1.4
- Performance optimization: Significantly improved plugin loading and shutdown performance
- Eliminated startup stuttering and UI freezing during plugin initialization
- Fixed settings change freezing issues for smooth configuration updates
- Optimized plugin shutdown for instant response when disabling the plugin
- Improved internal file scanning performance using Obsidian Vault API
- Added delayed loading with requestIdleCallback for non-blocking initialization
- Implemented immediate watcher detachment without blocking operations
- Added .obsidianignore to exclude development files from Obsidian indexing
- Added console.log removal in production builds for better performance
0.1.3
- File name filtering for external folder: Added glob pattern support for including/excluding specific files from external folders
- Support for exact filename matching (e.g.,
meeting.md,config.json) - Support for glob patterns using
*,?, and[]wildcards (e.g.,todo-*.txt,project-??.md,daily-[0-9][0-9].md) - Include and exclude filters work together as intersection (files must match include patterns AND not match exclude patterns)
- Applies to "External to Vault" and "Bidirectional" sync types
- Support for exact filename matching (e.g.,
0.1.2
- Plugin renamed: The plugin name has been changed from "Markdown Hijacker" to "Synaptic Bridge" to better reflect its broader vision and branding direction.
0.1.1
- Changed UI menu language from Korean to English
0.1.0 (Initial Release)
- See README.md for plugin overview and usage instructions.
Future Roadmap
Sync Connections Sidebar
Add a dedicated sidebar tab to display and manage all synchronized folder pairs in a clean list view.- Show all active sync connections with their current status (syncing, paused, error, idle)
- Display connection names, sync directions, and last sync timestamps
- Quick toggle buttons to enable/disable individual connections
- Status indicators for sync health and file counts
- One-click access to connection settings and sync logs
- Enables quick overview and management of all sync pairs without opening settings
Post Processing Hooks
Allow users to define post-processing commands that run after a sync operation.- Users can configure named post-process profiles (e.g.,
deploy,optimize,notify) in plugin settings. - Post-process actions can be triggered based on frontmatter values or specific file paths.
- Commands may include shell scripts, external tool invocations, or integration with git (e.g., commit & push).
- Enables flexible automation after syncing, such as publishing to a blog, generating RSS, or image compression.
- Users can configure named post-process profiles (e.g.,
Import Non-Markdown Files as Markdown with Metadata
Convert non-markdown files into markdown format with automatic frontmatter generation.- For text-based files (e.g.,
.txt,.csv,.rtf), directly embed the file content into the markdown body. - For other file types (images, PDFs, binaries), provide file descriptions with preview thumbnails when possible, or fallback to direct links.
- Users can choose to either import files into the vault or keep them in their original location and reference them via links.
- Maintains file metadata and source path information in frontmatter for easy tracking and management.
- For text-based files (e.g.,
Customizable Sync File Frontmatter (YAML)
Allow users to define and customize the frontmatter (YAML metadata) structure for synchronized files, instead of using only the plugin developer's default fields.- Users can add, remove, or modify frontmatter fields according to their needs.
- Supports custom templates and variable substitution for dynamic metadata.
- Ensures compatibility with various workflows and external tools that rely on specific frontmatter formats.
Selective GitHub Sync
Enable synchronization between specific folders in your Vault (not the entire Vault) and a GitHub repository.- You can choose which folders to sync.
- Only selected file types (e.g.,
.md,.svg, etc.) will be included. - Each folder can be mapped to a different repository or branch if needed.
Blog Export Mode
Add an export option to transform internal Obsidian-style content into a clean, static-blog-ready format.- Converts Obsidian-specific syntax (e.g.,
![[image.png]],[[note]],dataviewblocks) into standard Markdown or static HTML. - Moves or uploads image and media assets to a structured
assets/folder or external CDN. - Automatically replaces Obsidian-style links with standard Markdown links.
- Normalizes frontmatter (title, date, tags, etc.) for compatibility with static site generators like Jekyll or Hugo.
- Intended for publishing selected folders or notes as blog-ready content while preserving internal formatting separately.
- Converts Obsidian-specific syntax (e.g.,