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

Version 3.0.0 Spec - My vision of the new version todotxt #13

Open
heX16 opened this issue Feb 15, 2018 · 11 comments
Open

Version 3.0.0 Spec - My vision of the new version todotxt #13

heX16 opened this issue Feb 15, 2018 · 11 comments

Comments

@heX16
Copy link

heX16 commented Feb 15, 2018

My vision of the new version todotxt.

File encoding format

"UTF-8 with BOM".

Line ending: Windows style (0x0D, 0x0A) - for more compatible.

Because "UTF-8" some times have problem with encoding detection (and incorrect definitions like ANSI (and damage to all characters)).

Version

Need add to format version in first line as tag.
Example: "{todotxt_version: 2.0}"

Due date

"due date has by far been the most-requested addition to the standard" link

Rename the "completion date" and "creation date" to the "start date" and "end date" (and changing function of course).

Because the "due:" tag became mandatory for each task (in my case), but I do not use "completion date" and "creation date".

Functions of "completion date" and "creation date" move to tags - "cm", "cr".

Tags

Also need to change the format of the tags.
In the current version they are very often misinterpreted and they can not contain a space.

Example:
"buy:apple,orange,banana" - I just forgot to put a space in my list and got the problem (stupid problem).

My variant: {tag_name} {tag_name:tag_value}

Why it is desirable to surround the tag with parentheses? - Because the people perception can skip (ignore) the text in parentheses.

Tags can place in any place (except "Marks completion"), also before Due date. (for compatibility with new marks priority format)

These symbols are used rarely enough that they can be "spent" on tags. (also tags can have spaces in the value, and looks like JSON).

Todo: need think through shield of character "{", "}", """, ":".

Date-time

Expand "date format" to "date-time format"! Example: 1917-10-01-23:59, 2018-02-07

What for? - Because it is very strange that the tool for working with tasks and time does not allow you to work with the exact time.

Hierarchy of projects

Support "\" in project name.

Example:

+bigwork conquest of Mars
+bigwork\stage1 launch rocket
+bigwork\stage1 launch car to Mars just for @fun +tesla\pr
+bigwork\stage2 launch human to Mars
+bigwork\stage3 ...
+bigwork\stage4 PROFIT

If the program supports hierarchical browsing:

bigwork
  stage1
  stage2
  stage3
  stage4

If the program program displays a flat list - it should place the projects side by side in the list (it's enough alphabetic sorting for this):

bigwork
bigwork\stage1
bigwork\stage2
bigwork\stage3
bigwork\stage4

Marks priority

Change from (A) to {1} - for compatibility with new tag format.

This will give 9 "basic" priorities {1}-{9} (in reality, few people use more than 5), and an infinite number of additional priorities {10}-{100..}.

(of course using only one tag that first)

Official list of tag

List:
1-9 - priority flags. {1}
10-999999999 - priority flags too. Max is {999999999}.
0 - no priority (programs must delete this tag from record). {0}
cr - creation date-time. {cr:2017-05-01}.
cm - complete date-time. {cm:2018-02-07-14:02}.
id - unique identificator (for automatic sync). {id:12345678}
hide - is hide record. {hide}.
base - hide and constant record for create a permanent project or context. {base}
color - just color of record (without specifying the way of implementation). {color=#FF0000}
crypt - is encrypted record. {crypt}. (encrypt options and other information is located at the beginning of the file in a special records).

See:
#8
https://docs.google.com/spreadsheets/d/11nqV2j8qc_O5SVsvkZ2JGZP98CABLQ6EwBxAQQi7Huc/edit#gid=0

Todotxt file example

For unit test and "make nice screenshots"

Work in progress...

@heX16 heX16 mentioned this issue Feb 15, 2018
2 tasks
@zagortenay333
Copy link

Where is multiline support? That's about the only thing that would truly make todo.txt more usable, everything else looks like cosmetics to me.

@shaneknysh
Copy link

I see creation date and start date as two separate dates. end date and completion date could also be two separate dates. I'd like to see all the dates move to the tag:value section.

@tomByrer
Copy link

tomByrer commented Apr 3, 2018

Most changes seems like a fork of current spec, not a v3. Or perhaps you should just move to JSON?

@neithernut
Copy link

neithernut commented Apr 4, 2018

CR+LF? Backslash as "directory" separator? I smell windows indoctrination.

@heX16
Copy link
Author

heX16 commented Apr 4, 2018

CR+LF? Backslash as "directory" separator? I smell windows indoctrination.

CR+LF - for better windows support (no difference CR+LF/CR/LF, but the majority uses Windows).
Backslash as "directory" - because in texts and documents "/" is often used.

@heX16
Copy link
Author

heX16 commented Apr 4, 2018

Most changes seems like a fork of current spec, not a v3. Or perhaps you should just move to JSON?

Yes, this is an improvement of the current specification. But as compatibility breaks down, i have to change the version number (see SemVer 2.0).

@smellymoo
Copy link

smellymoo commented Apr 18, 2023

I think the biggest issues with todo.txt is it's not markdown or intuitive...

It should be:

[ ] (A) unfinished +task @group
[x] (B) finished +task/sub @group {date=1/1/10, due=1/1/05}

  • Priority is optional.
  • everything extra is thrown into a json-like optional.
  • multi-line is supported (as lines start with "[").
  • if a line starts with ## all following lines are that group (eg: ## @section).

You can detect version 2/3 by the leading "[", and as fallback, the final "}". If every line doesn't have both then it's valid todo.txt v2, so it degrades flawlessly.

I think it should be called todo.md, might fork it. As I love the ideology of todo.txt, but the format is janky.

@shaneknysh
Copy link

One of the biggest strengths of todotxt is Gina got in front of the problem and became "the" format for text based task management. Being first to market was a huge advantage. Being simple and effective was as well.

Unfortunately, I think there are 3 competing formats for todo.md. While I would love to see a markdown format, and tools like a kanban board, you will already be fighting to combine the efforts and groups of separate user groups. [Insert XKCD comic on competing formats here.]

I've stopped using todotxt and use a markdown file but I don't have a strict format. I lose the reporting aspect but I never leveraged the reporting.

While it would be nice to have a single tool that understands all versions, breaking changes between versions are acceptable in my opinion. Todo lists are not designed to be long term documents. A conversion tool would be more valuable than trying to get plain text and markdown to be interoperable.

@smellymoo
Copy link

smellymoo commented Apr 19, 2023

don't get disheartened, the fundamental idea was right and good, keeping things good with the endless onslaught of entropy is what keeps things interesting. What matters is we all do what we can to do what is right. Yes right changes over time, but that's ok too.

I didn't try to make it backward compatible, that was just a realisation after I had thought of what would be the best format. My thinking went like this: why isn't it using [x] for marked? then why isn't it markdown, then why doesn't it have one consistent way of keeping tags between uncomplete and completed (like priority) and finally, JSON makes sense for making it extensible...

if the JSON is at the end, it reads nicely, and if the marked is at the start always, it reads as Markdown. And there is no reason to take away the priority part when it's done.

Then I thought about how if "[" is always first, it is easy to detect the format, and if it doesn't have it, parse it as todo.text version 2.

people can make what ever formats they like, but we may as well keep this format as good as it can be, and slowly everyone will start to support version 3, then the best format wins, that is for the people to decide.

@smellymoo
Copy link

If you like I'll take over manging this project, as it seems you have had enough?

I realise there are alternatives, but I still think it is worth it to make version 3 of this format. I would like to see it survive.

@shaneknysh
Copy link

If you are asking me, I'm not involved in the project. I think I have exaclty 1 pr to accept "." As a valid date separater.

I just responded to your comment.

The topic you are replying to is 5 years old. The others attached to this topic might not be involved anymore or have unsubscribed from the topic.

Gina turned the codebase over to the todotxt org but I don't know who is responsible for the repository although Gina is still listed as part of the group. The website still lists 2020 as the copyright date while the twitter account looks like it was last used in 2017.

I'd recommend starting a new issue and seeing who responds there or contacting the todotxt org via the people in the github org or on the glitter chat link.

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

No branches or pull requests

6 participants