A method for quickly adding export templates follows that for built-in Prototypes. A File menu item displays a sub-menu of built-in export templates that can be added to the current document.
If no templates already exist, a root-level container 'Templates' is added. The 'Templates' container's $OnAdd is set to $IsTemplate = true
. Also the built-in prototype 'HTML Template' is added to the existing built-in Prototypes container or the latter container is also added. If a 'Templates' and/or 'Prototypes' container exists these are used for any newly added notes instead of creating new containers.
From v8, the built-in Templates container is required to be a top-level note; an interior note names "templates" or "Templates" will not be adopted as the document's built-in templates container.
The offered built-in templates are:
- HTML Page. HTML5 page export, with includes. This inserts two templates in the form of a wrapper template, which is applied to the main note to export and which then recursively calls a per-item template to include all the main page's descendants. The item template is inserted as a child of the wrapper, emphasising the usage.
- OPML. OPML export, with includes. This inserts two templates in the form of a wrapper template which is applied to the main note to export and which then recursively calls a per-item template to include all the main page's descendants. The item template is inserted as a child of the wrapper, emphasising the usage.
- Scrivener. OPML export, with includes. This is actually the same code as for OPML, but offered to aid non-technical Scrivener users and to allow easy branching for any possible Scrivener-only variations.
Once templates are added the user can modify the template code.
In addition to the above, the users own selection of templates stored in the application support 'templates' folder are also available.
Note that a prototype that is also an export template (e.g. 'HTML Template', below) will not be listed in the Template pop-up menu. This is so that a note can inherit template status via a template without cluttering the template listing with prototypes.