- Drag and drop: added support for toggling a tag for a note by dropping the note’s tab into the tag
- Ensuring anchor elements inside divs are styled properly
- Zen mode: avoiding hiding the custom menubar when zen mode is active
- Reduced inline code block padding, ensuring they don’t overlap if spread across multiple lines
- Preview: rendering note-level errors similarly to plugin-level errors
- Preview: ensuring fixed details components can’t be toggled
- Markdown: ensuring empty attributes are handled correctly
- Ensuring split editors in centered mode apply the shadow properly
- Help: rendering pages inside a navigable wrapper
- New commands: help.open, help.close, help.toggle, help.page.first, help.page.last, help.page.previous, help.page.next
- New shortcuts: Ctrl+Home/Ctrl+End -> help.page.first/help.page.last
- New shortcuts: Ctrl+Shift+Tab/Ctrl+Tab -> help.page.previous/help.page.next
- Macro command: added support for passing a single argument as a primitive value
- Help: added a button for selecting another help page
- New palette: changelog
- Changelog: added a button for selecting another changelog
- New command: editor.insert.table
- File palette: added "." as a prefix for it
- Changelog/Help: ensuring disabled navigation buttons are disabled
- New setting: editor.whitespace.render
- New setting: editor.cursor.animated
- Heading links: ensuring they work for content rendered in modals too
- Spell checker: added a "Display Language" context menu item to the statusbar item
- New command: editor.setting.whitespace.toggle
- Mermaid: opening diagrams in browser from a local file, without sending the diagram anywhere
- Changelog/Help: rendering tables at full width
- Doing language detection with a small-ish neural network
- DOM Node: ensuring no text children are emitted for table tags that shouldn’t have them
- Upgraded electron from v9 to v11
- Major memory usage optimizations
- Words: updating the statusbar item much more efficiently
- Ensuring "Notable Technologies LTD" is mentioned as the author/owner
- Highlighter: resetting cache when themes change
- Tagbox: ensuring long tags are handled properly in the multi-note editor
- Multi-note editor: ensuring it’s scrollable if needed
- Tree: ensuring the gutter is rendered properly for all items
- Sidebar tag: preselecting the last segment during inline renames
- Popover tag: preselecting the last segment during inline renames
- Popover attachment: preselecting the file name during inline renames
- New setting: sharing.endpoint
- Ensuring suffixed paths are generated reliably for file names of any length
- Note tab: added a "(Deleted)" suffix to tabs in the trash
- Highlighter: ensuring code is escaped for unsupported languages
- Renamed export mode: single -> file
- Renamed export mode: separate -> cwd
- New export mode: files
- Window: reloading automatically if it crashes
- Ensuring footnotes nested in "" tags are scoped properly
- Resizable layout: ensuring states are serialized properly
- New commands: quickLook.open, quickLook.close (macOS)
- Attachment: added support for opening a quick look window on Cmd+Click (macOS)
- Export: removed a no-longer-necessary workaround for broken PDF exports under Catalina
- Sidebar: showing the "All Templates" section when there are some templates
- Autocomplete: added support for opening with a specific query
- Autocomplete: keep on autocompleting if the picked value is an autocomplete prefix
- Window: ensuring it’s hidden immediately right before closing it or quitting the app
- Formatting: ensuring wrapper characters can be toggled for empty selections too
- New commands: editor.formatting.code.add, editor.formatting.code.remove, editor.formatting.code.toggle (they can handle inline code only for now)
- New formatting context menu item: Toggle Code
- New command: editor.cursor.selection.ends
- Export: avoiding overriding the sort order provided implicitly programmatically
- New command: notes.copy
- New multi-note editor context menu item: Copy
- useEditor: ensuring the passed id is used on initialization too
- Updated setting: editor.scrollBeyondLastLine.enabled, it now applies to previews too
- Renamed setting: editor.scrollBeyondLastLine.enabled -> editor.scroll.beyondLastLine.enabled
- Language: mentiong "N/A" as the region of the special unsupported "un-UN" language
- Preview: ensuring its error boundary emits "preview:render" events too
- Monaco: emitting "monaco:unmount" and "monaco:mount" events
- New context key: isScrollSyncEnabled
- New commands: editor.setting.scroll.sync.enable, editor.setting.scroll.sync.disable, editor.setting.scroll.sync.toggle
- New setting: editor.scroll.sync.enabled
- New statusbar item: ScrollSync
- New context menu: ScrollSync
- Split editor: using scroll synchronization
- New context key: isGraphOpen
- New commands: graph.open, graph.close, graph.toggle
- Renamed icon: graph -> gaph_off
- New statusbar item: Graph
- Note: detecting links to attachments outside of the special "attachments" directory too
- New graph items: attachment, command, file, note, search, shorcut, tag
- New theme colors:
graph:background
,graph:node:attachment:background
,graph:node:command:background
,graph:node:file:background
,graph:node:note:background
,graph:node:search:background
,graph:node:shortcut:background
,graph:node:tag:background
,graph:edge:attachment:background
,graph:edge:command:background
,graph:edge:file:background
,graph:edge:note:background
,graph:edge:search:background
,graph:edge:shortcut:background
,graph:edge:tag:background
- New popover: graph filters editor
- New commands: graph.filters.editor.open, graph.filters.editor.close, graph.filters.editor.toggle
- New command: graph.filters.item.toggle
- New command: graph.filters.link.toggle
- New commands: graph.filters.search.clear, graph.filters.search.query
- Attachment: keeping track of the size of each attachment, when that can be done for free
- Graph: rendering attachments nodes proportionally to their size on disk
- Graph: ensuring self-referencing links are rendered properly
- Graph: opening a context menu when right-clicking nodes
- New commands: graph.zoom.in, graph.zoom.out, graph.zoom.set, graph.zoom.reset
- New command: graph.zoom.fit
- Graph: ensuring hidden nodes and links have no force
- Graph HUD: added zoom controls
- Graph HUD: added rotation controls (currently disabled)
- Graph: added a basic 3D renderer
- New commands: graph.3d.enable, graph.3d.disable, graph.3d.toggle
- Graph HUD: added a 3D toggle
- New theme colors: graph:tooltip:background, graph:tooltip:border, graph:tooltip:foreground
- Graph links: growin heads when zooming in a lot, and not rendering heads when zooming out a lot
- New theme color: graph:foreground
- Graph: keeping track of active nodes and links
- New theme colors:
graph:tooltip:backgroundActive
,graph:tooltip:borderActive
,graph:tooltip:foregroundActive
- Graph: considering nodes with only self-referencing links as orphans
- Graph: zooming to fit on background double-click
- Graph: opening attachments on click, opening attachments in quick look on Cmd+Click (macOS)
- Graph: executing commands on click
- Graph: opening files on click, opening files in quick look on Cmd+Click (macOS)
- File: opening it in quick look on Cmd+Click throughout the app (macOS)
- Graph: executing shortcuts on click
- Graph: setting a search query when clicking on it
- Graph: opening notes on click
- Graph: opening notes in a new tab on double-click
- Graph: highlighting links on hover
- Graph: go to link positions when clicking on note links
- Graph: go to link positions in a new tab when double-clicking on note links
- Pointer: screencasting which button was used too (caciocavallo-style)
- Pointer: screencasting active modifiers too, if any
- New shortcuts: CmdOrCtrl+= -> graph.zoom.in, CmdOrCtrl+- -> graph.zoom.out, CmdOrCtrl+0 -> graph.zoom.reset
- Ensuring unknown attachments can be removed from notes
- New command: editor.formatting.custom.add
- Markdown: automatically surrounding selections with angle brackets when pressing "<"
- Markdown: accounting for symmetric (legacy?) HTML comments (
<!— foo —!>
) - Markdown: accounting for slightly malformed HTML comments
- Markdown: handling HTML comments more reliably
- New command: tag.new.child
- Tag context menu: added a "New Child" menu item
- New command: note.go.offset
- Note: added some convenience methods for extracting resolved and broken links
- New report: broken links
- New setting: markdown.links.detection.enabled
- New setting: markdown.links.detection.fuzzy
- Updated setting: markdown.links.detection.fuzzy -> false by default
- Mentioning "Editor" in the title of the settings and shortcuts editors
- Titlebar: ensuring it is rendered properly under Windows
- Updated setting: editor.scroll.beyondLastLine.enabled -> true by default
- Commands screencaster: logging commands to the console rather than showing a notification, if the devtools window is open
- Editor: avoiding disposing of models as the undo stack and folding ranges state can’t be serialized yet
- Quick modals: lazy-loading them from a separate chunk
- Markdown compiler: slightly faster and slightly more memory efficient in some scenarios
- Ensuring changing a note’s metadata causes the file on disk to get updated
- Paste as link: ensuring links are url-encoded if needed
- Formatting: ensuring heading level changes are allowed on empty lines too
- Search engine: implemented a parser for the new query language
- Electron: ensuring that if the state configuration object is too large it’s dropped, rather than risking having the page not load
- Rewritten mainbar placeholder: always visible, more useful, it aids discoverability better
- Mainbar placeholder: displaying a progress bar while loading a data directory
- Removed command: link.repository
- Help menu: moved some items into submenus
- Editor context menu: ignoring words containing numbers or underscores for spell checking
- Markdown syntax highlighter: ensuring ASCII arrows don’t throw off the HTML matcher
- Spell checker: ensuring single-character words are ignored
- Generating ARM builds for Apple Silicon