Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Highlight Migrator

Grub BasketGrub Basket33 downloads

Scan legacy HTML highlights, map each colour to a native highlight colour, back up affected notes, then convert them — with full revert.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

An Obsidian plugin that converts legacy <mark> HTML highlights — like those written by the Highlightr plugin — into Obsidian's native highlight colours (==🔴text==), with a guided, fully reversible workflow.

Obsidian's native highlight colours use an emoji marker right after the opening ==. This plugin finds your existing HTML highlights, lets you decide how each colour maps, backs up every affected note, and then does the conversion — so a whole vault's worth of highlights moves over in one reviewed pass.

Features

  • Vault scan finds every legacy <mark> highlight and groups them by distinct colour, with per-colour occurrence and note counts. It detects both inline hex (<mark style="background:#RRGGBBAA">) and Highlightr class markup (<mark class="hltr-…">).
  • Full-tab review shows a table that maps each source colour to a native colour (Red, Orange, Yellow, Green, Blue, Purple), plain Default (no colour), or Skip. Each row has a colour swatch, counts, and a live preview of the resulting syntax, with a running conversion plan.
  • Smart suggestions: the six stock Highlightr colours are matched exactly to their native equivalents; any other colour falls back to the nearest native colour by perceptual (CIELAB) distance. You can override every suggestion per row.
  • Backup before writing: every affected note is copied — untouched — into a timestamped folder alongside a manifest.json, before any conversion runs. Backup folder names are collision-checked, so a backup never overwrites an earlier one.
  • Revert: restore every note in a migration from its backup copies, from the review tab or the "Revert last migration" command.
  • Scan report note (optional): a report with a human-readable tree and a machine-readable JSON block recording the colours found and the mapping used.
  • Safe by default: highlights that span multiple lines or already contain == are detected and left untouched rather than risk corrupting them, and the count of skipped highlights is shown. Conversion is idempotent, so re-running never double-converts.

Usage

  1. Open the migrator from the ribbon (highlighter icon) or the command Highlight Migrator: Open migrator.
  2. Click Scan vault. Review the table of colours found.
  3. For each colour, choose a native colour, Default, or Skip. Suggestions are pre-filled.
  4. Click Back up & convert. Affected notes are copied to the backup folder first, then converted.
  5. If you want to undo, click Revert last migration (or run the command).

Requirements

The plugin converts highlights on Obsidian 1.7.2 and later. The converted syntax (==🔴text==) renders as coloured highlights in builds that support native highlight colours; on builds that don't, the emoji marker shows as literal text.

Installing

From the community plugins directory

Search for "Highlight Migrator" in Settings → Community plugins and install it.

With BRAT

Add the repository grub-basket/Highlight-Migrator in the BRAT plugin.

Manually

Copy main.js, manifest.json, and styles.css from the latest release into <vault>/.obsidian/plugins/highlight-migrator/, then enable the plugin.

Settings

  • Convert class-based (hltr-*) highlights, in addition to inline hex.
  • Set the backup folder and report folder names.
  • Write a scan report note on each conversion.

Building

pnpm install
pnpm run build

The build type-checks with tsc and bundles main.js with esbuild.

License

MIT.

HealthExcellent
ReviewSatisfactory
About
Highlight Migrator moves your existing coloured highlights onto Obsidian's native highlight syntax, so the notes you have already marked up keep their colours without you editing them by hand. For a long time, coloured highlights in Obsidian were only possible through community plugins. The most common of these, Highlightr, wraps highlighted text in an HTML <mark> tag and colours it with an inline style or a CSS class. That works, but it leaves raw HTML scattered through your Markdown, and it depends on the plugin staying installed and enabled to render correctly. Recent versions of Obsidian added native highlight colours: you write a normal ==highlight== and place a small colour marker right after the opening ==, for example == text==. This is plain Markdown, it renders without any plugin, and it travels cleanly between devices and other Markdown tools. The gap between those two worlds is the problem Highlight Migrator solves. If you have hundreds or thousands of <mark> highlights.
AutomationUtilitiesFormatting
Details
Current version
0.1.4
Last updated
2 weeks ago
Created
2 weeks ago
Updates
5 releases
Downloads
33
Compatible with
Obsidian 1.7.2+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
Grub BasketGrub Basketgrub-basket
GitHubgrub-basket
GitHubgrub-basket
  1. Community
  2. Plugins
  3. Automation
  4. Highlight Migrator

Related plugins

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Lazy Loader

Load plugins with a delay on startup, so that you can get your app startup down into the sub-second loading time.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

BRAT

Easily install a beta version of a plugin for testing.

Advanced URI

Control everything with URI.

QuickAdd

Quickly add new notes or content to your vault.

Hot Reload

Automatically reload in-development plugins when their files are changed

Admonition

Admonition block-styled content.

Editing Toolbar

The Editing Toolbar is modified from cMenu, which provides more powerful customization settings and has many built-in editing commands to be a MS Word-like toolbar editing experience.

Templater

Create and use dynamic templates.