The File menu has a sub-menu listing built-in prototypes. These are a series of prototypes pre-configured for quick use. On first addition of one or more of these predefined prototypes to a TBX, Tinderbox adds a root-level container called 'Prototypes'. After the first addition, any other built-in prototypes added are put in the same container.
The built-in types only use system attributes for their customisations, though the user can further customise the basic prototype with user attribute once added to a TBX. The sub-menu is disabled in read-only documents.
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.
The offered prototypes are:
- Code. The setting same as HTML Template except that $IsTemplate remains as the default false. Use for things like storing long actions such as deeply nested if() statements, or for command line code for use with runCommand. $NoSpelling is set to true. $SmartQuotes is set to false. $Ziplinks is set to false (v8.6.0).
- Dashboard. Preconfigured for map dashboard use. The prototype configures the 3 subtitle attributes and $TitleOpacity. $NameAlignment is set to "center". $Subtitle is given a specimen value of '42' to aid initial subtitle display/configuration.
- Event. This has $StartDate and $EndDate as Displayed Attributes;$DueDate and $TimelineBand are also included. The $Badge is set to 'clock' and $Color is 'muted red'. A $HoverExpression is set to show $StartDate (and $EndDate if set).No data is shown if $StartDate is not set.
- Exploded Notes. This is added automatically to the child container of an exploded note. In order to allow customisation before first use, this prototype can be added to a document from this menu without first invoking an Explode operation.
- Imported From Evernote. Applied to any note generated by a Evernote watched folder.
- Imported From Finder. Applied to any note generated by a Finder watched folder.
- Imported from Notes. Applied to any note generated by a Notes watched folder.
- Imported From DEVONthink. Applied to any note generated by a DEVONthink watched group. From v8.5.0, DEVONthink import uses a dedicated built-in prototype (as with watched DEVONthink folders), rather than setting Displayed Attributes directly. This allows customisation of Tinderbox's behaviour when importing from DEVONthink v3. From v8.6.0, $Ziplinks is set to false.
- Imported From Tot. From v8.6.0, applied to any note generated by watching the Tot application. This sets $Tot and $ReadOnly as Displayed Attributes. From v8.7.0, the prototype no longer sets $TextFont.
- HTML. This has a $Badge 'tools' and $Color of 'lighter black'. HTML paragraph and first/indented paragraph start/end values are set to nothing, paragraph spacing is off, $IsTemplate is true. $TextFont is set to a monospaced font 'Andale Mono'. $AutomaticIndent is set to false. $NoSpelling is set to true. Prior to v8.1.1, this was called HTML Template: existing files are unaffected. The change is in name only and not function. Although this prototype has the $IsTemplate flag set, app dialogs (correctly) do not list it as an available template. $Ziplinks is set to false (v8.6.0).
- Markdown. Allows notes to use Markdown, for local preview or export, without further fiddling with scripts post-export. The prototype presets $HTMLPreviewCommand to use a Markdown distribution inside the Tinderbox app although other builds or different render scrips can be user-configured. $HTMLParagraphStart and $HTMLParagraphEnd to "" (i.e. no code string) in order to eliminate unwanted paragraph markup tags. From v8.6.0, $Ziplinks is set to false.
- Person. The main items here are to add some of the 'People' group of system attributes as Displayed Attributes: $Email, $FullName, $Organization, $Telephone, $Twitter. $Address and $URL (pre-v7 versions also included now defunct $AIM). The $Badge is set to 'person' and $Color is 'green'. A $HoverExpression is set to show $Company, $Email, and $Telephone values.
- Places. Sets $Address, $FormattedAddress, $Latitude and $Longitude.
- Reference. Supports Bookends integration this adds a number of Displayed Attributes mainly from the References group of system attributes. From v8.9.2, theis prototype includes $URL as a displayed attribute as well as $ReferenceURL. $URL holds a the URL to the references in the reference manager, $ReferenceURL holds the URL of the source if it has one.
- Task. This has $DueDate and $Checked as Displayed Attributes. The $Badge is set to 'calendar' and $Color is 'cool grey'. $Shape is 'left tag'. The $DisplayExpression displays the number of child items (if any).
The prototypes of watched notes specify that watched notes are imported with a $TextBackgroundColor of white, even if using dark styles in Tinderbox, since external documents are most likely compatible with light background colours.
There is nothing stopping the user from further modifying these prototypes once they are in a TBX, for instance by adding user attributes to the Displayed Attributes, etc.
The TB-default-created "Prototypes" container is set with $OnAdd of $IsPrototype=true
to ensure that any child notes added by the user as automatically set as prototypes. The container is also set with $HTMLDontExport as true
and $HTMLExportChildren as false
. That change ensures that neither the container or its content get exported as this is usually the desired condition.
To store user defined prototypes for easy re-use, the best method is to make a TBX holding just the prototypes (and any necessary user attributes). Place this file in the Templates folder. From there the document can easily be opened to copy across individual prototype notes. Note however, that if the prototype uses any user attributes these must exist in the file to which the note is being copied (the built-in prototypes use only system attributes in their customisation).
Adding a built-in Template will cause this container to be added, in order to hold the HTML Template prototype needed for the templates.