Specify custom id algorithm
This commit is contained in:
parent
c8d0c93263
commit
acd7639acb
3 changed files with 66 additions and 2 deletions
13
concepts.md
Normal file
13
concepts.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
All task managers I have seen so far were quite opinionated. Since task management is a deeply personal matter, this likely yields many people to abandon these digital tools not long after embracing them.
|
||||||
|
To build trust in the system, it needs to be your system.
|
||||||
|
|
||||||
|
So the foundational principle of this task manager is to rely as little as possible on special mechanics, implementing all convenience behavior and specialized features in a generalized way, allowing to easily compose and customize them.
|
||||||
|
The
|
||||||
|
|
||||||
|
```
|
||||||
|
[tag]
|
||||||
|
big=size:l
|
||||||
|
break=size:s -pc
|
||||||
|
|
||||||
|
|
||||||
|
```
|
51
ids.md
Normal file
51
ids.md
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# User-Ids
|
||||||
|
|
||||||
|
One important concept is to identify tasks effortlessly with recognizable, consistent alphabetical ids.
|
||||||
|
To distinguish them clearly from the unique ids (uuid/ulid) and potential ids of the plumber, they will henceforth be called user-ids.
|
||||||
|
|
||||||
|
These ids are always lowercase.
|
||||||
|
Note that they only have to unique among open tasks. Closed tasks loose their userid and will have a new one generated should they be reactivated.
|
||||||
|
|
||||||
|
1. Generate an index of the task description: An array of all uppercase letters and initials.
|
||||||
|
2. If there is a parent task with a user-id, take its first letter as start of the id. Remove the first letter of the index if it is identical.
|
||||||
|
3. Find consecutive letters (preferably among the uppercase letters) in the index that yield a unique id with a length of 2-3.
|
||||||
|
4. Take up to 3 letters of the description and see if they create a unique id.
|
||||||
|
5. Otherwise, find a random combination of 2-3 characters that isn't used yet.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
Configure my ArchLinux properly
|
||||||
|
|
||||||
|
Index:
|
||||||
|
|
||||||
|
CmALp
|
||||||
|
|
||||||
|
Generated ids, in order:
|
||||||
|
|
||||||
|
ca
|
||||||
|
al
|
||||||
|
cal
|
||||||
|
|
||||||
|
cm
|
||||||
|
ma
|
||||||
|
lp
|
||||||
|
cma
|
||||||
|
mal
|
||||||
|
alp
|
||||||
|
|
||||||
|
co
|
||||||
|
con
|
||||||
|
|
||||||
|
If there is a parent with the id `c`:
|
||||||
|
|
||||||
|
ca
|
||||||
|
cl
|
||||||
|
cal
|
||||||
|
|
||||||
|
cm
|
||||||
|
cp
|
||||||
|
|
||||||
|
co
|
||||||
|
con
|
||||||
|
|
||||||
|
Taskwarrior UDA: userid
|
4
plans.md
4
plans.md
|
@ -33,7 +33,7 @@ Maybe prefix internal values (ulid and state) with underscore. Does no interpret
|
||||||
|
|
||||||
## The task manager - [porcelain][plumbing]
|
## The task manager - [porcelain][plumbing]
|
||||||
|
|
||||||
Name ideas: Taskforc/Tofo
|
Name ideas: Taskforc/Tafo
|
||||||
|
|
||||||
Basically a parser & visualizer with a few quirks.
|
Basically a parser & visualizer with a few quirks.
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ Unknown commands are passed on to the plumber with potential parameter modificat
|
||||||
|
|
||||||
Reports & parameter configurations should support some kind of inheritance, i.e. allowing to create a new property/report that initially uses all values from its ancestor.
|
Reports & parameter configurations should support some kind of inheritance, i.e. allowing to create a new property/report that initially uses all values from its ancestor.
|
||||||
|
|
||||||
Automatically generates short ids for new tasks based on description - first initials, then following letters in case of collisions (e.g. "al" for "Arch Linux setup"), length may depend on whether there is a parent (root tasks get single letter if possible) unless an id is explicitly set.
|
Automatically generates short user-ids for new tasks based on description - first initials, then following letters in case of collisions (e.g. "al" for "Arch Linux setup"), length may depend on whether there is a parent (root tasks get single letter if possible) unless a user-id is explicitly set.
|
||||||
|
|
||||||
### Commands
|
### Commands
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue