2024-10-29
I'm so excited to announce that Inkdrop has got a new theming system!
I've been working on refactoring the app's theming system to make it easier to customize and maintain for future versions. The UI components were originally from Semantic UI, and Inkdrop has relied on its well-designed theming system based on LESS, an alternative stylesheet language with some extended syntaxes like variables.
However, modern CSS now supports a lot of features that LESS has provided, such as CSS variables and CSS nesting. Moreover, CSS supports cascade layers, which allow you to control the specificity and order of rule sets across stylesheets. They would be very useful for theming in Inkdrop.
The main issue was that Semantic UI themes include everything from resets and layouts to buttons, dropdowns, and menus. This is because Semantic UI's theming architecture wasn't designed to be dynamically loaded or switched. This limitation has prevented me from adding new UI components and updating current designs. Also, it was hard to understand the LESS-based theming architecture for contributors, including Gulp tasks for building it.
The new theming system is much simpler. All you have to do is customize CSS variables. No pre-compilations needed. For example, here is a part of the new Solarized Dark UI theme:
:root {
--primary-color: hsl(var(--hsl-blue-500) / 90%);
--input-background: var(--color-bg);
--page-background: var(--color-bg);
--text-color: hsl(var(--hsl-fg));
--link-hover-color: var(--color-blue-300);
--sidebar-background: var(--color-bg);
--note-list-bar-background: hsl(var(--hsl-bg-muted-highlight));
--note-list-bar-border-right: 1px solid hsl(var(--hsl-base02));
}
Instead of using LESS variables to let you customize component styles, the app now refers to these CSS variables to apply customizations on top of the default styles with CSS cascading layers. This way, I can safely change the existing styles and add new components without making breaking changes to the existing themes. If I were to add new components, I could define new CSS variables with fallback values, something like:
.new-component {
background: var(--new-component-background, var(--strong-transparent-black));
}
If --new-component-background
isn't defined in your theme, it automatically falls back to --strong-transparent-block
. Neat.
Please check out the updated guide on how to create a theme here!
Since Electron started supporting the backgroundMaterial
option for Windows, the acrylic effect has returned now!
However, there is a critical bug preventing it from working properly on frameless windows. To resolve this, I had to add a system window title bar, but it actually doesn't look so bad.
The default light and dark themes support the acrylic translucent background out of the box, so Vibrant Dark UI will be deprecated soon.
Check out the documentation on how to make your theme support the acrylic background mode.
Users have been requesting more themes on the mobile app (1, 2, 3).
I've been exploring a way to port custom themes to the mobile version.
Previously, this was impossible since the mobile app is built with React Native, where CSS can't be simply applied to the UI components.
But as the new theming system relies on the CSS variables, you can now generate a JSON file from the theme.
You can simply run the generate-palette
command in the theme repository.
Check out the documentation for more details.
It still needs more work though, I can't wait to bring your themes into the mobile app!
I've rewritten the default UI themes for migrating to the new theming system. Here are what they look like now:
They also support the acrylic background! I love them.
I hope you like them!
- Bump up Electron to 31.6.0
- Bump up PouchDB to 9.0.0
- Hopefully it will solve this error
- Display the loading indicator when loading more plugins (Thanks Palmar)
While the app still has a backward-compatibility for the old UI themes, I would strongly encourage the theme creators to update their UI themes, or they will eventually be broken since I'm planning to add new features with new UI components. So, please check out the updated guide in the docs.
If you have any questions, feel free to post questions on the "Developers & API" category on the user forum here.
Do not forget to update the "engines.inkdrop" field in your package.json
to ^5.9.0
so that the update won't be installed on the older version and surprize the users. It should be something like this:
{
...
"engines": {
"inkdrop": "^5.9.0"
}
}
2024-09-25
Note
This is the same update on mobile v5.4.0
This update would solve this issue: Odd searching issue when searching for text
The app had been using the language-dependent tokenization processes called Porter stemming algorithm and a Japanese-specific segmentation algorithm. In some cases, they cause some odd searching issue, where you can't find notes with particular keywords.
I recently found that SQLite3 officially supports the trigram tokenizer.
I managed to migrate to it. Now, you can use any languages including Chinese, Japanese, Arabic, etc., in your notes!
Also, it fully supports partial matching, so it is optimal for searching code snippets.
For example, it can properly find a note with a code fragment like "er } = require("
.
As you can see in the above screenshot, it now can highlight matched keywords in the note list, which would help you more quickly find your desired note.
- fix(dialog):
updatedAt
should not be updated when the note gets moved - fix(theme): Cannot enable Vibrant dark theme on the light mode on the system (Thanks SDO and Marco)
- fix(redux): prevent performing some actions on the non-existing notebooks (Thanks Akiya-san
- Prevent opening another note when failing to save the current note
- Prevent creating a new note in the notebook that does not exist
- Display an error dialog when failing to create a new note
- fix(layouts): editor view icons overlap with Search / Replace buttons (Thanks Marco)
- fix(layout): missing window buttons on the error blank slate (Thanks gaeulbyul)
- fix(preview): odd spacing in the metadata pane (Thanks Lukas and Dmitry)
- fix(preferences-plugins): queries should be debounced
- fix(theme): Missing olive tag color (Thanks Lukas)
- fix(preferences-plugins): Blank screen from search on filter of Installed plugins (Thanks Bundit)
2024-04-23
- mde: custom font family not being applied (Thanks Shimizu-san)
- dev-tools: Copy tag id from sidebar throws an error (Thanks Lukas)
- Do not enable the 'Readable Line Length' option by default (Thanks Shimizu-san)
- Avoid triggering Auto link title when the cursor is in the middle of the link
- For example, when you type
[link title](|
(|
is the cursor position) and hit Cmd/Ctrl-V, it shouldn't trigger the paste-as-link dialog.
- For example, when you type
Cascade layers would make theming much simpler. They allow themes to avoid rule specificity issues. Inkdrop will bundle more default styles in the future versions, and with cascade layers, custom themes will only need to override the default styles rather than including every style.
UI, syntax, and preview themes are automatically enclosed with the corresponding cascade layers in v5.8.1. The order of precedence is defined as the following at the moment:
@layer reset, base, tokens, theme, theme.ui, theme.preview, theme.syntax;
reset
: Reset stylesbase
: The app base stylestokens
: CSS common variablestheme.ui
: UI themetheme.preview
: Preview themetheme.syntax
: Syntax theme
- Remove the reset CSS styles from UI theme stylesheets automatically when loading
- 🐛 Focus rings not working on some components
- Changed the cascading layer to
@layer theme.ui
- Changed the cascading layer to
2024-04-19
- Wrong icon in 'Apps and Features' list on Windows (Thanks Dmitry)
- Scroll positions get reset when changing the layout (Thanks Ivan)
- Random crashes when quitting Inkdrop on Windows (Thanks Patrick)
- The 'Create' button does nothing on the Paste URL as Link dialog (Thanks Patrick)
- Duplicate menu items in the Trash notebook (Thanks Dmitry)
In v5.8.1, the app would solve the following issue by embedding the default preview theme:
- GFM Alerts not working on community preview themes (Thanks Kentaro and taichi
The problem is that themes have to provide every style, which requires to update when the app gets a new feature with a stylesheet. Since we can't expect every theme developer to sustainably and quickly update their themes, it'd be nice to have the default styles instead of requiring the themes to include every style. So, from this version, themes basically 'override' the default theme.
https://github.com/inkdropapp/inkdrop-github-preview-theme
The default preview theme github-preview
now doesn't apply any styles.
If you create a new preview theme, you only have to add styles for customizations.
This way, the existing preview themes can continue working without updating, like GFM Alerts.
In the future, I'll make the same change to the UI themes.
The default preview theme was outdated, so it has been updated based on this reopsitory. This also fixes the task list identation issue (Thanks Dmitry).
While working on simplifying theming the Markdown preview styles mentioned above, I thought it'd be nice to support applying the current syntax theme to the codeblocks in the preview pane automatically. It allows you to avoid making another preview theme just for changing the codeblock syntax highlighting styles.
For example: Solarized Dark
Solarized Light:
The Markdown renderer now adds a class name .codeblock
to the enclosing div
elements of the codeblocks.
So, it is easy to add styles to them just by adding a CSS selector .mde-preview .codeblock pre
to your stylesheet like so:
diff --git a/styles/index.css b/styles/index.css
index 14ae539..3f6bcbb 100644
--- a/styles/index.css
+++ b/styles/index.css
@@ -26,7 +26,8 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
--base-magenta: #d33682;
/* Color scheme for code-mirror */
- .CodeMirror {
+ .CodeMirror,
+ .mde-preview .codeblock pre {
color-scheme: dark;
color: var(--base05);
.cm-header {
color: var(--base-yellow);
}
Check out Solarized Dark Syntax for more detail.
The setting items have been organized and it has got much easier to find and change settings.
And the Plugins page has got a filter input:
Some people don't like the feature (Thanks Ryota).
- Preferences -> Editing -> Markdown -> Paste URL as link
2024-03-29
- fix(editor): unpin when changing the note status to 'Completed' or 'Dropped'
- feat(tutorial): add video tutorial links
- fix(preview): change the metadata section style to make it clear as a UI rather than note content
- feat(notebook-list-bar): keyword matching includes parent notebook names
- fix(markdown): inline style tags not working
- fix(editor): toggline side-by-side mode does not sync scroll bar positions properly
- fix(preview): the broken link icon still remains when editing
- fix(search-bar): keyword won't be reset when changing the note list view
- fix(note-list-bar): selection gets messed up when holding up/down arrow key to select notes so fast
- fix(github-preview): incorrect colors of nested alerts
- fix(auto-link-title): do not insert when inside image link
- fix(markdown): line breaks not working in gfm-alerts (Thanks Lukas)
- fix(editor): layout gets corrupted when having custom panes like sidetoc
- fix(editor-meta): read-only state is not handled in meta-notebook
- fix(preview): remove margin-top for headings immediately under the metadata section
- fix(editor): avoid opening the same note via a command
- fix(preview): do not render the metadata section when print mode
- fix(preferences): incorrect label 'htmlFor' attribute (Thanks Tahsin)
- fix(editor): allow url to be pasted without an assist feature
- chore(themes): use vanilla CSS instead of LESS
2024-03-15
In v5.8.0-beta.1, the backlinks have been added to the editor drawer. But as picklecillo pointed out, you may want to make it persistent so that you can jump around the linked notes quickly.
First, I considered adding another dropdown for backlinks next to the notebook name under the note title. But I thought it wouldn't be useful if you want to check backlinks across multiple notes sequentially. I found myself rarely opening the editor drawer to check the note information. It should be solely used for additional actions like ‘Revision history’, ‘Share on web’, ‘Pin to top’, etc, that’s simple and easy to understand. Instead of adding various things to the editor drawer and making it complicated, it’d be nice to display the note metadata and backlinks in the preview.
So, I decided to render the note information in the preview as a part of the note, as you can see below:
This way, you can quickly check the metadata without toggling the editor drawer while it doesn’t distract your writing experience.
The backlink section can be folded. The app remembers the fold/unfold state across notes.
The scroll sync still works just fine:
This option limits the maximum width of the editor and preview panes to prevent excessively long lines of text. Enabled by default.
- fix(macOS): Full Screen Button Disable Problem (Thanks Tahsin)
- fix(note-list): Inconsistent tag filtering (Thanks Lukas)
- fix(editor): Auto link title: does not properly check whether only exactly one link is inserted (Thanks Lukas)
2024-03-08
I'm excited to announce v5.8.0-beta.1, which has got so many improvements and new features!
v5.8.0 works much more efficiently in connecting your notes.
If you connect your notes with internal links, you may want this feature. It now supports displaying which notes have links to the current editing note on the editor drawer.
With backlinks, you can quickly jump around related notes.
If you are used to writing Wiki, do you know Inkdrop supports creating placeholder links? It is simple. Just write a link without an URI!
- [Link title]()
Then, click it on the preview pane and it will create a new note with the title. As of v5.8.0, it automatically updates link titles in the note when you change the note title.
When debugging a bug, you sometimes find another issue to solve as your investigation goes deeper. You already took some notes on the new issue. Inkdrop doesn't block your concentration by allowing you to create a new note from the selection.
First, select the text and right-click it on the editor:
A dialog shows up, then input a note title:
Hit Enter, and you get a new note with the selected text.
As you can see, you already have a backlink from the source note. You can click it to go back.
The selected text is replaced with a link to the new note.
- New command:
core:new-note-from-selection
When writing a note while referring to other notes, it was frustrating to always get the cursor and scroll positions to be reset when going back to the note. In order to help you work with multiple notes efficiently, v5.8.0 now remembers the cursor and scroll positions in the navigation history.
In the above example, when clicking a backlink, the cursor position is already where the new link is created.
The tag labels on the note list allow you to click to filter by a tag, which is handy to quickly narrow down to a specific topic on the list. By design, it was using the full-text search feature internally, which always changed the sort order to 'Best match'. It looked strange as you just intended to filter the current notes, but not to search with keywords, so the list sort order should be preserved. As of v5.8.0, it now properly preserves the sort order when filtering by a tag.
For example, some notes are tagged with 'v5.8.0'. Currently, the note list displays all the notes in a workspace of the notebook 'Inkdrop', ordered by last modification dates in descending order. You want to filter notes by the tag by clicking it on the note list item.
Then, the note list displays only notes with the tag 'v5.8.0'. Before, it changed the order to 'Best Match'. As of v5.8.0, it preserves the sort order, which is the last modification date in the descending order in this example.
You can of course change the order from the dropdown menu on the note list header bar anytime.
When you are checking notes in the 'All Notes' on the sidebar, you may feel like quickly jumping into a workspace view of the viewing note. You could open a notebook but it now also lets you go to the workspace view from the context menu of the notebook dropdown menu on the editor:
But what about nested notebooks? Let's say, you see a note in the child notebook, but you want to go to the workspace of the parent notebook. No worries. After selecting the 'Go to Workspace' context menu, the focus moves to the sidebar. Then, you can hit Backspace to go up to the parent workspace.
It is helpful to quickly switch between projects.
- New commands:
editor:go-to-workspace-of-editing-note
core:sidebar-workspace-go-up
Recently, GitHub officially supports Alerts. It is a simple extension of Markdown, which allows you to insert 'alerts' a.k.a. admonitions or callouts. For example:
> [!IMPORTANT]
> This is currently a work in progress, expect things to be broken!
Inkdrop now supports these alerts, too!
You don't have to remember the syntax. The editor toolbar has got a button for alerts here.
- New commands:
core:insert-alert-note
core:insert-alert-tip
core:insert-alert-important
core:insert-alert-warning
core:insert-alert-caution
Links are crucial for tech note-taking since you often need to refer to external information from your notes.
I've been using John's paste-url plugin to paste URLs as a Markdown link. In this release, I'm happy that it is now officially supported!
For example, you are referring to a bug report on the GitHub repository and you'd like to mention it in your note. You can copy the URL from the browser and paste it in the editor, then a dialog shows up:
The app automatically fetches the page title of the given URL. You can choose a link format with up/down arrow keys. It can correctly extract the page title even if the website doesn't support server-side rendering, which is nice.
I wanted to improve a small but fundamental thing - focus indicators. Since some input components like buttons and the search bar didn't have proper focus outlines, you couldn't tell where the current focus is. This improvement makes you a bit more comfortable to press Tab to move focus around.
The tag colors were too vibrant when you were on the dark UI theme. As a big fan of using tags, I wanted to make them look more unified for it.
- chore(electron): Bump up to 28.1.3
- fix(ipm): rimraf is not loaded beforehand
- fix(sidebar): hovering sidebar item not highlighting when dragging a note item
- fix(dnd): offset of custom drag layer is incorrect
- fix(database): completed or dropped notes are not properly moved to trash when deleting a notebook
- fix(navigation): Support mouse button 3 and 4 for navigation on Windows and Linux
- fix(semantic-ui): Drop jQuery 😭👍
- fix(process-diff): update internal note links when a note gets renamed its title (Thanks Lukas)
- fix(note-list): Filtering tags with spaces in the tag name does not work (Thanks Lukas)
- fix(note-list): Note list not updated when editing so fast
2024-01-15
- feat(mde-preview): support creating a note from an empty link (Related topic)
- feat(deep-link): support opening plugin detail from URI
- Example: inkdrop://plugin/mermaid
- feat(command): add
core:copy-note-uri
, which copies a URI of the selected note - feat(preview): support internal note link expansion: Render rich internal links to enhance connecting notes
- feat(note-list): Experimental: support filtering by tag by just clikcing a tag list item on the note list item
- feat(search): clearing the search keywords should not open the last opened note (Thanks SDO)
- feat(sidebar): animate sidebar list items
- feat(sidebar): animate workspace transition
- feat(ui): animate main layout
- fix(editor-title): support moving focus to editor from title input with DOWN key (Thanks Phil)
- fix(redux-store): navigation: push state when opening a workspace (Thanks picklecillo)
- fix(clipboard): cleaning up html unexpectedly removes
\r
- fix(note-status): make conflicted notes when changing note status via keyboard shortcuts (Thanks Anon)
- fix(proxy): do not use proxy agent with axios. it causes the app to access with a wrong port (Thanks Shimizu-san)
- fix(theme-manager): (Internal) ignore the initial
add
event - fix(package-manager): should ignore the resolve file error (Thanks Brenton)
- fix(dropdown): click handler should hide when clicking the dropdown label again when visible (Thanks Jakub and Simon)
- fix(keymap): cmd-alt-m is used by system global shortcut on macOS
- Changed the keymap for
core:move-to-notebook
from cmd-alt-m to cmd-ctrl-m
- Changed the keymap for
- fix(redux): the editor should wait for saving the note before closing
- fix(macOS): app hungs when typing text while CapsLock is enabled on macOS (Thanks Alessandro and Jack)
2023-11-16
- fix(note-list): The popup menu for opening notebook not working (Thanks Shogo-san)
- fix(keymap): Canceling multi-stroke keymaps not working (Thanks Markus)
- fix(editor): "Move to notebook" not working properly, where it randomly moves a previously opened note (Thanks Shimizu-san)
- fix(editor): Do not transform HTML into Markdown when pasting if it has special markups (Thanks Jake and Lukas)
- chore(electron): Bump up to 25.9.5
2023-10-12
- fix(plugins): Bundled plugins are not working (Thanks Lukas)
- chore(assets): Remove Font Awesome as it is no longer used anywhere
2023-10-10
- fix(server): Local HTTP server not working (Thanks Raivis)
- fix(editor): floating action buttons not appearing right after the launch (Thanks Lukas)
- fix(ipm): The CLI command
ipm install
not working (Thanks Raivis)
2023-10-03
- fix(preview): number of task list items not updated correctly (Thanks Lukas)
- fix(html): do not load
browser-commons.js
(Thanks Lukas) - fix(share): The app crashes when sharing a note (Thanks Martin)
- fix(preferences): Add a note on the acrylic background effect on Windows
- fix(login): The login screen is broken
2023-09-22
In previous versions, pressing the "Detail" button on the notebook would take you to the workspace view, but you couldn't press the "Detail" button again once you were in that view. In this update, the "Detail" button is now functional within the workspace view as well!
The sidebar now displays the path of the current and parent notebooks:
- Can't change tag colors (Thanks Lukas)
- Defer updating the preview a bit longer when the preview is not visible (Thanks Seito)
- When exporting, use
Untitled
if the note title is empty - Different modules like
react
get loaded from an incorrect path, which causes the app to crash (Thanks Jaime) - The cursor jumps to a wrong position when toggling the side-by-side mode
- The app crashes when uninstalling a plugin from Preferences (Thanks Lukas)
- The note counts are not updated correctly in the workspace views (Thanks SDO)
open()
does not open the url in a browser but opens it in an internal browser window instead (Thanks Shimizu)- Sidebar display all notes after toggling off a distraction free (Thanks Bundit)
I've been preparing to support the command palette feature. A new API for it is available on CommandRegistry
. You can use it like so:
inkdrop.commands.findCommands({target: document.querySelector('.CodeMirror')})
2023-08-29
Managed to make it 500-700ms faster 🚀
Here is a demo:
✍️ STORY: How I made Inkdrop 500ms faster to launch🚀
Along with v5.6.0, some plugins have been updated with performance improvements as well. mermaid and math load their modules only when you open a note that uses one of them. It would keep the launch speed fast even if you installed plugins that require massive modules like them.
v5.6.0 has upgraded Remark and Rehype packages to the latest versions. It isn't only an internal improvement but also gives you more possibilities to get useful features. It now has mdast
and hast
data in the preview state, which allows to add syntax-aware features like outline views more easily without relying on regular expressions.
✍️ STORY: Refactoring the extensible Markdown renderer 🛠️
On the other hand, it may cause some plugins not working due to the breaking changes. For plugin developers, I'll post another topic to help you update your plugins.
Plugins are useful but it'd be a burden to explore and decide which plugins to install for light users. I wanted to make the app just work out of the box. As a starter, paste-as-markdown
is now bundled into the app by default. It allows you to paste HTML as Markdown from the clipboard. It'd be useful for copy-and-pasting formatted texts from browsers.
I'm planning to bundle Mermaid, GitHub Emoji, and Math plugins as well.
Expected some platform-dependent issues to be fixed with this release.
On Electron@25.1.1, the module that the app used to support the acrylic window style no longer works, unfortunately. The good news is that Electron itself officially supports the acrylic style for Windows:
The bad news is that it is not stable and working as expected – It doesn't work with frameless windows, besides, it becomes unresizable and loses shadows. So, unfortunately, the acrylic window style is not supported on Windows in this release. Maybe I should stop supporting such an unstable feature 😭
I've been working on redesigning the documentation and the new API documentation is now available as WIP.
https://developers.inkdrop.app/
The design is heavily inspired by Stripe, built on top of Tailwind UI. It supports full-text search now. There are still many missing pages and broken links though, your help to improve the doc would be greatly appreciated. It will be more comprehensive and easy to understand and I hope you like it :D
I'll be working on creating a new user manual as well!
- improvement(note-list): The sidebar now has the "Pinned Notes" section. In "All Notes", pinned notes are no longer displayed on top of the note list.
- https://forum.inkdrop.app/t/copy-paste-bullet-point-from-the-web-unexpected-behaviour/4043
- https://forum.inkdrop.app/t/memory-consumption-is-very-high/2583/15
- Images are converted into PNG when inserting from the toolbar button
- fix(export): Some image files do not have file extensions
- fix(security): Show a confirmation alert when clicking non-https links on the preview
2022-09-28
- Dev: Add a link to dev-tools plugin in Preferences
- Editor: Remove the file extension from the alt attribute when inserting an image from a file
- Before:
[filename.jpg](inkdrop://file:****)
- After:
[filename](inkdrop://file:****)
- Before:
- Theme: Switch the default light/dark themes automatically based on the system preferences (Thanks Mac and Ben)
- You can disable this behavior by setting
core.toggleDarkThemeAutomatically
tofalse
inconfig.cson
- You can disable this behavior by setting
- Export: Inline styles not working in exported notes as pdf or html
- Export: Canceled dialogs not being handled properly
- UI: The note list not updating if a conflict happens
- Editor: The editor should refresh after changing custom stylesheets
- Editor: The app crashes when inputting a title longer than 128 characters (Thanks Danielsec)
- Markdown Preview: Task checkboxes get wrong position when the item is empty
- Local server: The numeric parameters for
_changes
work incorrectly - Local server:
GET /tag:<id>
not working - App: Notes not being saved when immediately quitting after editing (Thanks Ryuki)
2021-12-20
- Upgrade Electron from 12 to 16.0.4
- Expected to resolve the GPU process error on Fefora 35 (Thanks Luis)
- Set focus to the editor title input when a sub window shows up (Thanks Otawara)
- Can't change sort order by commands (Thanks Ryuki)
- Window gets unintentionally resized when dragging if acrylic background enabled (Thanks elpnt)
- Move the 'full sync' menu to under the Help menu
2021-03-12
- Show editing note title in title bar
- Dock menu for opening new window (Thanks Yusuke)
- Local REST API endpoint (See 'Accessing via HTTP (Advanced)' section in the doc)
- Upgrade Electron from 7 to 12
- API: add
editor-floating-actions
layout that allows you to add custom floating action buttons on the editor (See the doc) (Thanks Ron) - Scroll sidebar to the selection automatically when opened a notebook (Thanks Shogo)
- Network diagnosis to help configure Inkdrop for running it behind corporate proxy from menu Help -> Run Network Diagnosis.
- Set window background to dark on dark mode to avoid flashy white backgrounds (Thanks Hugh)
- Prevent adding more than one tags with the same name (Thanks Avis)
- Change folder structure and file name of backup files that avoid using
:
character, which is prohibited in some cloud storage services (Thanks Ryan, Nicole, and Evan)
2020-12-08
- Support adding tags and status by drag-and-drop notes (Thanks Jan)
- Add "Remove Tag" context menu on note tag bar (Thanks Jan)
- Support
inkdrop://
URL scheme on Windows (Thanks Otawara-san)- Now the URL scheme works across macOS, Linux and Windows 🎉
- Support YAML frontmatter for Markdown export (Thanks Robert)
- Add some animations 🏃
- Allow smaller window size when distraction free mode (Thanks Shota-san)
- Move a window into the primary screen if it was outside of screens (Thanks Alexander)
- Fix word-break of shared page url on note sharing dialog
- Hide workspace if notebook does not exist when restoring navigation state (Thanks T_Crain)
- Fix placeholder bug in codemirror (Thanks Akira-san)
2020-11-23
title:
andbody:
search qualifier to filter notes by title or body (Thanks Zhuolun)- Support changing order of search results (Thanks Micah_Ledbetter)
- Support importing images when importing from Markdown or HTML files
- Some Pug codeblocks cause the app to be crashed (Thanks Kato-san)
2020-08-19
- Restart sync when system unlocked
- Restart sync when system resumed
- Avoid loading 'null' mode in the editor
- Fix the issue where "Cannot read property 'toString' of undefined" occasionally happens on the note list (Thanks Gustavo and Rael)
2020-07-02
- Show more human-friendly error messages
- Include 'Completed' & 'Dropped' statuses when filtering with keywords
- Remove 'Search' sidebar menu
- Better conversion from HTML to Markdown
- (Revert) The editor not utilizing the full width of the text window (Thanks Vikas, Jasper, Gustavo, and Samantha)
- Fallback to the default theme if not installed (Thanks Mark)
- Exporting all notes as Markdown not working when exporting sub-notebooks (Thanks Tiemen)
- Create new notebook modal already has value from previously create notebook (Thanks Martynas)
2020-07-02
- Selecting text is not working
2020-07-02
- Add MIME type
x-scheme-handler/inkdrop
for Linux so that you can open it withinkdrop://
URI scheme (Thanks Andi) - Toggle task list (
[ ]
or[x]
) by mouse click in editor
- The app launch speed significantly improved
- Refurbish the editor toolbar
- Refurbish icons
- Add a separator for grouping pinned notes (Thanks tdudz)
- Improve search result by having bigger weight for title field (Thanks Zhuolun and James)
- Set max-width for editor
- Bump up Electron to v8.3.4
- Show progress of updating local indices
- Show error dialog when failed to load the config files (Thanks can_Y)
- add
https://
if the URL is invalid format (Thanks Rael) - fix incorrect English (Thanks Rael)
2020-04-15
- Support
editor:open-link
command which allows you to open a link on browser from the editor. The default keystroke is shift-ctrl-o - Support Workspace feature
- Includes sub-notes when notebook item is collapsed
Expanded:
Collapsed:
The collapsing state also refrects listing notes so you can find sub-notes quickly - Remember note list state in navigatin history
- Restore note list and editing state when exiting searching
While searching:
After exiting from searching by hitting Esc key or clearing keyword, you get back to the previous state of the note list and the editor:
It is useful to write a note while referring to other notes. - Filtering notebooks by keyword
- Show accelerators in context menu
- Default keyboard shortcut for pinning notes
- P on note list
- Show pinned notes to top on "All notes" and remove "Pins" menu
- Make
strong
&em
text clearer in syntax themes - Improve blockquote styling in syntax and preview themes
- Change the keystroke for
core:insert-link
to cmd-k or ctrl-k - Add Emacsy keybindings for Linux and Windows, which was only supported on macOS:
'.CodeMirror textarea': { 'ctrl-f': 'editor:go-char-right', 'ctrl-b': 'editor:go-char-left', 'ctrl-p': 'editor:go-line-up', 'ctrl-n': 'editor:go-line-down', 'alt-f': 'editor:go-word-right', 'alt-b': 'editor:go-word-left', 'ctrl-a': 'editor:go-line-start', 'ctrl-e': 'editor:go-line-end', 'ctrl-v': 'editor:go-page-down', 'shift-ctrl-v': 'editor:go-page-up', 'shift-ctrl-f': 'editor:go-char-right', 'shift-ctrl-b': 'editor:go-char-left', 'shift-ctrl-p': 'editor:go-line-up', 'shift-ctrl-n': 'editor:go-line-down', 'shift-alt-f': 'editor:go-word-right', 'shift-alt-b': 'editor:go-word-left', 'shift-ctrl-a': 'editor:go-line-start', 'shift-ctrl-e': 'editor:go-line-end', 'ctrl-d': 'editor:delete-char-after', 'ctrl-h': 'editor:delete-char-before', 'alt-d': 'editor:delete-word-after', 'ctrl-k': 'editor:kill-line', 'ctrl-t': 'editor:transpose-chars', 'ctrl-o': 'editor:open-line' }
- Select next note when deleting notes (Thanks Mike)
- Restore focus when closing a dialog
- Smaler font size for note title
- Better performance in rendering note list items
- Plugin readme is not showing as expected
- Incorrect parent book Id is used when creating new notebook (Thanks Gustavo)
- Prevent closing window on pressing ctrl-w on note title input bar on Windows and Linux
- Do not blur on pressing backspace with all text selected in tag input
2020-03-25
- Pin notes to top
- Todo
- Drag & drop to pin notes
- Default keyboard shortcut
- Show sub-notebooks in notebook submenu
- Remember sort & order of note list per view (all/notebook/tag/status/pins)
- Toggling statuses and tags in sidebar
- Upgrade Electron from 7.1.3 to 8.2.0
- It would be expected some performance improvement by the new IPC serialization with Structured Clone Algorithm
- Node 12.13.0
2019-10-09
- Improvement: Bump up Electron from 6.0.7 to 6.0.11
- Improvement: Bump up
ipm
from 2.1.6 to 2.4.3 - Bugfix: Opening next/prev note not working (Thanks Otawara-san)
- Bugfix: Revert changes regarding checkpointers of data sync which might have been causing that some notes won't be synced in some cases
- Bugfix: The scroll position is lost when toggling distraction free mode (Thanks Bastian)
2019-10-07
- New feature: Importing markdown files (Thanks q1701)
- Improvement: Bump up Electron from 3.1.4 to 6.0.7
- Improvement: Better UI performance
- Bugfix: Plugin configurations on prefrence window not working
- Bugfix: Pages from the second page are blank when exporting as PDF
- Bugfix: Some memory leaks in sync
2019-08-05
- Improvement: Unnecessary spaces inserted when generating table rows (Thanks Otawara-san)
- Improvement: Prevent restoring window size from exceeding the screen bounds (Thanks chocolat)
- Improvement: Re-render when toggled preview (Thanks James)
- Improvement: Change label for moving note to notebook (Thanks James)
- Bugfix: Error notification not showing when failed to load keymap.cson
- Bugfix: Show rendering error when failed to render Markdown and prevent the app crashing (Thanks ofton-san)
2019-07-26
- New feature: Support changing created datetime and updated datetime of notes
- New feature: Add 'Notes' menu item to notebook filter side menu
- Improvement: Support warning about deprecated packages (Thanks Samantha and Erdem)
- You need to update spell-checker plugin for v4.3.0, which now supports multiple languages
- Improvement: Add app events
app:ready
andapp:quit
to Environment - Improvement: Update some dev stack
2019-07-22
- New feature: Better table editing support
- New feature: Support highlighting tables in the editor
- New feature: Add core:search-notes and core:filter-notes commands
- New feature: Support select all items on note list bar with
core:select-all
command - New feature: Support
enum
key in config schema for plugins. See the doc for detail. - Improvement: Update syntax themes to support highlighting tables and codeblocks
- Improvement: Improve indenting ordered list items
- Improvement: Do not focus to the search bar when selecting search item with keyboard input
- Bugfix: Close window when it is in fullscreen (Thanks Sammy)
- Bugfix: Add missing commands for changing note status
editor:change-note-status-(none|active|onhold|completed|dropped)
2019-06-30
- New feature: Support
editor.indentUnit
config (Thanks Ahmed) - New feature: Add
core:note-list-show-all-notes
andcore:sidebar-focus
commands - Improvement: Add
.htm
extension to dialog filters (Thanks jiunhsien) - Bugfix: Skip listing invisible notes(
Completed
,Dropped
state) properly (Thanks Keiji-san) - Bugfix: Retain view options when changing order/sort
- Bugfix: Autoupdate not working on macOS
2019-06-20
- New feature: Support
<config_dir>/styles.less
for style customizations - Improvement: Highlight search text on running
editor:find
oreditor:replace
command (Thanks Lu - Bugfix: Sync won't work via web proxy (Thanks Yusuke-san & Christian)
- Bugfix: Show error message when it failed to load local database
- Bugfix: Note tags are sometimes not properly migrated
- Bugfix: Broken sync with Android (Thanks Joshua and Kato-san)
2019-06-06
- New feature: Support
<config_dir>/init.js
for advanced customizations - Bugfix:
https_proxy
with non-ssl web proxy won't work (Thanks Christian and Rino-san) - Bugfix: Updating FTS index won't be triggered unless you edit a note (Thanks Sceptic, Hiro and Masatoshi-san)
2019-06-04
- Bugfix: Plugin won't be loaded correctly due to babel error (Thanks folks involved on this issue)
2019-06-03
- New feature: Support configuring global keymaps to focus the app window (Thanks Gustavo)
- New feature: Support inkdrop:// app scheme (macOS) and argv (Windows & Linux) to open a note from external apps
- New feature: Hide main window instead of closing it (Thanks Gustavo)
- Bugfix: SVG files cannot be inserted (Thanks John)
2019-05-17
- New feature: Support inline image widgets for HTML img tags
- Improvement: Support filtering by tag (Thanks Horii-san)
- Improvement: Remember sidebar visibility (Thanks Horii-san)
- Improvement: Add left margin to count badge (Thanks leptospira489)
- Bugfix: JS compile cache not working
2019-05-13
- Improvement: New logo
- Improvement: Change scrollbar width and color for Windows and Linux (Thanks leptospira489)
- Improvement: Change sidebar indent width slightly (Thanks Enokiya-san)
- Improvement:
ipm
command uses the client API key for the desktop app instead of requiring to generate an API key - Bugfix:
devMode
won't work (Thanks Otawara-san)
2019-05-02
- Bugfix: The app crashes when the note list scrolls after resizing the window (Thanks Horii-san)
- Bugfix: Preferences window crashes when opened a plugin detail
- Bugfix: Parse invalid search queries without errors
2019-04-29
- Improvement: Improve sync to be more stable
- Bugfix: Clear find state in the editor when search keyword not set (Thanks Erdem)
- Bugfix: Notebook picker on the editor not working (Thanks Otawara-san)
- Bugfix: Cannot empty the trash (Thanks Erdem)
- Bugfix: Show a proper error message on incompatible plugins
2019-04-25
- Improvement: Way smoother smart scroll sync
- Bugfix:
ctrl-y
to redo in the editor not working on Windows and Linux (Thanks Otawara-san) - Bugfix: Dbl-clicking urls to open on the editor not working (Thanks Otawara-san)
- Bugfix: Props for HTML
img
tag likewidth
not working (Thanks Kazutaka-san) - Bugfix: Search keyword not being highlighted until you open a different note (Thanks Erdem)
2019-04-24
- Improvement: Quicker smart scroll sync
- Bugfix: Can't toggle task list on preview
- Bugfix: Smart scroll sync is unstable (Thanks Otawara-san)
- Bugfix: Previous search text highlighting won't be cleared on the editor (Thanks Erdem)
- Bugfix: Backspace won't work on tags input bar (Thanks FORTRAN)
- Bugfix: Can't remove notebooks and tags from sidebar
2019-04-22
- New feature: End-to-end encryption
- New feature: New search UI
- New feature: Notebook submenus
- New feature: Count badges
- New feature: Smart scroll sync for side-by-side mode
- Improvement: Better performance for full-text search
- Improvement: Support embedding attachment images with HTML tags (Thanks Erdem)
- Bugfix: Exported PDF randomly skips inline image (Thanks Asish)
- Bugfix: First bullet point has an additional newline (Thanks derkork and Kuroyanagi-san)
2019-01-06
- New feature: Support jump-to-line command (Thanks Otawara-san))
- Improvement: Use break-word for table when printing (Thanks Otawara-san)
- Bugfix: Vibrant background does not work on macOS Mojave (Thanks Caleb)
- Bugfix: Menu item not rendering properly on Ubuntu 18.04 (Thanks andy)
The release notes for older versions can be found here