Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Slightly automated tagging for new Tasks #1836

Closed
wants to merge 1 commit into from

Conversation

caemor
Copy link

@caemor caemor commented Nov 3, 2021

Currently tags, calendar and date can't be set from the input field directly AFAIK.
This PR is work in progress. Currently only the auto-tagging should work but even that features hasn't been tested yet.

Current ideas and questions for this PR:

  • Tags should be annotated by an '@'.
  • Calendar should be set with an '#'. How to get a correct calendar?
  • Due Date is even more WIP. Since every special case needs to be handled
    Maybe simplify it to: today, tomorrow, next week (Monday), next month or dd/mm or dd/mm/yyyy for now
  • Auto-matching for tags and calendar? Is auto-matching possible? How to get the correct calendar or a tag (e.g. "work" vs "Work",...)

Current status:

  • Tagging (not yet tested!)
  • Test Tagging
  • Calendar
  • Due Date
  • ...

This is related to #89

@raimund-schluessler
Copy link
Member

@caemor Thanks for working on this.

I would prefer to handle the different features in separate PRs and focus on the tagging feature first (since it is the easiest).

  • Please use the hashtag # as the annotation for tags. This is the most common character for this (see Twitter) and likely what the user expects.
  • Parsing the user input should go into a separate function for easier testing. The function should accept a string and return an object with the properties title<string> and tags<array>.

As for the other features (in separate PRs):

Calendar:

  • The @ character makes sense for indicating where a task gets created (i.e. @/at a certain place/list). So please use it for indicating in which calendar/list a task will reside.
  • Overwriting the calendar needs a bit of thinking. We normally show in the input field in which Calendar a task gets created. Overwriting this might lead to unexpected results. And we should for sure forbid to create a subtask in a different calendar, as it will not be visible after creation. Same goes for being in a list view.

Dates:

  • There are really many key-words to parse for. I would start with today, tomorrow, ISO-dates (e.g. 2021-11-05) and the date format of the user. Next + weekday would also be an option, but this gets tricky already.

@jayarmstrong
Copy link

Thank you for starting this!

@ are normally used to tag people / groups. In the interest of that also being used in the future, I'd suggest using something else for adding calendars. Unless calendars, people, and groups are equivalent classes.

Toodledo has implemented this extremely well, IMO. They use a / in the task title to add details. This is the fastest way to add tasks that I've come across and doesn't require the constant keyboard-to-mouse switching like NC and most other task managers. I won't detail all its greatness here but here are some basic examples:

  • task 1 /mon = set due date OR start date to following Monday
  • task 1 /high /coding /paid = set priority high, add tags coding and paid
  • task 1 /groceries = add tag "groceries"
    Of course you lose or slow down the ability to use these tag delimiters (/, #, @, etc) so that's one reason to bundle some / all of the tagging into fewer delimiters. Personally, I'd like to see @ for involving people and groups, / for details and tags, and optionally # for tags only.

@raimund-schluessler
Copy link
Member

Superseded by #2425.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants