KanMug - A Forked Project of the Original Kanban Plugin

Hello,

I want to share a new project here: KanMug, a fork of the original Kanban plugin. The original Kanban plugin has been archived and is no longer maintained. It is suggested to migrate to the new YesYouKan plugin. However, the use case scenarios are different, making it difficult for existing users to migrate to the new plugin.

Therefore, I have forked the old kanban plugin into a new project with bug fixes and new features. It is KanMug and released.

The storage format remains unchanged. Therefore, you can install the new plugin and disable the original plugin to try it, and vice versa.

However, I have refactored the code significantly. If you find any features broken, please feel free to let me know.

You may search KanMug from the Joplin plugin setting for installation.

The project link: GitHub - benlau/joplin-plugin-kanmug

Here are the changes of the first release version (1.2.2):

Release 1.2.2

New Features

  • Drag notes from the Joplin's Note list to add them to the kanban board.
  • Clicking on the kanban title now opens the kanban configuration note.
  • Added a refresh button for quick updates to the kanban board.

Improvement

  • Improved board note switching to prevent unnecessary open/close operations.

Bug Fix

  • Create a new note via the add button in the column may not set the tag correctly.

Code Changes

  • Renamed the plugin from Kanban to KanMug.
  • Updated package dependencies for security and compatibility.
  • Overhauled the refresh UI flow for better performance and reliability.
  • Added a Debouncer utility for improved UI refresh handling.
  • Added GitHub Actions workflow for automated testing and building.
  • Introduced an AsyncQueue utility to ensure sequential processing of events.
9 Likes

Version 1.2.3 released

Release 1.2.3

New Feature

  • New Note Title Property: Added support for newNoteTitle in column configurations, allowing automatic note title generation based on templates. You may customize the title using today() with delta and different formats.

Remarks: If you used this feature, your kanban will not be compatible with the original kanban plugin.

Improvements

  • Prevented Double Note Creation: Add new note via the column menu may create double note if you clicked too fast.
  • Fixed Markdown Table Rendering Issue: Escaped | characters in note titles to prevent rendering issues in markdown tables.

Bug Fixes

  • Drag a note from note view may freeze the column.

New Note Title Property: newNoteTitle with today()

With the introduction of newNoteTitle, users can now define dynamic note titles using EJS templates in their kanban board configurations. This feature enables automatic title generation based on date formatting, making it easier to maintain structured and consistent note titles.

How today() Works

The today() function provides the current date and supports additional methods to manipulate and format the date.

Basic Usage

The simplest way to use today() in newNoteTitle is:

newNoteTitle: "New Task <%= today() %>"

This will render the title as:

New Task 2025-01-31

(assuming the current date is January 31, 2025)

Adding or Subtracting Days

You can modify the date using .add():

newNoteTitle: "New Task <%= today().add('1d') %>"

This will generate:

New Task 2025-02-01

Adding -1d moves it to the previous day:

newNoteTitle: "New Task <%= today().add('-1d') %>"

Result:

New Task 2025-01-30

Changing the Start Time of Day

If you work late at night and want the title to reflect the "previous" day, you can adjust the time:

newNoteTitle: "New Task <%= today().add('-4h') %>"

This ensures that notes created after midnight still reflect the previous day. (Using 04:00 as the start time of the day , instead of "00:00")

Custom Date Formatting

You can format the date using .format(). For example:

newNoteTitle: "Task for <%= today().format('MM/dd') %>"

Will output:

Task for 01/31

Combining Multiple Operations

You can chain .add() and .format() together:

newNoteTitle: "Due <%= today().add('2d').format('MM/dd') %>"

This will produce:

Due 02/02

Use Case Example

If you want a kanban column for "Upcoming Tasks" where each new note should have the title "Task for tomorrow," you can define:

columns:
  - name: "Upcoming Tasks"
    newNoteTitle: "Task for <%= today().add('1d').format('MM/dd') %>"

This will create new notes with titles like:

Task for 02/01

if today is January 31.

Finally

I want to ask a question. Anyone would like to have a feature to create new note with issue number automatically assigned? e.g The first note is 0001 , and then 0002 , ....

1 Like

Hi all,

I have a good news for you. A new kanMug released and it fixed the slow response issue! Now it is significantly faster!!!

Here is the change log:

Release 1.2.4

Critical Changes

Performance improvements have significantly reduced processing time.

New Features

  • Remove Note from Kanban: A new option allows users to remove notes from the kanban board via the context menu. Simply right-click on a card to trigger the menu. This action ensures that notes are properly removed from columns and associated rules are unset.
  • Confirmation for Column Deletion: Deleting a column now prompts for confirmation to prevent accidental deletions.

Bug Fixes

  • Fix Column Configuration via GUI Breaking EJS Templates: Ensures < and > characters are correctly escaped in the GUI configuration editor to prevent rendering issues.
  • Fix Note Ordering: New notes are now correctly placed at the top of the column.
  • Fix New Note Content Initialization: The default content of newly created notes now matches their title to prevent unintended title overrides.

New Feature: Remove Notes from Kanban

This release introduces the ability to remove notes from the kanban board using a right-click context menu. Selecting "Remove from Kanban" will detach the note from the board while keeping its content intact in Joplin.

How to Use

  1. Right-click on a note in the kanban board.
  2. Select "Remove from Kanban."
  3. A confirmation dialog will appear to confirm the action.

User Survey

By the way, I have a few questions about the upcoming features:

  • Would anyone like a feature that automatically assigns an issue number when creating a new note? For example, the first note would be 0001, followed by 0002, and so on.
  • Dynamic Card Sorting – Would you like the ability to press a button and choose the order?
3 Likes

Thanks for making this plugin! It fits my workflow/usecase much better than the YesYouKan plugin since the cards are separate notes.

This would be nice to have :+1: