roovo / obsidian-card-board

An Obsidian plugin to make working with tasks a pleasure (hopefully anyway).
MIT License
512 stars 21 forks source link

Support Dataview Metadata #51

Open darthmachina opened 3 years ago

darthmachina commented 3 years ago

It would be nice to be to tag other data on tasks (even custom), and with Dataview I think becoming the de facto standard I think supporting the inline field syntax would be cool to have. There are already a few fields that use @ syntax so not sure about what to do about those. Personally, I would want the option to use Dataview syntax for all task metadata as I use Dataview pretty extensively and it would be to be to query based on Due and Completed, etc.

I think as part of this it would be nice to have a section of the card dedicated to metadata (similar to how the Kanban plugin handles what they call "Linked Page Metadata". The mock-up includes Page which would be my solution for #4, although I don't like the name Page for it at the moment. Values should also support Markdown syntax, so bold, italics, wikilinks are clickable, etc.

Ideally anything that has the syntax [field:: value] would be picked up and displayed on the card. This would be either in the task itself or as an indented list item. The field text should be removed from the main text, and if the field was on an indented list item the list item should not be included in the notes if the field was the only thing on that line.

A nice-to-have feature (and maybe a separate issue), would be to have a board or global setting to have a list of Page-level Dataview fields that should be shown as well. Although I don't have any Page-level fields I would use at the moment.

Mock Up

image I can't figure out icons in the tool I use for mock-ups, so E = Edit and T = Trash. I'm not proposing those change at all

roovo commented 3 years ago

There is a discussion on the forum at the moment on a shared format to use for date formatting across task plugins that looks very much like it is tending towards using a dataview format for this (https://forum.obsidian.md/t/task-management-devs-define-a-shared-date-and-action-format/26464/73). This will be an initial move towards this :)

I'm not a dataview user so don't have personal experience of what you are after (yet), but am more than happy to consider.

Another thing that may be a possible thing to think about or watch in the area is that I am sure I saw somewhere something about being able to make dataview queries from other plugins (so there would be an inter-plugin API available to do this over). This could mean that there could be a new board type defined by a dataview query. Again more support for better dataview integration :)

darthmachina commented 3 years ago

I'll have to read that thread. Dataview is a pretty popular plugin, so it doesn't surprise me that they would default to that syntax unless they had a really good reason not to.

I was a Notion user for quite a while and I absolutely loved the database idea that they had, where pages that are part of the database automatically get the database properties added, and they can be filtered, linked together, etc. Pretty powerful. Dataview brings a lot of that in. I know there is already a lot of powerful stuff that can be done with its dataviewjs blocks, such as querying data and creating a dataset to pass to the Charts plugin API to create charts. That's only to expand. The idea of a Dataview Board is awesome. That's what I was hoping Kanban was when it came out.

I do have to solidify my use case a bit here, since I'm involved in the project now :). But basically it would be nice to have a place for more structured information displayed. The notes feature that you have now is a good place to put that, but structured information can lost in the actual notes.

The genesis of the not- level metadata is this:

A little bit of an edge case, but I also would not mind if we could have a special Tags:: note field (or even customizable) that is recognized as being tags and not just metadata. I have tags for "area of life" (personal, family, etc) and projects have a Tags:: field with those tags. Right now I'm also tagging each task in the project with the right area so that the card has it (and I have them colored). Would be cool if CardBoard could union the task tags and the note-level Tags:: field to produce the tag list that appears on the card.

Project:: and Tags:: are the two use cases that really come to mind for me right now.

approximate commented 6 months ago

Wanted to chime in here...

Note properties became a built-in feature of Obsidian, and it would be great if CardBoard could support them in the same way tags are currently supported. I can think of the following use cases:

I realize that the use cases above could be achieved with tags (I'd have to use note-level tags instead of properties), but tags are just a special case of note metadata, or, in other words, a default property -- why not support generic properties?

One a side note, there's a connected but different consideration here. Since note properties are by definition note-level (as opposed to task- or line-level), it limits their granularity somewhat, BUT there's one de-facto counterargument to that: conceptually Obsidian tags (being a default note property) are always note-level, but some plugins (Dataview, Tasks, CardBoard, etc) take that to a next level and recognize line- or task-level tags. Maybe this kind of support could also be expanded to other properties.

Hope this makes sense.

Last but not least, thank you very much for your awesome product!