Skip to content
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

Add tags for notes #299

Open
makayabou opened this issue Mar 6, 2019 · 32 comments
Open

Add tags for notes #299

makayabou opened this issue Mar 6, 2019 · 32 comments
Labels
bounty There is a bounty for this issue enhancement New feature or request needs discussion Need to clarify if and how we should implement this

Comments

@makayabou
Copy link

makayabou commented Mar 6, 2019

I know that in Nextcloud Notes I can use Categories that are subfolders,
but I would find it more convenient to have Tags.
I have this functionnality with QownNotes but it can't synchronize with Nextcloud Notes keeping tags.
I first started an issue on QownNotes (pbek/QOwnNotes#953) but here's what they answered:

@makayabou It appears that the Nextcloud notes app supports "categories", which is actually subdirectory, but does not support tags. Since tags are apparently in use and supported as a client-side feature for multiple clients of the Nextcloud notes app, lack of support for tags could be considered a design limitation in the notes app. Have you considered submitting a feature request to that project? The developers may have considered it redundant with categories, but if it is useful to the user base, they may want to know.
If it is implemented, it could be simply supported by the API using the "Get all notes" call, which returns to the client a list of notes and their attributes, which could be augmented to include a list of tags for each note (see Notes API 0.2). Support in QOwnNotes would be possible if, the developers are interested in adding it. Although it would require a few design changes in QOwnNotes to talk directly the the notes app, it would not require a separate request for each note to synchronize state.

What do you think of it ?


BountySource is no longer directly supported or endorsed by this repository. See #547 for more information. There is, however, an existing $100 open bounty on this issue.

@korelstar korelstar added the needs discussion Need to clarify if and how we should implement this label Mar 13, 2019
@korelstar
Copy link
Member

Yes, we decided to use categories (based on sub-folders), see #8. We also decided to realize only one type (i.e. categories OR tags) in order to keep the app simple.

However, I will leave this issue open in order to allow a discussion about this aspect. But I don't think that we will change the roadmap in this aspect soon.

@iSpeeX
Copy link

iSpeeX commented Apr 15, 2019

The subfolder/category-based method is very "rigid", the "tags" would be a lot more flexible and easy to use ! I mean, each of my notes could be in 2 or 3 categories (or tags)... Moreover, the integration with QOwnNotes is not full because of that, tags are the "modern categorisation method".

Is there any chance that you change your mind about that roadmap ?

@petitminion
Copy link

zotero use both method (tags and folder) and it's very usefull :D

@sunjam
Copy link

sunjam commented Sep 12, 2019

Screen Shot 2019-09-12 at 9 48 47 AM

Screen Shot 2019-09-12 at 9 48 33 AM

Tags are already possible when accessing a note as txt/md via the Files app.

Screen Shot 2019-09-12 at 9 49 29 AM

However, you cannot see or access those tags from inside the notes app itself. The only options you see pertaining to the note are Favorite, current Category and Delete.

Screen Shot 2019-09-12 at 9 50 06 AM

Perhaps tags could become accessible from the Notes app, similar to how categories can be defined. A combination of tags and nesting covers many use cases, plus is a default design I'm used to from Evernote.

Screen Shot 2019-09-12 at 9 50 23 AM
Screen Shot 2019-09-12 at 10 02 02 AM

@francuss
Copy link

francuss commented Nov 9, 2019

I tried to follow @makayabou suggestion to put a bounty on this issue, but:
1, I could not register to bountysource, it redirects me to CanWork. Should I register with CanWork instead?
2. How much is a reasonable bounty to get this issue solved, considering that developers do not seem to have much interest for this issue?
3. Also how Android could integrate with this? It seem in another thread @stefan-niedermann asked for API to do some integration, so perhaps solving this issue would mean also producing proper API.

Also, considering the huge amount of work involved in taking hundreds or thousands of notes, I would like to stress the importance of finding the single note you are searching, when you need it. If you are unable to find it, then the whole purpose of all your note taking work is wasted. The power to put multiple tags on a single note is critical in this sense.
Thanks for reading
best

@korelstar
Copy link
Member

  1. AFAIK you should be able to sign in with your GitHub account.
  2. I think it's about supply and demand. How much is it worth for you?
  3. Yes, extending the API is also part of this.

@korelstar korelstar added the feature request Requests for complete new features label Dec 14, 2019
@JadeVane
Copy link

I have the same request now. Categories is a very important feature to manage notes, but tags are more useful to me than categories, notes with several tags at the same time are easier to search and read, BTW, I do NOT think it will be not simple if Notes support labeling notes while categorizing them.

@g-work

This comment has been minimized.

@g-work
Copy link

g-work commented Feb 3, 2020

By the way: I totally support the request for tags. I don't think it's tags OR categories; they support different use-cases. The ability of tags to be assigned to multiple notes is very important for me (and others, I think).

@stefan-niedermann stefan-niedermann added the bounty There is a bounty for this issue label Feb 3, 2020
@jospoortvliet jospoortvliet changed the title Add tags for notes Add tags for notes [$50] Mar 25, 2020
@carbontracking

This comment has been minimized.

@stefan-niedermann
Copy link
Member

@carbontracking Please use GitHub reactions 👍 to show that you are affected by the same issue. Please don't comment if you have no new or relevant information to add.

As explained multiple times we want to keep a folder & files based approach to avoid a vendor lock-in and allow simple export of the notes as well as synchronizing them with every WebDAV client and the Nextcloud Desktop sync client.
Suggestions about how to enable tags in this scenario are welcome. While we all understamd the benefits of tags, a plain "I want this" will not solve this issue. Constructive proposals and ideas about how this kind of mapping might look like are welcome contributions, though.

@g-work
Copy link

g-work commented Dec 10, 2020

It's possible to add tags to files, so shouldn't it be possible to add tags to notes (which are basically files)? How are tags stored in the files app? Is there a database for them? Or are they directly attached to the files as some kind of metadata?

@stefan-niedermann
Copy link
Member

How are tags stored in the files app?

They are stored in the database, not as file meta data.

@rakta
Copy link

rakta commented Dec 30, 2020

How about storing #Tags in plain text and offering an interface which allows to filter notes by tags. This is done by Laverna, which also allows to format notes in markdown.

Lavernas UI has some nice features like clicking on a tag to see all notes with the same tag. See below a screenshot of the editor, you are free to try it in your own browser.

grafik

The strength of nextcloud is its file-based syncing capabilities using standard protocols. Using plain text tags does not require any complicated API and maintains maximum compatibility. Indexing of notes to search for tags is simply done by client side applications.

@stefan-niedermann
Copy link
Member

Now this is an interesting idea. Hashtags. This is definitely worth further investigation and while we can't store separate attributes like colors, we could use it theoretically for searching or displaying an alternative navigation structure.

@RedKage
Copy link

RedKage commented Feb 5, 2021

I understand that the goal is to have a simple structure to make exports easy.
I understand you want a single system, tags or categories for ease of use.

I am coming from Carnet, which is a separate app, and it supports both, so when I used the Notes app I got surprised there was no tag support. I understand the concerns why though.

Now, for the hashtags inside the text files, this would implies having to parse each file in order to extract the tags, in order to build a tag list. I don't think that's scalable with a large amount of files.
In the end you will want to put the tags somewhere else like in the database to increase performance and then that would break the ease of "exporting the notes easily" philosophy.

In the end I have no solutions, as the Note app is based on the filesystem we can't have a single Note in multiple locations. Maybe if we could make some symlinks from inside Nextcloud... then we could have a single Note in multiple locations. That sounds hackish anyway.

I think going with the Categorization instead of Tags here #8 was a mistake.

  • Because in practice, "having a simple structure to make exports easy" is not going to happen everyday, and it is still possible to export Notes with tags by just "flatifying" the tags into a folder structure, putting multiple copies of the Notes in the folders (giving a zip to the user).
  • Because in practice "the degraded UI because of the tags" is about changing the category dropdown selector into a multiple categories selector with a checkbox for each category. The rest of the UI would stay unchanged. It's actually simpler, because you can show tags on the left menu without any "subfolder" / tree concept.

@Anrock
Copy link

Anrock commented Feb 5, 2021

Now, for the hashtags inside the text files, this would implies having to parse each file in order to extract the tags, in order to build a tag list. I don't think that's scalable with a large amount of files.
In the end you will want to put the tags somewhere else like in the database to increase performance and then that would break the ease of "exporting the notes easily" philosophy.

It's possible to parse notes once, cache tags to db and then only reparse edited notes while keeping text tags in notes as is thus maintaining easily exported notes. So I don't see much problem in that.

@RedKage
Copy link

RedKage commented Feb 5, 2021

It's possible to parse notes once, cache tags to db and then only reparse edited notes while keeping text tags in notes as is thus maintaining easily exported notes. So I don't see much problem in that.

yes, that's what I wrote

In the end you will want to put the tags somewhere else like in the database to increase performance and then that would break the ease of "exporting the notes easily" philosophy.

@Anrock
Copy link

Anrock commented Feb 5, 2021

Can you elaborate on how app-specific db for cached breaks "exporting the notes easily"? It's really unclear to me.

@RedKage
Copy link

RedKage commented Feb 5, 2021

Can you elaborate on how app-specific db for cached breaks "exporting the notes easily"? It's really unclear to me.

It depends on how the exporting is done:

  • Either we are in a "folder" mindset, where the tags are seen as multiple categories, and then to export these you'd have to "flatify" the stucture and have duplicate notes. Reproducing a filesystem from the tags
  • Or we are in a real tag mindset where everything is flat, no folders, and then we can export easily just the notes, since the tags are inside each note in the form of a hashtag string. There is not even the need to export anything, it's right there in the Nextcloud folder

I actually like the 2nd option which is what you are proposing, but I am not sure this conforms to the discussion in #8 where people seem to want to have a folder structure representing their "tags"

@Anrock
Copy link

Anrock commented Feb 5, 2021

@RedKage I see now, thanks. Welp, my guess is that you can show the tag structure in sidebar, building it in runtime from cached data from db, especially since there is no straighforward way to have multitagged notes on real filesystem. So you can have plain and simple exporting and folder structure with tags.

@bnjbvr
Copy link

bnjbvr commented Feb 5, 2021

One idea that seemed worth throwing here: modern OS should all have links (soft or hard) these days, right? If so, you could consider creating the following structure, when exporting:

  • one directory that contains all the flat notes
  • then one directory per tag, each containing links to the files (of the flat note directory) that contain the tag

Of course, this only works if the export is a snapshot of the current database state; it's not possible to have something that would reflect changes to this folder structure over time (renaming, moving things around).

(bonus points for making a FUSE based on the notes' tags, so that it can actually reflect changes)

@Anrock
Copy link

Anrock commented Feb 5, 2021

@bnjbvr that's almost what @RedKage proposed as first possible solution. However you variant is even more complex in terms of final export artifact. Just copying seems more bulletproof and not copying at all is the simplest. If you're going to import notes somewhere else after export you're gonna do some manual work in any case so those complications aren't winning anything imo.

@boinappi
Copy link

Maybe take a look at how they mange their tags: https://github.com/pbek/QOwnNotes (sqlite, i guess)
They also have a browser extension, just saving links in a markdown. You can tag those links similar to this #299 (comment) apporach.
E.g. a saved link looks like: - [Timnit Gebru: Wie viel Ethik verträgt Google? | ZEIT ONLINE](https://www.zeit.de/digital/2021-02/google-ethik-timnit-gebru-technologie-forschung) #Soziales
Where #Soziales is the tag, beeing parsed by the browserextension.

@CyberFoxar
Copy link

Another appreach to tagging and handling note metadata might be the addition of a "frontmatter" section to the markdown files. Such sections are becoming increasingly common1 and would help standardize the format and solve a bit of the pain in adding tags inside the files themselves (and thus having to completely extend/change the markdown parser).
Not to mention that there's a wealth of readily available packages and parsers for frontmatter in yaml format that would (almost) transparently go before a markdown parser with minimal work required.

I still fully support the idea of parsing such frontmatter (and the tags therein) and putting them in an easier-to-search and easier-to-index format in a database somewhere else. This might be the biggest sticking point, as far as this feature goes, as well as adapting current Notes ui to handle this change.

Footnotes

  1. See: YAML frontmatter on Jekyll blog's, YAML frontmatter on obsidian, Dendron's summary of frontmatter feature and concepts

@cscherrNT
Copy link

I would argue that having tags as Hashtags #sometag is the most practical thing from a user stand point. It avoids having to awkwardly tag each note with some clickable interface. Obsidian also does this, and is IMHO the best note taking app available, doing everything right except being OSS.

Tags as hashtags would make shared note pool between nc notes and obsidian (or other apps with similar format) more usable.

@viktorix
Copy link

+1 on using tags in frontmatter like Obsidian. I'm importing notes from Obsidian, would be nice to have tags.

@cscherrNT
Copy link

I dindn't really think of frontmatter tags, but that would certainly be useful too. Personally, I prefer having #tags anywhere in my notes.

@ptandler
Copy link

Joplin uses frontmatter to export the tags (and other meta-information):

---
title: My title
updated: 2024-03-16 08:55:22Z
created: 2020-12-06 11:48:10Z
author: Peter Tandler
tags:
  - tag1
  - another tag
  - even more tags
---
Note content

@rochelmeyer
Copy link

Another vote for tags! They are essential. Would really appreciate seeing them in any further version of this app.

@TheNomad11
Copy link

Agree, although they are available, it is a bit hidden and cluncky, you have to click on "share" (dot menu in note title)

@joshtrichards joshtrichards changed the title Add tags for notes [$100] Add tags for notes Nov 12, 2024
@DAveShillito
Copy link

DAveShillito commented Nov 14, 2024

Thanks for the "Share" workaround @TheNomad11 I will give that a go.
I too came here to ask for tags, if that workaround works I shall give it a go, but it would be good if this were exposed in the UI in a more clear manner.

I have many notes, and the Categories are just not enough (IMHO).

I may have multiple Projects (which I place in a Projects Category), some of which use #Arduino's some use #3DPrint's some may be #Woodwork, and some all 3.
It would be so handy if I could tag them as such and easily find all related projects in the Notes UI.

Also the fact that changing categories cause the file to be moved has made linking to them more difficult in the past, and I seem to recall problems where embedded links to images were lost if I changed the category. A flat folder structure with tags would remove this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bounty There is a bounty for this issue enhancement New feature or request needs discussion Need to clarify if and how we should implement this
Projects
None yet
Development

No branches or pull requests