MagicLink

pending

by Fabien Polly (Infinition)

Hover-first plugin to quickly navigate to notes or headings and insert links.

β˜… 3 starsUpdated 12d agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub
Gemini_Generated_Image_ef0tbhef0tbhef0t-removebg-preview

MagicLink for Obsidian

Release License

MagicLink is a powerful hover-first navigation plugin for Obsidian. It automatically detects words and multi-word phrases in your notes that match note names, headings, tags, or property values, and displays an interactive popup with quick navigation and link insertion options.

image

You can quickly turn it off & on from the button near the View/Edit button.

image

MagikLink will show the highlighted links in Read mode.

✨ Features

πŸ” Smart Detection

MagicLink detects words and phrases that match:

  • πŸ“„ Notes - Words/phrases matching note file names
  • # Headings - Words/phrases matching headings in any note
  • 🏷️ Tags - Words matching tags (without the # prefix)
  • πŸ“‹ Properties - Words matching frontmatter property values

πŸ“ Multi-Word Phrase Detection

MagicLink can detect phrases of up to 10 consecutive words. For example:

  • A note named "Machine Learning Basics" will be detected when you hover over those 3 words
  • The plugin prioritizes the longest matching phrase
  • Configurable via slider in settings (1-10 words)

🎨 Customizable Styles

You can fully customize how detected words appear in your reading view:

  • Color - Choose any color using a color picker
  • Bold/Italic - Toggle bold and italic styles independently
  • Granular Control - Set different styles for Notes, Headings, Tags, and Properties

πŸͺ„ Quick Toggle

A "Magic Wand" button is added to the header of every note view:

  • Click to instantly enable/disable the plugin
  • Visual Feedback - The wand becomes transparent when disabled
  • Instant Update - The view refreshes immediately to show/hide highlights

🎯 Interactive Popup

When you hover over a matching word or phrase, a popup appears with:

  • Navigation links - Click to open notes, jump to headings, or navigate to tags
  • πŸ”— Insert buttons - Small button next to each result to insert the appropriate link
    • [[NoteName]] for notes
    • [[NoteName#Heading]] for headings
    • #tag for tags
    • [[NoteName]] for properties

βš™οΈ Highly Configurable

Detection Toggles

Toggle each detection type independently:

  • βœ… Detect Notes
  • βœ… Detect Headings
  • βœ… Detect Tags
  • βœ… Detect Properties

Phrase Detection

  • Max phrase words (slider 1-10) - Maximum consecutive words to detect as a phrase

Behavior

  • Hover delay - Time before popup appears (default: 250ms)
  • Min word length - Minimum characters for single word detection (default: 2)
  • Max results - Maximum items shown per section (default: 10)
  • Show insert buttons - Toggle πŸ”— buttons on/off

🚫 Word Exclusions

Add common words to an exclusion list so they won't trigger the popup.

⏱️ Smart Behavior

  • No popup while typing - Prevents distractions during writing
  • Popup stays visible - The popup locks in place when your mouse enters it
  • No interference - Another word underneath won't replace the current popup

Settings

image image

πŸ“¦ Installation

Method 1: BRAT (Recommended for Beta Testing)

  1. Install the BRAT plugin from Community Plugins
  2. Open BRAT settings
  3. Click "Add Beta Plugin"
  4. Enter: infinition/obsidian-magiclink
  5. Click "Add Plugin"
  6. Enable MagicLink in Community Plugins

Method 2: Manual Installation

  1. Go to Releases
  2. Download main.js, manifest.json, and styles.css
  3. Create folder: <your-vault>/.obsidian/plugins/obsidian-magiclink/
  4. Copy the 3 files into this folder
  5. Reload Obsidian
  6. Enable MagicLink in Settings β†’ Community Plugins

Method 3: Build from Source

# Clone the repository
git clone https://github.com/infinition/obsidian-magiclink.git

# Navigate to plugin folder
cd obsidian-magiclink

# Install dependencies
npm install

# Build the plugin
npm run build

# Copy main.js, manifest.json, styles.css to your vault's plugin folder

βš™οΈ Settings

Detection

SettingDescriptionDefault
Detect NotesMatch words/phrases with note namesβœ… On
Detect HeadingsMatch words/phrases with headingsβœ… On
Detect TagsMatch words with tags (without #)βœ… On
Detect PropertiesMatch words with frontmatter valuesβœ… On

Phrase Detection

SettingDescriptionDefault
Max phrase wordsMax consecutive words to detect (1-10)5

Styles

For each type (Notes, Headings, Tags, Properties), you can configure:

  • Color: Pick a custom color
  • Bold: Toggle bold text
  • Italic: Toggle italic text

Behavior

SettingDescriptionDefault
Hover delay (ms)Time before popup appears250
Min word lengthMinimum characters for detection2
Max resultsMax items per section10
Show insert buttonsShow πŸ”— button for link insertionβœ… On

Exclusions

SettingDescriptionDefault
Excluded wordsComma-separated list of ignored wordsthe, and, for, with, this, that, from, have, been

πŸ–±οΈ Usage

  1. Hover over any word or phrase in your note
  2. If it matches a note, heading, tag, or property, a popup appears
  3. Click on any item to navigate to that location
  4. Or click the πŸ”— button to insert the appropriate link
  5. Toggle Plugin: Click the πŸͺ„ wand icon in the note header to enable/disable MagicLink.

πŸ“ Popup Sections

IconSectionAction
πŸ“HereJump to heading in current note
πŸ“„NotesOpen notes with matching names
#HeadingsJump to headings in other notes
🏷️TagsJump to where a tag is used (with line number)
πŸ“‹PropertiesOpen notes with matching property values

πŸ”— Link Insertion

Each result row has a small πŸ”— button that inserts the appropriate link:

TypeInserted Link
Note[[NoteName]]
Heading[[NoteName#Heading]]
Tag#tagname
Property[[NoteName]]

πŸ”§ Technical Details

  • DOM-based detection - No CodeMirror conflicts
  • Efficient indexing - Indexes built on load, updated on file changes
  • Multi-word support - Detects phrases up to 10 words
  • Smart popup - Locks when mouse enters, prevents accidental replacement

πŸ“„ License

MIT License - Free to use and modify.

πŸ‘€ Author

Infinition

πŸ”— Links


Made with ❀️ for the Obsidian community.

Star History

Star History Chart

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.