Imdone Changelog
Published: 2022-04-30 01:51:11

---
title: Imdone Changelog
published: true
description: Changelog for imdone kanban board
// cover_image: https://direct_url_to_image.jpg
---
{% embed https://youtu.be/TABjMiPGuqw %}
<https://imdone.io>

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

## 1.29.3
- Use custom keyboard bindings in imdone.
- Use custom sort in default filter (Thanks Dr. Björk)
```yaml
list=/.*/ +due +created
```
- Use any language characters for list names in non code files (Thanks Dr. Björk)

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

## 1.28.3
- 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...
  ```javascript
  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)) {
    actions.push({
     title: "Remove expand meta",
     action: () => {
      project.removeMetadata(task, "expand", "1");
     },
     icon: "minus",
    });
   } else {
    actions.push({
     title: "Add expand meta",
     action: () => {
      project.addMetadata(task, "expand", "1");
     },
     icon: "plus",
    });
   }
   if (hasUrgentTag(task)) {
    actions.push({
     title: "Remove urgent tag",
     action: () => {
      project.removeTag(task, "urgent");
     },
     icon: "minus",
    });
   } else {
    actions.push({
     title: "Add urgent tag",
     action: () => {
      project.addTag(task, "urgent");
     },
     icon: "plus",
    });
   }
   return actions;
  };
  ```
## 1.27.1
- Cards created without order, outside of imdone will be added to the top when `.imdone/config.yml` **settings.cards.addNewCardsToTop** is true. Only applies if `.imdone/config.yml` **keepEmptyPriority** is false.
- Card and board actions module use imdone-api
  - `.imdone/actions/board.js` must export [`getBoardActions(): Array<BoardAction>`](https://github.com/imdone/imdone-api/blob/main/types/plugin.d.ts#L23)
  - `./imdone/actions/card.js` must export [`getCardActions(task: Task): Array<CardAction>`](https://github.com/imdone/imdone-api/blob/main/types/plugin.d.ts#L22)
  - Breaking changes to `.imdone/actions/card.js` and `.imdone/actions/board.js` modules
- 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`](https://github.com/imdone/imdone-api/blob/main/types/plugin.d.ts#L21)
  - Soon to retire in `.imdone/config.yml`
    - settings.cards.properties (Use `.imdone/properties/card.js` instead)
    - settings.cards.computed (Use `.imdone/properties/card.js` instead)
    - settings.cards.links (Use `.imdone/actions/card.js` instead)
    - settings.actions (USe `.imdone/actions/board.js` instead)

## 1.26.2
- Fix meta separator in default template for new cards

## 1.26.1
- 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 `settings.cards.links` actions in `.imdone/config.yml` or actions modules
- Move card menu kebab to the right

## 1.25.5
- 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

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

## 1.25.3
- Fix for never ending spinner on windows

## 1.25.2
- 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

## 1.24.1
- 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

## 1.23.0
- [imdone/imdone-api: A plugin api for imdone: Kanban with extreme context.](https://github.com/imdone/imdone-api)
- 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
  
## 1.22.3
- 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

## 1.22.2
  - Display changes made to settings

## 1.22.1
  - 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

## 1.21.0
  - 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

## 1.20.4
- Update device id code

## 1.20.3
- 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

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

## 1.19.5
- Create **Journal folder** (settings.journalPath in `.imdone/config.yml`) if it doesn't exist.

## 1.19.4
- Fix drag and drop ordering for HASH_META_ORDER

## 1.19.3
- Fix odd card duplication and deletion behavior on board

## 1.19.2
- 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)

## 1.18.5
- Fix **epic** and **is-epic** code completion bug
- Fix move **epic** item duplicate key bug

## 1.18.4
- Make `maxFiles` configurable.
- Fix `config.settings.cards.metaNewLine` errors

## 1.18.3
- Keep cards expanded after updates

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

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

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

## 1.17.5
- Create file for **Single File** project type if it doesn't exist
- Apply project `cards.computed` defaults

## 1.17.4
- 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**

## 1.17.3 
- 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)](/cards#hashtag-with-order-metadata-syntax)

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

## 1.16.5
- 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

## 1.16.4
- 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.

## 1.16.3
- 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

## 1.16.2
- 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

## 1.16.1
- 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

## 1.16.0
- Create epics and epic items by using the `epic:` and `is-epic:` meta tags

## 1.15.3
- Fix new install blank screen

## 1.15.2
- Fix opening existing projects that have been closed and not in recent projects

## 1.15.1
- Fix copy filter on windows

## 1.15.0
- 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/CHECK%20IF%20CBT%20WAS%20ACCEPTED.md?filter=allTags=urgent&line=2`
- 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)

## 1.14.1
- 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
  
## 1.14.0
- `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](https://github.com/imdone/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

## 1.13.1
- 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`

## 1.13.0
- Add support for [obsidian flavored `%% comments %%`](/cards#comments)
- [Preserve blank lines in cards](/cards#preserving-line-breaks)
  - Using the `<card>` tag
- Imdone auto updates on mac and windows
  - AppImage auto update coming soon for linux

## 1.12.0
- `#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`)

## 1.11.0
- [Search/Replace](/editors#card-editor-keyboard-shortcuts) in card editor
- [Vim keybindings](/editors#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

## 1.10.1
- Fix opening config and log files in default system editor

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

## 1.9.2
- Fix new project creation bug

## 1.9.1
- Fix issue opening repos bug

## 1.9.0
- 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
  
## 1.8.2
- Added **Open With** URL
- Added all [default props](#/cards?id=default-props-available-for-string-interpolation) to **Open With** *custom command* and *URL*
- Added **Obsidian** to **Open With:** dropdown in board settings

## 1.8.0
**Features**
- 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

## 1.7.0
- 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 

## 1.6.25
- Fix display of cards wrapped in markdown comments

## 1.6.24
- 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.

## 1.6.23
* Improved Main Menu Display
  * Lists displayed as dropdown
  * List length tool-tip
  * [Board Actions](#/settings?id=board-actions-settingsactions)
    * 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:
```yaml
    computed:
      date: (new Date()).toDateString()
      time: (new Date()).toLocaleTimeString()
      timestamp: (new Date()).toISOString()
```
They should be modified to look like this:
```yaml
    computed:
      date: '${(new Date()).toDateString()}'
      time: '${(new Date()).toLocaleTimeString()}'
      timestamp: '${(new Date()).toISOString()}'
```
### In file front-matter
If you have markdown files in your project with computed properties in front-matter, they should also be changed