No description
Find a file
2024-07-18 17:00:56 +02:00
assets update demo gif 2024-07-08 15:10:49 +02:00
ktask use the new tea.WindowSize command to avoid storing the last windowMsg 2024-07-18 17:00:56 +02:00
.gitignore initial commit 2024-07-05 20:03:33 +02:00
go.mod use the new tea.WindowSize command to avoid storing the last windowMsg 2024-07-18 17:00:56 +02:00
go.sum use the new tea.WindowSize command to avoid storing the last windowMsg 2024-07-18 17:00:56 +02:00
ktask.go implement proper error printing of errors like from klog 2024-07-14 15:34:46 +02:00
LICENSE Create LICENSE 2024-07-14 15:04:24 +02:00
README.md add option to pre-filter kanban view based on tags -- inverse 2024-07-14 15:04:31 +02:00

ktask

Ktask is a kanban based todo-list using a plain-text format to store data and use a TUI (terminal user interface) to show the kanban board.

Plain-text format

The plain-text format (as well as the parsing of it) is heavily inspired by the klog project.

Essentially, it consists of a list of stages (for the kanban board). Each of these stages then contain a list of task items in that stage. Each item has 3 properties: createdAt (when the entry was created), modifiedAt (when the entry was last modified, aka moved to another stage) and title. These fields must be present in that order. Similar to klog, the title might contain tags starting with #, potentially storing a value. The first tag in the title will be interpreted as the project to which this item belongs to.

Example

todo
    2024-01-02 2024-02-01 buy milk #grocery
    2024-01-10 2024-02-11 Send out weekly newsletter #work=social

done
    2023-12-01 2024-01-01 celebrate new-year #friends

You may notice this example only consists of two stages instead the classical three stages. This stresses, the file format does not impose any restrictions on the order, number and name of the stages used.

Project state

This project is still in a early stage. It can already be used (I'm doing so) but it's not well tested and there might be bugs.

For open issues / planned features, see the issues page.

Although I want to avoid, there might be breaking changes (especially because of the very early stage of the project). In order to get notified if there are any, subscribe to this issue.

Arguments

Kanban View

with -t/--tags you can pre-filter the set of entries shown in the kanban view. You can use this option multiple times to show entries with different tags. If you are using tags of the form #key=value, filtering on #key will also show the entries that use the #key tag with a value assigned to. Also note that you don't have to (but can) include the leading #.

-T/--no-tags is just the oposite (hide the specified tags). Hiding -T) always takes precedence over showing (-t)

Example: ktask kanban -t grocery --tags work assets/demo.ktask

Acknowledgements

The basic idea for this project was greatly inspired by the charm tutorial projects taskcli and kancli.

Thinking about data storage, the thought was usually there should not be that much data (otherwise the board will be too full anyhow) so a plain-text file should be enough (in contrast to a full blown database) while offering the benefits of easy introspection and version control (if desired).

This lead to the process of thinking about the format. Since klog has a similar approach (but for time tracking) it only was logical to adapt its format and if so also make use of its general parsing logic.