The implementation uses / symbol as a nesting separator. I.e. tag/subtag is a nested tag, where tag is the parent tag and subtag is its child. Creating a tag named tag/subtag/subsubtag creates three tags, one for each level. The tags are associated using parent_id field.
In the app, viewing notes with a tag will also show all notes that are associated with any of the tag's descendant tags (same for the note count). Deleting a tag will also delete all its descendant tags.
In the desktop app the tags are shown nested just like the notebooks.
* Desktop: don't count completed to-dos in note counts when they are not shown
* Desktop: review comments for commit 0383dcc
* Desktop: fix remaining lint issues with commit 1fe4685
* Adding node counts for folders and tags
* Add unit tests
* Fix count update when the tag list for a note is updated
* Right align note counts and remove from the settings screen
* Folder note count calculation update to include descendants
* Update Setting.js
* Change count style and fix click on counts
* Fix tag/folder count update on delete/add note
* Review updates
* Update eslint config
* Applied linter to lib
* Applied eslint config to CliClient/app
* Removed prettier due to https://github.com/prettier/prettier/pull/4765
* First pass on test units
* Applied linter config to test units
* Applied eslint config to clipper
* Applied to plugin dir
* Applied to root of ElectronClient
* Applied on RN root
* Applied on CLI root
* Applied on Clipper root
* Applied config to tools
* test hook
* test hook
* test hook
* Added pre-commit hook
* Applied rule no-trailing-spaces
* Make sure root packages are installed when installing sub-dir
* Added doc