-
Notifications
You must be signed in to change notification settings - Fork 104
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
Comments
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. |
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. |
Most changes seems like a fork of current spec, not a v3. Or perhaps you should just move to JSON? |
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). |
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). |
I think the biggest issues with todo.txt is it's not markdown or intuitive... It should be:
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. |
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. |
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. |
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. |
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. |
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
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:
If the program supports hierarchical browsing:
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):
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...
The text was updated successfully, but these errors were encountered: