Personally, I really appreciate TaskPaper’s ability to detect leading spaces and converting them internally to item levels, for the reasons you have cites (i.e. most plain text editors, especially those for programming, will do the opposite).
Where things become problematic for me is when TaskPaper automatically saves the same file with tabs instead of spaces, because the file is no longer valid YAML (even it were before being opend by TaskPaper).
Let me explain a bit more in detail…
In fact, TaskPaper’s on disk format for basic task usage is currently almost valid YAML, as long as the user is willing to forego some features. The almost comes from the TAB character (forbidden in YAML). Let me try to explain a bit more in detail…
My use case involves transitioning my TODO files (in multiple software projects) to a very simply structured version in YAML format (TODO.yml).
Once they are structured, they become more readily eligible for automated processing by software, such as by a simple scripts for placing a copy of the DONE items in the “Changes” file, or what not.
The reason I have chosen YAML over some other options should be obvious : wide support (like XML and JSON), much more human-friendly (than XML and JSON), ubiquity, simplicity, ease of processing, …
Granted, TaskPaper’s on disk format is great, too; and it readily ticks almost all the boxes above, except that is specific to the “task/todo management” functional domain, and therefore 3rd party software support is naturally limited to that particular domain.
However, had the format been a valid incarnation of an existing more generic data format (such as YAML), then all sorts of other possibilities would open up automagically across the board, while preserving its human-friendlieness.
All of a sudden :
The taskpaper format would become readily parsable by existing YAML libraries of pretty much all modern computer languages;
It would be possible to use many existing plain text editors (Atom, Sublime, BBEdit, Eclipse, …) in YAML mode, with syntax highlighting and such delights.
As you may have guessed, ideally, I would really love TaskPaper’s on-disk format to evolve in that direction one day: i.e. a functional format which in valid YAML, also with support of the existing great features such as attributes (@).
However, I also realize that something like this is not simply done as said. Developing it is one thing (which wil probably not be that big of deal), but the more delicate part would probably be the decision for whether or not to produce a v2 of the format in the first place…
Therefore, I keep my expectations low and only ask for a small change descriibed below…
REQUESTED FEATURE :
Give the user the option to save files with spaces instead of TABS.
Ideally the said user preference would be persistent (i.e. set via the preferences menu), and would like :
Save files with SPACES instead of TABS
And the above is checked, one would be able to change the number of spaces that would correspond to a tab :
- 1 tab (level indentation) => 2 spaces
This way, the file produced will be valid YAML, as long as the user is willing to abstain from some features (such as the ‘@’). – BTW, such data will still be present in the file as opaque text values and may be extracted by 3rd party software and scripts after parsing the file as YAML, if at all needed.
Using a simple one liner to translate the tabs into spaces and vice-versa is certainly possible today, and that’s what I have been doing; but it’s so easy to forget to do that each and every time the file has been saved by TaskPaper…
Apart from this pain point, I really like being able to use a specific UI for managing tasks and TaskPaper really stands out from the rest of the bunch, in the mac space…