VSNotes icon indicating copy to clipboard operation
VSNotes copied to clipboard

Tags discussion

Open patleeman opened this issue 5 years ago • 8 comments

Tags as YAML front matter was an idea I had when VS Notes was originally a markdown note taking extension, but I'm not really in touch with how users are using VSNotes now.

It would be helpful for me if the community could help me understand how the tags feature is used.

  1. Do you use the tags feature?
  2. What do you think about the YAML frontmatter?
  3. Do you use a template to populate it or do you write it manually?
  4. What are your frustrations with how its set up?

Additionally I'd love to hear ideas and suggestions on ways we could improve tags.

patleeman avatar Jul 15 '19 21:07 patleeman

I used tags pretty heavily in the previous application that I used for note-taking: Bear. Having predominantly switched to VSNotes on the desktop, I find myself using tags less.

I think the fundamental problem with using it in VSNotes is that it's not as easy as it could be, and the fact that it needs to be at the top of the file (as far as I can tell) makes it more abrasive than it needs to be.

Tbh, I think that VSNotes would benefit tremendously from getting its inspiration of its tagging implementation from Bear. Bear's notes has a number of advantages:

  1. Tags are easy to create; anything with a # symbol followed by a word is now a tag in the system (#example). Multi-word tags are delimited by another # at the end (#example tag#).
  2. Tags are easy to nest: any / character now denotes parent/child relationships Example: #example/child or #example/child tag/okay# would make the following structure:
    - example
    	- child
    	- child tag
    		- okay
    
    This structure would then ideally be navigable in VSNotes' tree view.
  3. Tags can be used anywhere in the text; there is no need to put it at the beginning or end, it's just interpreted when parsing the text.
  4. (Optional) Tags can be auto-completed (which I loved); typing a hash and then another character would search through all of your current tags for the appropriate one, and you can add that tag into the current document easily in that way.
  5. (Optional) Tags can have their own custom icons; this makes navigating lists of tags based on what tag is given to a note much easier from the tree view. Bear also has logic to auto-detect common tag names and provide a default icon for it, making it even easier for people who want to minimally setup these things.

The way tags are implemented in Bear, folders are not needed (and are thus not supported), since you can make your own structure on-the-fly based on what tags you add to a document. Association of two notes between two structures is easy; if you want to add two deeply nested tags from different nested tag structures, you can just do it in the document itself, rather than manually creating folder structures. There's no need to actually create notes in separate folders in a robust tagging system if you don't want to, and would ultimately be what I would switch to if this came to VSNotes (one giant folder, letting tags do the heavy-lifting of creating structure).

I'm sure that there are things that I'm missing that might be advantages of the current system over what Bear has, but I'm not really seeing it from a user perspective. Regardless of whether or not you think these are good ideas, I'm very interested in seeing the tagging system in VSNotes improve!

macintacos avatar Jul 17 '19 19:07 macintacos

I too use tags a lot, hence the request for tag parent/child etc. The challenge with folders is that they are very restrictive to provide value information for what they contain. I use folders as a collection of material, more than just my notes, but any files, media, etc related to that. If I insert an image to the note, it is in the same folder, which leaves me with folders the name of a note and the note inside (kind of like an index.html). But using that for actually assigning information to the note is difficult.

Tags are very very flexible, I use them to allocate multiple tags to one note, covering area of life (work/personal), sub area (health/family/learning/home), but take it further into more specific elements (exact technology used, exact person name), I even use them for date structure (created, modified), and project status (waiting on someone, active, passed).

The tag system allows you to do anything you want in a consistent way. If you wanted to make things feel more native, then the custom icons could relate. So if I have a Date parent tag, then it automatically gets a calendar icon, as a predefined tag, but becomes more than a tag, though my end users usage is the same experience.

I can then do filtering with search, just based on the tag strings, for things such as status/active, size/large, date/last-activity/2018 to drill down to what I'm neglecting. Or if I'm working on a technology I can pull up all notes that have something on that alongside another technology tech/ansible, tech/k8s, tech/terraforms.

PhilipWhiteside avatar Aug 07 '19 07:08 PhilipWhiteside

I agree with everything said above; tags are very useful for searching and organization and can eliminate the need for folders (folders provide a one-to-many relationship but tags can provide many-to-many graphs instead).

Something I'd love to see in a note-taking organizer is the ability view all tagged notes concatenate together, sorted by most recently modified by default. You could scroll between them and edit them all inline, then search for another tag and see all the respective notes there as well (which may have some of the same notes). I use OneNote for this currently but have no way of tagging things; I'd switch completely if this were possible.

ryanwwest avatar Dec 06 '19 07:12 ryanwwest

Tags are also very important for me. I agree that YAML frontmatter makes each individual note a bit "heavy" so I would recommend a change in that, e.g. using simple #tag1, #tag2 within the files that will be captured by VSNotes. However, using # will trigger markdown formatting right? Maybe choose another character like jrnl.sh that uses @tag1 syntax? Or restrict tag capturing to reading either first or last line of each file, like so:

@tag1 @tag2

# Example of note written today

blah blah blah

Or:

# Example of note written today

blah blah blah

@tag1 @tag2

aadm avatar Feb 06 '20 11:02 aadm

@aadm if the parser is implemented correctly, the “#” character in markdown only has meaning if it’s at the beginning of a line and there is a space afterwards. Hence why having a syntax of #tag would work just fine (and is commonly used in other systems like Bear). The only reason why I wouldn’t want to use “@“ is because I’m used to TaskPaper syntax (and commonly mix that into my markdown notes documents), but it’s understandable if this extension went that route to clearly delineate tags’ meaning instead of going with the YAML front matter.

macintacos avatar Feb 06 '20 13:02 macintacos

@macintacos ok Julian then it's ok for me, I don't mind using either character, what I'm after is a much more compact tagging method.

aadm avatar Feb 06 '20 15:02 aadm

I'm very late to the party but here are my answers to the questions...

Do you use the tags feature?

Yes. It is the main reason I'm using VSNotes.

What do you think about the YAML frontmatter?

I think it should be the ultimate place to store all metadata related to a note. When exporting markdown files into other formats, these could come in very handy (e.g., Pandoc YAML metadata blocks). So, while I'm not against introducing the #tag format, I think the current implementation with YAML frontmatter should also stay (I guess, they can coexist).

Do you use a template to populate it or do you write it manually?

I use a template with YAML frontmatter.

What are your frustrations with how its set up?

Not much really, but auto-completion of tags in YAML frontmatter would be a great addition.

Additionally I'd love to hear ideas and suggestions on ways we could improve tags.

I have a couple of ideas in mind that would help my workflow quite a bit:

  1. In the Tags pane, show the YAML title whenever possible (if there is a title). This should be configurable.
  2. When the user Ctrl+clicks on a tag, move to that tag in the Tags pane and expand it.
  3. It would be good if it was possible to list the files with no tags.
  4. Internal linking using tags would also be perfect. For example [[#mytag]] would be parsed as an internal link that would behave like idea 2 above (go to the tag in Tags pane and expand it). So, one could easily refer to a tag from within a document.

canpolat avatar Jul 29 '20 21:07 canpolat

I would love to have #tag support. It would be amazing to sync my notes to mobile and have tags supported, but all apps I've tried don't support reading tags from frontmatter (only # style).

oldsj avatar Aug 31 '20 09:08 oldsj