This plugin allows you to create templates in Joplin and use them to create new notes and to-dos.
Templates
If you were already using the legacy version of templates, your templates will be automatically imported once you install the plugin. They will appear in an Imported Templates - dd/mm/yyyy
notebook. See the README
note in that notebook for more details.
Your existing templates will still be present in the templates directory but will be renamed from .md
to .md.old
. You can safely delete these old templates once you verify that they've been imported correctly in Joplin.
Create templates by creating a new note or to-do in any notebook that:
template
You can access the templates options in Tools
> Templates
.
Built in variables are inserted automatically, without interaction from you. For example, in the following template, the date will be automatically added:
Date: {{date}}
Hours:
Details:
The currently supported built in template variables are:
Variable | Description | Example |
---|---|---|
{{date}} |
Today's date | 2019-01-01 |
{{time}} |
Current time | 13:00 |
{{datetime}} |
Current date and time | 01/01/19 1:00 PM |
{{#custom_datetime}} |
Current date and/or time formatted based on a supplied string (using moment.js formatting) | {{#custom_datetime}}M d{{/custom_datetime}} |
{{bowm}} |
Date of the beginning of the week (when week starts on Monday) | |
{{bows}} |
Date of the beginning of the week (when week starts on Sunday) |
NOTE: All dates are formatted based on your Joplin settings in
General > Date Format
You can also define custom variables in your template that prompt you to enter a value when you use the template. For example in the following example the name and color variables will prompt you each time you use the template:
---
name: text
color: dropdown(Red, Yellow, Green)
---
Hi there, {{ name }}. Your favorite color is {{ color }}. This note/to-do was created on {{ datetime }}.
The currently supported custom variable types are:
Type | Example |
---|---|
text |
name: text |
number |
count: number |
boolean |
show_summary: boolean |
date |
meeting_date: date |
time |
meeting_time: time |
dropdown |
color: dropdown(Red, Yellow) |
Points to note
Handlebars
.You can also define a label
for each custom variable. Label is something that appears instead of the variable name in the variables input dialog. You can use the following syntax to do so.
---
name: text
project:
label: Select a project
type: dropdown(project 1, project 2, project 3)
show_summary:
label: Add summary in note?
type: boolean
---
Hi {{ name }},
This is a report for {{ project }}.
{{#if show_summary}}
## Summary
> Enter the summary here.
{{/if}}
Points to note
2 spaces
exactly. Don't use tabs for indentation otherwise it can result in errors.These are the variables that have a specific purpose other than being used in templates. Some of the important features of these special variables are
Currently there are two special variables.
Variable | Purpose | Example |
---|---|---|
template_title |
Title of the note/to-do created using this template. | template_title: Standup - {{ date }} |
template_tags |
Comma separated tags to be applied to the note/to-do created using this template. | template_tags: spec, {{ project }} |
template_notebook |
The ID of the target notebook for this template. Whenever a new note/to-do will be created by this template, it will be created in this target notebook. | template_notebook: 82d2384b025f44588e4d3851a1237028 |
Points to note
template_title
is not provided, the title of the template will be used as a fallback value.template_tags
doesn't exist already, it will be created.template_title
and template_tags
for custom variables. In general, please avoid defining custom variables with template_
prefix.Copy notebook ID
.template_tags
variable is used to apply those tags to the note the template is inserted in. However, you can disable using template_tags
while inserting templates from the plugin settings.Example of a template using special variables
---
project: dropdown(project 1, project 2)
template_title: Weekly Meet - {{ project }} - {{ date }}
template_tags: meeting notes, {{ project }}
---
## {{ template_title }}
This note contains the meeting minutes of the weekly meet held on {{ datetime }} for {{ project }}.
You can define the templates you use the most as default templates. Currently you can have two default templates. One for notes
and one for to-dos
. You can also assign keyboard shortcuts to these defaults, so that you can quickly create a new note/to-do with the respective default template.
The plugin also supports using notebooks to store templates instead of tags. You can start using notebooks to store your templates by going to the plugin settings and selecting Notebook
instead of Tag
.
Now, any note or todo placed in a notebook titled "Templates" will be considered a template.
See CHANGELOG.md.
You can support the development of this plugin through PayPal. Also, do consider supporting the development of the main Joplin app through the official donate page.
Contributions to this plugin are most welcome. Feel free to open a pull request or an issue. Make sure to use conventional commit messages if you're creating a pull request.