Obsidian Release v0.12.0

Shiny new things

  • You can now search for tasks using task: similar to block:. There is also task-todo: and task-done: which will match only the tasks that are incomplete or complete, respectively. Use task:"" to match all tasks.
  • Search and backlink results has been significantly reworked:
    • Search results are now always expanded, instead of showing “… and x more matches”.
    • “Show more context” will now show the markdown block, instead of a fixed number of lines before and after the match.
    • There are now buttons to expand individual search results to see even more context.
    • Hover preview on search results will now scroll the highlighted region to the center rather than being clipped at the top.
  • You can now display backlinks inside the document using the more options menu while in preview mode. We will try to support edit mode in a future release.
  • Task lists [x] can now contain any character to indicate a completed task, instead of just x. This value can be used by custom CSS to change the appearance of the check mark, and is also available for plugins to use.
  • There are now hotkeys to show the panes for file explorer, backlinks, outline, starred, and tag pane.
  • You can now change the font size in the editor and preview with an option in Settings > Appearance, or using Ctrl/Cmd + up/down scroll. Some themes may have set overrides for the font size, so this setting might not work for you. See the developer section for details.


  • Major improvements to plugin management:
    • Plugin search now also matches in the description field as well.
    • You can now filter installed plugins using a search term.
    • Enabled plugins are no longer reset when you toggle safe mode. This can help quickly test whether issues are caused by plugins.
    • Plugins can now be enabled or disabled in the same place where they are installed, so you can enable it right away after install, instead of having to find them in the plugins list.
    • The “update” button will no longer show up if a plugin doesn’t have a new version.
    • Plugin setting tabs are now sorted alphabetically.
  • Obsidian Sync will now store a customizable device name which will show up in the sync log to help debug sync issues.
  • Obsidian Publish now allows search on your site even if you don’t turn on navigation.
  • You can now specify a logo file for Obsidian Publish.
  • There is now an option to reload the app when an error happens during initialization.
  • There is now a notification when the app first indexes the vault to avoid confusion why some features might not work right away.
  • Link suggestions and quick switcher will now fallback to a simpler matching algorithm when vault contains over 10k notes to avoid delays.

No longer broken

  • Renaming files no longer cause heading links to self ([[#heading]]) to include the file name.
  • The Workspaces plugin will now save to the proper workspace if the app was closed and restarted right after switching workspaces.
  • Fixed some i18n strings that weren’t properly loaded and always used the English variants due to a race condition.
  • File names with multiple consecutive space characters now render properly, instead of having the spaces collapse into one.
  • Generated markdown links now properly escapes backslashes.
  • Fixed embedded queries behave differently than global search when matching attachment files.
  • Fixed linking unlinked mentions not using preferred markdown link format.
  • Word counter for Korean now properly counts words rather than letters.
  • Fixed Shift-select in the file explorer accidentally selecting unsupported files that were not shown, causing unexpected file moves when using drag and drop after.


  • Theme developers: from now on, please avoid setting font-size using absolute units like px or pt. Instead, use relative units like em or %, which will automatically scale from the font size the user specified. To migrate px to em, you can divide your px value by 16 (the default font size), for example, 24px => 1.5em.
  • Commands that return false in their checkCallback will no longer set preventDefault() on the key event.
  • MetadataCache now includes sections and lists info.
    • Sections describe the markdown root level “blocks”, and comes with a type.
    • Lists comes with a parent field which can be used to deduce parent-child relationships, and also a task field which indicates whether this is a task and its completed status.
  • MarkdownRenderChild now requires a containerEl passed in via its constructor.
  • You can now retrieve section information as a MarkdownPostProcessor from the context object MarkdownPostProcessorContext.getSectionInfo().