DEV Community

Jesse Piaścik
Jesse Piaścik

Posted on • Updated on

Imdone Changelog


  • Bug fix: Allow - and _ in list names and require at least 2 characters


  • Use custom keyboard bindings in imdone.
  • Use custom sort in default filter (Thanks Dr. Björk)
list=/.*/ +due +created
Enter fullscreen mode Exit fullscreen mode
  • Use any language characters for list names in non code files (Thanks Dr. Björk)


  • Returning a truthy value from a card action will remove the loading state of the card it was initiated from


  • When a card is deleted, also delete the file if Journal type is New File and the file is empty.
  • Fix deleting cards with markdown checkbox prefix and blank lines
    • Was leaving <card>...</card> behind
  • Add all configuration end extension files to main menu section
    • Settings
    • Board Settings
    • Global & Default Settings
    • Config Files
    • Edit Board Settings File
    • Edit Global & Default Settings File
    • Imdone log File
    • Edit .imdoneignore File
    • Extension Files
    • Edit style.css
    • Edit actions/board.js
    • Edit actions/card.js
    • Edit properties/card.js
  • Fix issue with number of lines shown in card
  • Add removeMetadata and removeTag methods to Project in imdone-api Try them in an .imdone/actions/card.js like this...
  function hasExpandMeta({ meta }) {
   return meta.expand && meta.expand[0];
  function hasUrgentTag({ tags }) {
   return tags.includes("urgent");
  module.exports = function (task) {
   const project = this.project;
   const actions = [];
   if (hasExpandMeta(task)) {
     title: "Remove expand meta",
     action: () => {
      project.removeMetadata(task, "expand", "1");
     icon: "minus",
   } else {
     title: "Add expand meta",
     action: () => {
      project.addMetadata(task, "expand", "1");
     icon: "plus",
   if (hasUrgentTag(task)) {
     title: "Remove urgent tag",
     action: () => {
      project.removeTag(task, "urgent");
     icon: "minus",
   } else {
     title: "Add urgent tag",
     action: () => {
      project.addTag(task, "urgent");
     icon: "plus",
   return actions;
Enter fullscreen mode Exit fullscreen mode


  • Cards created without order, outside of imdone will be added to the top when .imdone/config.yml is true. Only applies if .imdone/config.yml keepEmptyPriority is false.
  • Card and board actions module use imdone-api
  • Allow imdone to watch for changes in dot folders and the files they contain
  • Improved intellisense for links and images in card editor
  • Fix padding offset in display when card is selected
  • Display keyboard shortcuts in two tables
  • Added issues and roadmap links to docs
  • Projects can now have a name
  • Bug fix - after refreshing board, sourceLink is broken
  • New card property lastLine available for interpolation and use in card and board actions
  • Fixed nesting of bullets getting lost when saving a card with checkbox prefix
  • Card properties module
    • Add or update .imdone/properties/card.js module for custom properties
    • Module must export getCardProperties(task: Task): Object
    • Soon to retire in .imdone/config.yml
    • (Use .imdone/properties/card.js instead)
    • (Use .imdone/properties/card.js instead)
    • (Use .imdone/actions/card.js instead)
    • settings.actions (USe .imdone/actions/board.js instead)


  • Fix meta separator in default template for new cards


  • Fix saving of custom openIn url in settings
  • Unpack portable.exe in \Users\<user>\AppData\Local\Temp\imdone and save settings with portable.exe
  • Replace copy code link under code blocks with copy icon button overlaying code blocks
  • Remove recent projects that don't resolve
  • Fix when new card is created in a new file null appears at top followed by a blank line
  • Fix plugin and template install on machines without git and npm
  • Load card and board actions modules in .imdone/actions/card.js and .imdone/actions/board.js
  • Keep the board actions open when it's opened by the user
  • Make sure card immediately expands when expand meta is added
  • Add this.actions.copy(String: content, String: message) method for actions in .imdone/config.yml or actions modules
  • Move card menu kebab to the right


  • Fix for bug in 1.25.4 that hid all the tabs behind the loading overlay.
  • Fix for displaying recent projects that no longer existed on disk


  • Fix for HASHTAG with order in meta task type that made two tasks with the same text in the same file get corrupted.


  • Fix for never ending spinner on windows


  • Toggle all lists with a on/off
  • Set card content after edit so it can be edited again while loading
  • Implement sidebar menu and toggle with \
  • Refresh project from source with r
  • Upgrade ignore package for all UTF-8 characters in filenames
  • Fix order in meta issue where order doesn't update
  • Plugins tab in board settings


  • Add menu in settings instead of tabs
  • Added plugin section to settings
  • Plugin settings API
  • Use correct line break in windows ignores
  • Install and uninstall plugins
  • Plugin devmode that listens for plugin changes and reloads your project


  • imdone/imdone-api: A plugin api for imdone: Kanban with extreme context.
  • Show loading when card is updating
  • Retire use of .gitignore. .gitignore will not be applied. Use .imdoneignore instead
  • Remove blue delete filter link in filter field
  • Major performance boost for large projects
  • Added ignoreFrontmatter and ignoreFrontMatterTags to settings
  • Retire rql for filtering
  • Added attributes for tags, context and metadata, so they can be used in css selectors


  • Bypass confirm to delete card (shift+del)
  • Require done list in settings if addCompletedMeta or addCheckBoxTasks are true
  • Fix bug that deleted computed functions when settings was saved


  • Display changes made to settings


  • New setting on cards tab Add completed metadata (on/off).
    • Turn on if you want imdone to add <!-- completed: <date time stamp> --> when a card is moved to your Done list
  • New setting on cards tab Tag prefix. Select # or +.
  • addCheckBoxTasks is now a default setting
  • Play nice with obsidian kanban plugin. Ignore files with kanban-plugin front-matter.
  • Apply user default settings to new projects


  • If a file's front-matter has epic meta and a task in the file has meta is-epic:<any value>, then task will have is-epic:<front-matter.meta.epic value> in imdone
  • Scroll to task in focus if not in view.
  • Bug fix for Uncaught TypeError when automatically assign focus to the first card on startup


  • Update device id code


  • Use : or :: for meta key/value sep in settings.metaSep
    • Will default to : if settings.metaSep is null or not valid
    • Updates existing metadata, but make sure you change your template for new cards if it adds created meta
    • Updated editor code completion to respect settings.metaSep
  • Fix: Keep task expanded while checking subtasks
  • Ignore files with imdone_ignore: true front-matter


  • Checklist items nested in a checklist task card will consistently remain subtasks
  • Fix sorting of lists according to order when filtered


  • Create Journal folder (settings.journalPath in .imdone/config.yml) if it doesn't exist.


  • Fix drag and drop ordering for HASH_META_ORDER


  • Fix odd card duplication and deletion behavior on board


  • New option to Add checklist items as cards for new projects and in board settings for existing projects
  • New option in board settings. Select a Default list for checklist items when Add checklist items as cards is on.
  • Cards that start with - [ ] in source will get changed to - [x] when moved to the done list.
  • Cards that start with - [x] in source will get changed to - [ ] when moved out of the done list.
  • If a checklist item card prefix is changed from - [ ] to - [x] in source the card will be moved to the done list.
  • If a checklist item card prefix is changed from - [x] to - [ ] in source the card will be moved to the default list for checklist items
  • Completed metadata will be removed when a card is moved out of the done list.
  • Pad content added to last comment appropriately for checklist item cards. (e.g. completed and list tracking metadata)


  • Fix epic and is-epic code completion bug
  • Fix move epic item duplicate key bug


  • Make maxFiles configurable.
  • Fix errors


  • Keep cards expanded after updates


  • When applying front-matter meta.epic to cards, don't apply to cards with with the same value
  • Improved filter performance
  • Set a default view/filter for your board
      - id: default
        filter: 'list != DONE and list != NEXT and list != BACKLOG and list != ABANDONED' # This can be any filter 
Enter fullscreen mode Exit fullscreen mode


  • Fix moving a card between cards with the same order
  • Show all epic items when board is filtered


  • Better error handling for ignoring files
  • Ignore MS office files by default
  • Allow front-matter tags: tag1, tag2, tag3 format


  • Create file for Single File project type if it doesn't exist
  • Apply project cards.computed defaults


  • Respect meta.epic front-matter, so all tasks in a file will be part of an epic
  • Fix default single file project type settings.appendNewCardsTo
  • Log observing change to config.yml or .imdoneignore
  • Fix escape Save and Close


  • Allow all word characters in any language and emoji in tags, context, and meta
  • Keep empty priority order cards at top of list
  • Open the Move card to: selector by pressing m on the keyboard
    • The active card will be moved to the list selected in the Move card to: selector.
  • Highlight markdown syntax ==highlight==
  • New card type HASH_META_ORDER (HASHTAG with order metadata)


  • Fix duplication of tags when the same tag is in front-matter and card


  • Don't display quoted meta in output
  • Make sure .imdone-card-title is on the title not Epic link.
  • Fix the second tag completion on a line produces an extra +#@e


  • Wrap first line of cards in imdone-card-title class
  • Run filter when filter field loses focus
  • Respect an empty task prefix
  • Fix showing confirm dialog after saving settings on Windows
  • Save default settings before adding first project.


  • Added code completion for card metadata in card editor
  • Use is-epic values for epic meta code completion
  • exclude list name meta keys in meta code completion


  • Use correct epic links in windows (replace \ with / in path)
  • Keep correct order when adding new cards to top of list
  • Group Epic items by list
  • Disable checkbox on Epic Items
  • Make Epic Items heading a link that filters by epic
  • Make list headings in Epic Items, links that filter for epic items in that list


  • Use string interpolation and date for current date/time in Prefix for new cards
    • e.g. [${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')} ${date.getHours().toString().padStart(2,'0')}:${date.getMinutes().toString().padStart(2,'0')}]
    • will produce [2021-04-01 15:52]
  • Metadata can now include spaces if value is surrounded with quotes
    • e.g. epic:"Release 1.16.1"
  • Epic item links display in filtered lists
  • Epic item links displayed in epic card include list name
  • Epic item links displayed in epic card have markdown formatting removed


  • Create epics and epic items by using the epic: and is-epic: meta tags


  • Fix new install blank screen


  • Fix opening existing projects that have been closed and not in recent projects


  • Fix copy filter on windows


  • All fas and fab font-awesome icons are available for card links and actions
  • Open a project board with a URL. imdone://[Path to project]
    • Use the filter param to open a project board with a filter imdone://[path to file or project]?filter=[filter to apply]
    • Use a path to a project
      • e.g. imdone:///Users/jesse/Dropbox%20(Personal)/notes/cms-dsam?filter=allTags=urgent
    • Or use a path to a file and line to select a card
      • e.g. imdone:///Users/jesse/Dropbox%20(Personal)/notes/cms-dsam/content/
  • Fix dialog closing when creating a directory in add/open project dialog (macOS)
  • Filter field expanded to use empty space
  • Copy filter as imdone url
  • Show all lists with A in place of cmd or ctrl + shift
  • Apply custom css in .imdone/style.css (beta feature)


  • Fix for opening imdone with the imdone:// URI
  • Documentation for enabling the imdone URI.
  • Fix for opening obsidian from imdone with the imdone-obsidian-plugin on windows


  • e to expand and collapse active card
  • FIX: Only add lists automatically if found in code file and code.include_lists
  • Open imdone to a card with imdone://[path to file]?line=[line #]
  • imdone-obsidian-plugin
    • Click on a card link in obsidian and imdone opens to the card
    • Imdone opens to card source line in obsidian if Open obsidian at card source line is switched on in board settings


  • Allow the following character class for tags, context and meta values
    • [\w:%/.$-]
  • Allow the following character class for meta keys
    • [a-zA-Z-_]
  • Allow querying of nested tags with regex
    • e.g. allTags=/foo\/bar/ will match cards with #foo/bar and #foo/bar/baz



  • #tag syntax can be used for tags
  • New setting to add list change time metadata to cards
  • Show all lists with command or control + shift
  • Added Vim commands
    • ZZ - Save and quit
    • ZQ - Quit without saving
  • Date metadata does not get added to code files (e.g. .js, .py)


  • Search/Replace in card editor
  • Vim keybindings in card editor
  • Press shift + space for adding a card to any list
  • Added Save and close button to Content modified dialog in editor


  • Fix opening config and log files in default system editor


  • Navigate cards with hjkl
  • Consolidate open project, recent projects and project from template
  • Find topic markdown file for wikilinks by topic


  • Fix new project creation bug


  • Fix issue opening repos bug


  • Windows portable exe
  • Support wikilinks for markdown files [[ ]]
  • Fix links to files without line number in markdown link format
  • Fix newCard method for cards.links action
  • Show keyboard shortcuts with ?
  • Added Recent Projects sub-menu


  • Added Open With URL
  • Added all default props to Open With custom command and URL
  • Added Obsidian to Open With: dropdown in board settings



  • Click list name to modify
  • Set Journal file prefix and Journal file suffix for Folder journal type in Board Settings.
  • Added Open Files In and Custom open file command to Board Settings
  • Added projectPath and relPath variables to Custom open file command
    • e.g. open "obsidian://open?vault=${projectPath.split('/').pop()}&file=${relPath.split('.').shift()}" to open in Obsidian vault on Mac.
  • Added execCommand for use in card actions
  • Added projectPath, relPath, content and interpretedContent for interpolation and to this for card actions
  • Made board actions and card actions alpha functionality

Bug Fixes

  • Keep card editor focus after a new task is created


  • Use metaKeys task attribute in filters
    • e.g. metaKeys != due displays all cards without a due date.
  • Double clicking a card opens the editor
  • Drag and drop cards from filtered lists to real lists.
  • Only display markdown headings as beforeText


  • Fix display of cards wrapped in markdown comments


  • Improved long list performance
  • Fix drag and drop between lists
  • Fix click a cards edit button and the card doesn't have focus. The card with the focus will be opened.
  • Fix creates getting started cards regardless of the status of the checkbox in the new project dialog.


  • Improved Main Menu Display
    • Lists displayed as dropdown
    • List length tool-tip
    • Board Actions
    • Generate reports
    • Copy data to clipboard
    • Send an email
  • Support for .dart comments

Breaking changes for computed properties since 1.6.15

Computed properties should now contain strings that will be interpolated.

In .imdone/config.yml

If you have computed properties that look like this:

      date: (new Date()).toDateString()
      time: (new Date()).toLocaleTimeString()
      timestamp: (new Date()).toISOString()
Enter fullscreen mode Exit fullscreen mode

They should be modified to look like this:

      date: '${(new Date()).toDateString()}'
      time: '${(new Date()).toLocaleTimeString()}'
      timestamp: '${(new Date()).toISOString()}'
Enter fullscreen mode Exit fullscreen mode

In file front-matter

If you have markdown files in your project with computed properties in front-matter, they should also be changed

Top comments (0)