I am Nishant Mittal. And I'll be working on re-implementing the template features as a plugin. (Template Plugin - #26 by nishantwrp). And we were discussing the way of storing templates. There are three main ways
- Storing these in a separate notebook (Template Plugin - #10 by nishantwrp)
- Templates spread throughout different notebooks. (separated by a different tag "template")
- The current way (Template Folder)
What do you all prefer? And why? Feel free to propose any other way.
Just posting my personal opinion. Here are the pros of different methods according to me.
Storing these in a separate notebook
- Easier access to templates for editing, viewing etc.
- Templates are also synchronized. So, you don't have to manually transfer all your templates across devices.
- Templates are not present as raw markdown files in some directory.
The current way (Template Folder)
- No extra template notebook. Templates are not mixed with your notes.
What way would you prefer?
- A separate notebook for templates
- Create templates in any notebook using a special tag
- Current way (template folder)
Tags would have the advantage that these templates could also be shared in a group via the Joplin Server using notebook sharing. If the desired templates are stored in a shared notebook.
I think I would be in favour of a notebook for templates since that helps with syncing and stuff but it would be really helpful if the book could be hidden or forced to the bottom of the list in some way (preferably hidden I think!)
You could identify the notebook with the same ID you use to designate it as the template notebook, then filter it from the list? (This might be a bit out of the scope of the project though).
But I think this would help solve some of the problems people have with the notebook idea since they want it out of sight!
I have been out of the loop lately, so my apologies if this debate is long settled.
My broader thought is that - maybe it's worthwhile for Joplin to have a set of "reserved" tags for situations like this (i.e.
<Joplin:Template> or whatnot) that define type.
From the UX perspective, the templates plugin would by default save new templates in a normal folder called "Templates" so that a normal user doesn't have to think, but it would also apply the
<Joplin:Template> tag at the same time. Then, that tag is what would really designate it a Template, so advanced users can move it to wherever they want without issue and there isn't a special way of handling those notes. Users would also be able to nest / organize templates within the initial folder.
(An edge case that I think can be ignored for now: moving a note into the default Templates folder wouldn't do anything, but your plugin could scan that folder to check for new additions if that was a problem).
(Also, I feel like @mablin7 ended up settling on a similar idea for the Kanban plugin, but I cannot remember the final verdict)
well explained and the door open to
Hmm, now the question is. Is there a way to block some tag?
No, you can't reserve tags or prevent them from being used on notes.
But I think uxamanda's approach is good. First put all templates in a template folder and tag them with
I think this would have the following advantages:
- Templates can be shared via the Joplin server
- If you have a lot of templates, they can be better organised or divided into the projects folders
- If it were also possible to start the template by right-clicking on the note, I think that would be a great solution. Especially if the templates are in the project folder and the note is then also created there.
In my opinion working only with a template folder is a dead end for flexibility.
I think in this case it would be ok if it wasn't reserved per se. If a user used that tag but didn't have the plugin installed, nothing special would happen. If they added the tag on their own with the plugin installed, it would automatically make the note into a template.
This tagging system is how the Persistent Editor Layout plugin works. I can add a
layout:viewer tag to any note and it works. If I delete the plugin, my note still has the tag, but the tag no longer does anything fancy.
The approach seems good to me too. One more doubt for a normal user how does he know he has to apply a tag when creating a template in templates notebook or in general? Doesn't the UX become a little ambiguous.
Maybe we can just let all the notes in the templates notebook be considered the templates. But while fetching the templates we can include the ones with a tag say
That sounds like a good solution to me, you can also include a menu item for when you right click on notes, something like "convert to template", which would simply tag the note.