.obsidian folder was copied.Tab after typing in the file name bar should also focus on the editor.%% comments go here %%%% is at the beginning of the line.data: and https:// based web fonts.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.debounce function exposed for convenience.Plugin.registerMarkdownCodeBlockProcessor helper that makes it easier to register a handler for a custom fenced code block, similar to mermaid and query embeds.<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.favicon.ico for Obsidian Publish.![[image.png]] are now displayed inline instead of taking up a whole line by itself.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.<style> tags.#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.file-open event is now fired in a debounced frame instead of synchronously running while the activeLeaf is being set.layout-ready event will now only fire once when the app finish loading the workspace, instead of also triggering when loading a different workspace.Ctrl/Cmd click tags in the tag pane to toggle them as a search filter, instead of replacing the search query.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._ will now auto-complete properly.: character no longer creates a Markdown link.obsidian:// URI no longer opens all previously opened vaults.#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.data-path attribute to facilitate custom CSS targeting.#parent/child/subchild.
tag:#parent will now match #parent/child.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.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?).%20 now decode properly when navigating using the editor.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.query as the language, similar to how mermaid works. Note that this syntax does not work in Obsidian Publish.Ctrl/Cmd+Click and Alt+Enter for links in the editor.Shift while dropping text will drop it in plaintext mode, similar to Ctrl/Cmd+Shift+V to paste in plaintext mode.** signs.WorkspaceItem.getRoot() which returns one of Workspace.leftSplit, Workspace.rightSplit, or Workspace.rootSplit. This can be used to distinguish whether a WorkspaceLeaf is in the center area or the sidebars.Workspace.on('quit', callback: (tasks: Tasks) => any). This takes a callback with a Tasks object. You can perform any cleanup tasks in here. For any async/promise-based cleanups, such as saving files, add your task to the execution queue using Tasks.add(async () => { ... }) or Tasks.addPromise(promise) so that the app waits until your task is finished before quitting.MarkdownPostProcessorContext.addChild for more details.[Display text](https://url) instead of previously just the URL.Cmd+Option+F to avoid clashing with the native hotkey for hide window.Alt+Click, or multiple consecutive files using Shift+Click.obsidian:// link the same way it's generated as "Copy obsidian url".Tab will now insert spaces if Use tab to indent is turned off.Plugin.registerCodeMirror(callback) has been introduced to help plugins hook to CodeMirror instances that are already loaded, and also created in the future. This function is just a helper for Workspace.iterateCodeMirrors(callback) then Workspace.on('codemirror', callback)Workspace.iterateCodeMirrors(callback) has been introduced to help plugins cleanup their CodeMirror events when the plugin unloads.App.on('codemirror', callback) has been moved to Workspace.on('codemirror', callback). The old method will be deprecated and will now proxy to the new one. There is no more event system on App.internal-link for the node. The app will use the contents of the node as the link. Example: class A internal-link;]] when another link exists on the same line.1.[[ auto-conversion from chinese characters 【【.prepareQuery, fuzzySearch, renderMatches, renderResults, sortSearchResults, are now available.Enter to finish rename a file not working properly when using an IME.SuggestModal and FuzzySuggestModal are now available for use.vault/.obsidian/themes folder. Be sure to disable the legacy option for obsidian.css when you do so!vault/.obsidian/snippets folder.cssclass. You can also specify multiple ones with the same syntax as tags and aliases, for example, cssclass: class1, class2. Combine this with custom CSS to selectively style notes.|..md extension.moment.js has been replaced with moment-with-locales.js.layout-change is has been added to Workspace.# character. You can now write tags: [tag1, tag2, tag3].