Summary: Adds several new features to the templates plugin, fixes some existing bugs, and refactors existing code. New Plugin Features/Fixes: - Changes the templates editor in preferences to allow variables to be entered with `{{brackets}}`. Handles many contenteditable complexities to implement. - Better interaction for renaming and deleting of templates in the editor. - Changes tabbing behavior when using templates. Tabbing between variables now wraps around, and typing tab from outside a variable region highlights the closest region. - Prevents "Enter" key in the composer when inside a variable region, and strips all formatting/tags from within the region - this prevents major contenteditable issues that can result in inline CSS in the style of our variable regions, which will not be removed when sending. - Shows a warning when choosing a template if it will replace existing text in a draft. - Prevents invalid characters in template names (due to filenames, esp. on Windows), and shows an error message. Strips these characters from draft titles when making a template. - Fixes a bug where TemplateStore's initialization code was being called multiple times. New N1 code: - Several new methods in `DOMUtils` useful for working with contenteditable. - Implement some missing methods in `Editor` Refactor: - Major refactor/rewrite of template composer extension to use new DOMUtils methods and simplify the logic (while adding new functionality). Remaining issues: - `preferences-tempaltes.cjsx` and `template-editor.coffee` should be rewritten in ES6 for consistency - Need tests for new DOMUtils functions and for new Templates plugin code. Test Plan: manual, need to update specs Reviewers: evan, bengotow Reviewed By: evan, bengotow Subscribers: juan Differential Revision: https://phab.nylas.com/D2382 |
||
---|---|---|
.. | ||
assets | ||
lib | ||
spec | ||
stylesheets | ||
icon.png | ||
package.json | ||
README.md | ||
screenshot.png |
Composer Templates
Create templates you can use to pre-fill the N1 composer - never type the same email again! Templates live in the ~/.nylas/templates directory on your computer. Each template is an HTML file - the name of the file is the name of the template, and it's contents are the default message body.
If you include HTML <code> tags in your template, you can create
regions that you can jump between and fill easily.
Give <code> tags the var
class to mark them as template regions. Add
the empty
class to make them dark yellow. When you send your message, <code>
tags are always stripped so the recipient never sees any highlighting.
This example is a good starting point for plugins that want to extend the composer experience.

Install this plugin
-
Download and run N1
-
From the menu, select
Developer > Install a Plugin Manually...
The dialog will default to this examples directory. Just choose the package to install it!When you install packages, they're moved to
~/.nylas/packages
, and N1 runsapm install
on the command line to fetch dependencies listed in the package'spackage.json