Mermaid Iconify
pendingby Joao
Discover, enable, and use Iconify icon packs in Mermaid diagrams.
Mermaid Iconify
Community plugin for Obsidian that helps you use external Iconify packs inside Mermaid architecture-beta diagrams.
What it does
- lists Iconify packs from the official catalog
- lets the user enable or disable packs for Mermaid
- registers enabled packs with Mermaid using
registerIconPacks() - opens an icon picker per pack
- shows live preview images for icons
- copies
prefix:namesyntax and Mermaid snippets ready to paste
Why this plugin exists
Obsidian does not register external Mermaid icon packs by default. Mermaid supports custom icon packs, but they need to be registered first. This plugin focuses on making that workflow practical inside Obsidian.
Installation for development
- Clone this repository.
- Run
npm install. - Run
npm run build. - Copy
manifest.json,main.js, andstyles.cssto:<vault>/.obsidian/plugins/mermaid-iconify/
- Enable the plugin in Community plugins.
Manual installation from a release
Copy these files from the GitHub release into:
<vault>/.obsidian/plugins/mermaid-iconify/
Files required:
manifest.jsonmain.jsstyles.css
Usage
- Open Settings → Community plugins → Mermaid Iconify.
- Refresh the catalog if needed.
- Enable the packs you want, for example
mdi,lucide, orlogos. - Open the picker for a pack.
- Copy a value such as
mdi:laptop. - Use it in Mermaid:
architecture-beta
service app(mdi:laptop)[Admin]
service store(mdi:store)[Store]
Disclosures
Network use
This plugin makes outbound HTTPS requests only when needed:
https://api.iconify.design/collectionsto fetch the Iconify pack cataloghttps://api.iconify.design/collection?prefix=...to fetch icon names for a selected packhttps://unpkg.com/@iconify-json/<prefix>/icons.jsonto load the actual Iconify JSON pack used by Mermaidhttps://api.iconify.design/<prefix>/<icon>.svg?...for preview images shown in the picker
The plugin does not send note contents or vault contents to those services.
Accounts and payments
- no account required
- no payments
- no ads
Telemetry and analytics
- no telemetry
- no analytics
- no tracking
External file access
The plugin only stores its own settings inside Obsidian plugin data. It does not read arbitrary external files.
Compatibility notes
isDesktopOnlyis set tofalse- HTTP requests use Obsidian
requestUrlrather thanfetchfor plugin network calls - icon previews are loaded as remote SVG images in the picker UI
Release checklist
- update
manifest.jsonversion - create a GitHub release with a matching tag
- upload
main.js,manifest.json, andstyles.cssto the release - submit the plugin to
obsidianmd/obsidian-releases
Git cleanup
If main.js, node_modules, or release-assets were accidentally committed, run:
powershell -ExecutionPolicy Bypass -File .\cleanup-git-tracked-files.ps1
License
MIT
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.