How does TaskPaper handle these weird tags?


#1

How does TaskPaper handle these edge cases for tags?

  1. Duplicate tag (with different values). Like: @due(today) @due(tomorrow)
  2. Built-in tags with special meaning: Like: @id(myownid) @indent(true) @type(AB)

 

  • Does the Taskpaper UI prevent them?
  • What about when such tags are encountered when importing a text file from another editor?
  • What would the ideal, expected behavior be?

If birch-outline is the reference implementation, here are the results I got:

  1. Only the first tag is recognized.
  2. Results vary, but usually not recognized.(They are not stripped from the string, though.) Documented in more detail in this issue.

#2

I’m not sure to understand, but for me tag are interpeted as @key(value).

I use @delegate(bob) @delegate(paul), and can ask which tasks are delegated (search @delegate) and which one are delegated to paul (search @delegate = paul)

Task paper is plain text so yes, @tag written outside this app are recognized as tag (i edit mine inside DevonthinkPro)

Hope this will answer to your questions


#3

In this case the second tag is ignored. If you type into TaskPaper you’ll see that it also isn’t syntax highlighted. Even if they had same exact value the second one would be ignored.

All tags that you enter using the @tagsyntax are namespaced in the data model by prepending data- to get the final attribute name. So there’s no possibility of conflict. @id(myownid) is stored as the attribute data-id.

Edit I need to look at the code a bit more before giving a full answer on this second question. I’ll answer in the github issue. There are some edge cases that I hadn’t expected, try to remember the exact history and logic. In anycase I don’t expect any changes to the logic, lots of scripts and themes rely on the current behavior.