Learn more

Changelog

Follow Obsidian updates and improvements.

Shiny new things

  • There is now a new File Recovery core plugin that keeps snapshots of your most recently edited files for recovery. This can be used to restore lost data in cases where a computer crash causes a file to be corrupted, or when a plugin malfunction causes a file to be wiped.
  • You can now nest a section: search within another one to search for sub-headings. For example, section:(Heading1 section:(Subheading))
  • There is now an option to disable GPU acceleration, especially helpful for those experiencing kernel panics and graphical glitches on MacOS.

Improvements

  • Embedded query blocks will now exclude its own block when searching.
  • Folder auto-complete for setting options that take a path is will now match case-insensitive.
  • There is now an option to switch vault when the app encounters an error when loading the vault.
  • Vim mode now has a confirmation dialog to prevent it from being accidentally turned on.
  • "Open today's note" command has been tweaked to "Open today's daily note" to avoid confusion.

No longer broken

  • Fix heading and list folding not persisted properly.
  • Fix the link suggestion box stuck on page when opening a links using hotkey.
  • Fixed rare case of Sync getting stuck on a merge failure.
  • The global action bar from the left swipe menu has been replaced with a ribbon that works identically to the desktop version.
  • Command palette, and all the core plugin actions are now available from the ribbon.
  • New option to close panes in right drawer.
  • iOS: Fixed app zooms in when taking some actions.
  • iOS: Can now double-tap to select words.
  • iOS: Screen doesn't fade when scrolling with cursor on a link.
  • iOS: Graph no longer crash the app on closing.
  • iOS: Fixed status bar text unreadable on light theme.
  • Can now press enter in a blockquote.
  • Tap on outline item now closes the outline.
  • Keyboard retract on search to give more space.
  • Performance improvements for animations.
  • Lots of small UI tweaks to make various elements size correctly, overflow nicely, scrollable and fit within the viewport.

Shiny new things

  • A new command has been added for opening a new workspace while saving the current one.
  • Obsidian Sync will now automatically merge sync conflicts instead of overwriting the file. Note that this only applies to .md files.
  • When a change is made to a note on disk, but you also have changes in Obsidian that hasn't been auto-saved (within 2 seconds), the two versions will now be merged automatically. Previously the app would discard any unsaved changes causing you to lose a few characters typed.

Improvements

  • Search will no longer get stuck if some note failed to load due to a filesystem error.
  • When opening a note fails due to a filesystem error, it will no longer be possible to accidentally save the contents of the previously opened note on the newly opened note.

No longer broken

  • Fixed a rare case sync race condition on high latency network when running on multiple devices. This would previously undo the last few characters typed into the document.

No longer broken

  • Toggle checklist now works again when the line is empty.
  • Fixed link suggestion incorrectly positioned sometimes, overlapping the link itself.
  • Fixed tables wrapping in edit mode.
  • Search suggestions should now be correctly rendered.
  • Fixed scroll sync with embeds that contain lists.

Shiny new things

  • You can now start a timelapse graph animation using a command.
  • You can now reorder graph color groups by drag and drop on the color picker.
  • There is now a new command to toggle the spellchecker.

Improvements

  • We've removed the hotkey Ctrl/Cmd+R which previously reloads the app. It is now a command that can be customized, and is not assigned to any hotkey by default.
  • Link auto-complete will now stay when no results are found, so that hotkeys like Tab and Enter will work consistently.
  • The language you choose will now be applied to the locale of moment.js, which affects the language generated from your date formats.
  • There is now a count for number of community plugins installed.
  • Clicking on a suggested item in search will automatically add double quotes " for paths that contain spaces.

No longer broken

  • / will no longer show up twice in the forbidden characters list.
  • Fixed Ctrl+Click on MacOS not working as right click in graph view.
  • Fixed middle click not working on graph view to open in new pane.
  • Changing ignored folders or changing file type filters should no longer cause sync to delete some files accidentally.

Shiny new things

  • Obsidian Publish now has an option to block search engines from indexing your site.

No longer broken

  • Fixed couldn't drag and drop text around the editor.
  • Drag and drop files from the system explorer has been restored to copy the file into the vault by default. Holding Ctrl will create a link instead.

No longer broken

  • Fenced code blocks are now properly styled.
  • The obsidian:// URL handler won't be registered again if it's already registered with the operating system, which causes a permission prompt on Linux snap.
  • Fixed custom CSS not hot-reloading when the file has been changed.
  • Clicking on links to create a folder structure should now display those folders properly in the file explorer.
  • On MacOS, to drag and drop files on panes, you now have to hold Shift instead of Alt due to MacOS overriding the Alt-drop behavior.
  • On MacOS, to drag and drop files from the system explorer and copy the file into the vault, you now have to hold Ctrl instead of Cmd due to a similar issue.
  • Fixed vaults not working inside an emulated file system, such as a Cryptomator drive.

Shiny new things

  • Obsidian will now recognize symlinks or folder junctions inside the vault. They are supported, but not recommended because of the many issues they can cause. Learn more.
  • You can now change the sorting order when browsing community plugins by alphabetical, initial release, or download count.
  • When you drag and drop files from your native file explorer into Obsidian, it will now default to creating file:/// absolute links. Holding the Ctrl/Cmd key will copy the files into your vault like it did previously.
  • There is now a command to toggle comments. By default it's Ctrl/Cmd + /.

Improvements

  • Clicking on links to notes that haven't been created will now create the folder structure if the parent folders don't yet exist.
  • Global search will now find attachments as well if you use file: or path: operators.
  • You can now use <iframe> to embed even more sites that previously wouldn't show. This is done by patching the Content-Security-Policy header containing frame-ancestors that some websites use to prevent embedding.
  • When looking through the version history of Obsidian Sync, you can now select and copy the file contents for each specific version.
  • Hovering Markdown links in edit mode will now highlight them.
  • Korean handling has been improved to perform character match instead of word match for unlinked mentions and quoted searches.

No longer broken

  • Image embeds will no longer go to the next line.
  • Fixed lag when typing at the end of a large document.
  • Graph color groups no longer reset to black for some colors.
  • Moving a file will no longer show a "successfully renamed" message.
  • The toggle highlights command/hotkey will now toggle properly for multi-line selections.

Shiny new things

  • You can divide nodes in graph view into groups based on queries, and customize the color of each group. Color all the nodes!
  • Folding is now persisted for edit mode and preview mode.
  • You can now create a new note with an optional content using the Obsidian URI. More details.
  • There is now an official Hook integration using the Obsidian URI.
  • You are now allowed to use more special characters on MacOS and Linux, such as ? and *. Keep in mind that if you synchronize your files with a Windows machine, those will not work.
  • When right clicking a link, there is now an option to rename the target file.
  • You can now hover search results, backlinks, and unlinked mentions to preview the match using the page preview plugin.
  • There's now an option to automatically open your daily note whenever you open your vault.

Improvements

  • Folding is now persisted for folders in file explorer.
  • Folding is now persisted for graph control sections.
  • Folding is now persisted for nested tags.
  • You can now use file:/// absolute paths to embed images and iframes from your local machine.
  • You can now hold Alt to drop a file anywhere on a pane to open it there, rather than having to drop it in the header.
  • Graph filters will now automatically apply after you finish typing.
  • Block references to list items now scrolls and highlights the exact list item, instead of the whole list.
  • Clicking on link to notes that don't yet exist will now open the newly created note in edit mode.

No longer broken

  • Playing a video in a hover preview no longer causes the video to continue playing after the preview is closed.
  • Preview panes will now attempt to keep your scroll location when you resize or split the pane.
  • Clicking on a search result now scrolls all linked panes to the result location.
  • Word count now properly counts Tamil letters.

Developers

  • There is now an API available to handle URI actions using the obsidian:// protocol. Look for the function Plugin.registerObsidianProtocolHandler(action, handler).
  • You can now use App.fileManager to rename files and update links.
  • You can now use Workspace.onLayoutReady(callback) to have a callback run if and when the app's layout is ready. This replaces the previous pattern
    if (workspace.layoutReady) {
      callback();
    } else {
      workspace.on('layout-ready', callback);
    }
    

Improvements

  • Graph view can now zoom out more.
  • Sync will no longer accidentally sync a new vault if the .obsidian folder was copied.

No longer broken

  • Fixed opening a note in the current pane does not focus on the editor.
  • Pressing Tab after typing in the file name bar should also focus on the editor.
  • Revert mermaid patch which caused links to stop working.
  • Fixed buttons in global search pane disappearing when pane is small.
  • Fixed Markdown links sometimes not properly converting for space character.

Shiny new things

  • There is now a new syntax for comments. Comments will not show up in preview.
    • Example: %% comments go here %%
    • Can be multi-line if the starting %% is at the beginning of the line.
    • Inside comments, you can still use inline Markdown formats.
    • Links will be recognized for backlinks and graph relationships.
    • Tags will be counted and can be searched.

Improvements

  • You can now right click nodes in graph view for a variety of options.
  • Tables in edit mode will now use a monospaced font by default, to help with alignment.
  • Disabling a plugin will no longer disassociate any hotkeys you have set, and they will work again when the plugin is re-enabled.
  • Auto-generated Markdown links will now only URL-encode special characters not recognized by Markdown (such as the space character), as opposed to fully URL-encode any non-ASCII character.
  • Obsidian now stores its cache/index in IndexedDB instead of as a JSON file, which caused typing lag previously for huge vaults.
  • A broken embed link will now show a box indicating the destination file cannot be found, instead of just disappearing entirely.
  • In custom CSS, you can now use data: and https:// based web fonts.

No longer broken

  • Updating a plugin should now properly execute the newly updated plugin, instead of still running the old version.
  • Having multiple editor panes open of the same file will no longer cause characters to be overwritten when typing.
  • The templates plugin should no longer suggest non Markdown files from the template folder.
  • Moving panes around should no longer cause preview mode to go blank.
  • Fixed i18n string in Obsidian Publish's custom domain settings.
  • File explorer set to sort by modified time will now properly re-sort when files are modified.
  • The hotkeys to creating new note will now work even if the file explorer is turned off.

Developers

  • Inline sourcemaps are no longer 2 lines off from your original source when looking at it from the debugger.
  • A new abstract view TextFileView is now available for use. This class is an EditableFileView that additionally takes care of saving/loading the file contents. If you wish to extend this view, you can simply hook up the functions that interfaces with your editor and the rest should be taken care of.
  • There is now a debounce function exposed for convenience.
  • Due to popular demand, there is now a new Plugin.registerMarkdownCodeBlockProcessor helper that makes it easier to register a handler for a custom fenced code block, similar to mermaid and query embeds.

No longer broken

  • Fixed unable to install or update plugins due to a change in GitHub's hosting infrastructure.

Shiny new things

  • You can now choose to show all files, even if Obsidian doesn't recognize the file extension. This will allow you to link to those files, see them in the File Explorer, and open them from the Quick Switcher.
  • You can now use <iframe> to embed sites that previously wouldn't show. This is done by ignoring the X-Frame-Options that some websites use to prevent embedding.

Improvements

  • You can now upload favicon.ico for Obsidian Publish.

No longer broken

  • Image embeds using the wikilink syntax ![[image.png]] are now displayed inline instead of taking up a whole line by itself.
  • In the custom domain setting for Obsidian Publish, you should now properly see what custom URL you've previously set.
  • Sync will no longer delete ignored folders or media files uploaded by other machines.

Developers

  • The API Plugin.registerExtensions() will now allow the app to recognize the file extension without requiring the user to turn on the "Detect all file extensions" option. In combination with Plugin.registerView(), you can now create custom viewers or editors for any file type that we don't currently support.

Shiny new things

  • Obsidian Publish now supports custom domains, subdomains or a sub-folder of your website. For details, see the help docs.
  • There is now a button to copy heading links on Obsidian Publish.
  • Global search now displays helpful tips on the various filters we support.
  • Global search now has a way to clear the search history.

Improvements

  • PDF export settings are now persisted.
  • There is now a button to update all plugins. In addition, installed plugins are now sorted alphabetically.
  • Non-existing files are now properly displayed when there is a search filter for path applied, instead of completely removed.
  • Mermaid has been upgraded to v8.8.4.
  • Clicking on the backlink status bar item now opens the backlink pane.
  • Opening the help vault will now open a translated version based on your selected language. Currently only supports Italian, Japanese, and Chinese. Help us translate the help vault to your favorite language.

No longer broken

  • The random note plugin no longer adds two ribbon icons.
  • Hover preview now loads embedded search properly.
  • Fixed uppercase block IDs not linking/embedding properly.
  • Backlink panes now updates file titles correctly when a file is renamed.
  • Opening a dialog no longer lets you accidentally focus or make modifications to the document behind the dialog.
  • Pasting as HTML no longer copies over the text from <style> tags.

Shiny new things

  • Obsidian Publish can now restrict site access with one or multiple passwords.
  • You can now choose to store attachments in the same folder as the current note, or in a subfolder relative to the current note.
  • Huge PDF improvements:
    • PDF files will now render when embedded inside a note.
    • PDF files are now rendered using a native PDF viewer, which can scroll, zoom, select and copy text.
    • You can now link to a page of a PDF file by adding #page=number at the end. For example [[My file.pdf#page=3]]. This also works for embedded PDFs. Typing # while auto-completing a PDF file will automatically add #page= for you.

Improvements

  • Folders now shows the number of files and subfolders when you hover over them.
  • The hover tooltips for the file explorer has been reprimanded for being too eager to show up on time. They will now only display once you stop your mouse over it.
  • An unlinked pinned outline pane will now attempt to open the file if it's not already open.
  • Audio recorder will now generate file names with timestamps similar to pasted images.
  • Word count has been improved to handle numbers better.

No longer broken

  • Changing active panes with hotkeys will now properly focus on them.
  • Tooltips no longer leave behind a lingering line sometimes.
  • Tooltips now appear on the correct side for backlinks and file explorer.
  • The editor text should now always stay clear using subpixel-antialiasing, instead of jumping to blurry grayscale from time to time.

Developers

  • The file-open event is now fired in a debounced frame instead of synchronously running while the activeLeaf is being set.
  • The layout-ready event will now only fire once when the app finish loading the workspace, instead of also triggering when loading a different workspace.

Shiny new things

  • Tags can now be clicked on Obsidian Publish to show a list of other pages containing the same tag.
  • You can now Ctrl/Cmd click tags in the tag pane to toggle them as a search filter, instead of replacing the search query.

Improvements

  • You can now unlink and pin backlink, outline, or local graph panes to have them stay on the file that was open, instead of navigating along with the current active pane.
  • Daily notes will now only check for the daily note inside the selected folder.
  • tag:#mytag will now always use case-insensitive mode, since tags are always insensitively matched. For case sensitive match, use a plain #mytag query instead.

No longer broken

  • Tags with underscore _ will now auto-complete properly.

Improvements

  • Tags are now case insensitive in graph view.

No longer broken

  • The backlink pane should now scroll properly if it's not in the sidebar.
  • The ugly flair for attachment file types is now properly styled in the file explorer.
  • Internal links can now be selected again in preview.
  • Folding headings in preview no longer causes the subsequent area to stay blank until the page is scrolled.
  • Dragging and dropping text with a : character no longer creates a Markdown link.

Improvements

  • Opening Obsidian with an obsidian:// URI no longer opens all previously opened vaults.

No longer broken

  • Graph view controls should now be styled properly.
  • Unexpected OS keys should no longer break the hotkeys panel.
  • Tooltips will now properly stay on a single line if there's enough space.
  • Tag pane should no longer blank out after collapsing or expanding parent tags.

Developers

  • In the editor, #parent/child nested tags will only have cm-hashtag-end on the last piece of <span> when spellchecker breaks the tag into multiple pieces.
  • MarkdownRenderChild has been properly exported.
  • Elements in the file explorer now has their file path encoded in a data-path attribute to facilitate custom CSS targeting.

Improvements

  • Hotkeys has been once again reworked to use a "semi" layout independent mode. This should properly recognize remapped layouts like AZERTY and Dvorak, but still provide layout-independence from number and symbol keys.
  • Remapped escape key (typically on caps lock) should now work again.
  • If you've set any hotkeys in v0.10.2 or v0.10.3, you might need to reset them if they stopped working.

No longer broken

  • Fixed tag pane sometimes not showing some nested tags depending on the sorting algorithm used.

Shiny new things

  • Nested Tags: you can now nest tags with unlimited hierarchies using the syntax #parent/child/subchild.
    • Searching for tag:#parent will now match #parent/child.
    • Tag pane now has an option to display nested tags in hierarchy or flat mode.
  • Search now has 3 more operators:
    • line:(...) will perform the subquery on a line-by-line basis, rather than a file-by-file basis. For example, line:(foo bar) will only match foo and bar if they're on the same line.
    • block:(...) will perform the subquery on a block-by-block basis. This is expensive computationally as it requires parsing each file, which means this is likely slower than other modes.
    • section:(...) will perform the subquery on a section-by-section basis. A section starts from a heading and ends before the next heading.
  • Hotkeys have been completely revamped to always use keyboard layout independent mode.
    • This has caused confusion in the last version, so we've simplified the process.
    • If you've customized hotkeys in the past, they will still work.
    • All new hotkeys will be layout independent.
  • You can now drag and drop links to pane headers to open the link in a specific pane.
  • You can now see created and modified time of files by hovering them in the file explorer.

Improvements

  • Cmd+Shift+V can now paste as plaintext on macOS, in addition to the previous Cmd+Shift+Option+V (seriously, who came up with this default hotkey?).
  • You can now disable HTML to Markdown conversion on paste in Settings > Editor.
  • Hotkeys that are assigned multiple times are now displayed in red.
  • Closing panes will re-focus on the most recent active pane instead of the first pane from the left.
  • Clicking on a link will automatically focus on the new pane if the current pane is pinned.
  • The translucency plugin has been moved to the appearance setting tab.

No longer broken

  • Links with %20 now decode properly when navigating using the editor.
  • Focusing on panes now properly sets the state for arrow keys and page up/down keys to scroll the preview.
  • Dragging text within the same editor pane no longer duplicates it.
  • Fixed spacing between paragraphs in blockquotes.

Developers

  • Setting and BaseComponent now have a setDisabled function that will disable its control. Disabling a setting will disable all of its components.
  • Scope.registerKey is now deprecated. It is replaced by Scope.register.