Tinderbox Forum

Updates for v7.2.0



DEVONthink Office Pro: When an item is imported to Tinderbox from DEVONthink Office Pro 2.9.15 or later, Tinderbox imports the DEVONthink Creation time as $SourceCreated and the DEVONthink Modification time as $SourceModified. OnAdd actions are applied to each item of a multiple-item drag. Multiple-item drags are now handled without adding unwanted empty notes.


Extensive revisions help Tinderbox get more work done by using your Macintosh more efficiently and avoiding conflicts between separate tasks.

Edicts will no longer run at the same time as agents.

The internal design of computed attributes — attributes like $WordCount and $SiblingOrder that are computed from the properties of each note — has been changed substantially in an effort to address intermittent conflicts between Tinderbox threads. This may pose a variety of performance issues.

Several data race conditions have been resolved, most notably in handling trees, updating progress bars, in tracking shared value objects, and in disposing of unused values.


A new built-in prototype Markdown allows notes to use Markdown in place of native Tinderbox markup.

The new $HTMLPreviewCommand now permits you to use Markdown syntax in your Tinderbox notes, and to either preview the formatted output or to export to HTML whenever you like.

To customize the appearance of Markdown previews, you may edit the CSS stylesheet styles.css found in the Markdown folder of the Tinderbox support folder.


When importing from DevonThink, items that have text but not styled text now import the text.

Email message (.eml) files are now imported.

RIS reference import (and option-drags from Bookends) now extract the reference’s abstract, if present, and place it in text of the imported note.

RIS references from BibDesk are now handled appropriately. Bibdesk drags include two distinct text items, only the first of which contains a payload. As a result, dragging RIS from Bibdesk generated two Tinderbox notes, the expected reference and an empty note named “New.” The unwanted note is no longer created.

OmniFocus import has been greatly improved. We import the correct number of notes, obtain their omnifocus:/ urls, and set their prototype to Task. OmniFocus import now imports the task’s key dates: Defer Until becomes $StartDate, Due becomes $DueDate, and Completed becomes $EndDate. If a task was completed before the present time, the note is marked as $Checked. If the task has a note, the text of the note is placed in the Tinderbox note’s text. Unspecified dates are now treated as never rather than now.


When displaying the text of a composite or a multiple selection, each note is labelled. Formerly, the first note was not labelled.

The subscript and superscript commands in Format ▸ Font ▸ Baseline now reduce the font size of the selected text by 25%.

Format ▸ Style ▸ Standard Font now tries to respect passages that are bold or italic. It changes the font family to the note’s default font family, using the note’s text size.

When the text pane becomes too small to be practical, it once again fades. Changing the selection no longer reopens a closed text pane.

When a text selection is dragged from Safari into the Tinderbox text pane, Tinderbox records the source URL in the note’s $URL attribute. If the note already has a $URL value, however, it will not be changed.


Tinderbox is again compatible with macOS 10.9.

Browse Links

The URL field now displays the entire URL as a tooltip, and also allows additional space.

When a text link is selected, the text pane scrolls to make the link anchor visible and the link anchor is temporarily highlighted.


Large documents with numerous aliases will load a bit more quickly because the Hypertext class no longer maintains duplicate lists of notes.

Changes in protocol for deleting nodes and associated changes in marking documents as being in the process of closing improve stability when closing complex documents, especially documents with numerous agents.

The contextual menu for the key attributes table gains an additional choice, Evaluate. The current value of the key attribute will be evaluated and replaced by the result.

The suggested values of $Shape are pre-populated with the standard shape names. In the key attributes table, $Shape will always have a suitable pulldown menu and will offer suitable autocompletions.

If a built-in composite is added to a document in which the default value of $NeverComposite is true, the components of the built-in composite have $NeverComposite set to false. Presumably, if you’re adding a composite, you want it to be a composite.

If we are not searching text, Tinderbox no longer attempts to provide context for the Find result in the text we are not searching.

In the key attributes table, font attributes now have a button for choosing the font, making it easier to discover that fonts can be changed here.

When a new Composites container is added to the document, its initial OnAdd action is now $NeverComposite=false;

File ▸ Export ▸ As HTML, As Text, and As Outline are no longer unavailable from Preview and HTML panes.

Document Settings:Map now allows you to set the default texture. The new Texture popup menu button is initialized to “none” when no $Fill texture is selected.

Full Screen Split View: Tinderbox and Storyspace now support full screen split view. Press and hold the green “full screen” button in the main window’s upper left-hand corner; the window will shrink to permit you to select the right or the left half of the screen.

Composites: to avoid confusion, Notes ▸ Create Composite has been renamed Notes ▸ Add Composite. If no composites are available to be instantiated, this menu item is now disabled.

Get Info: The search box in the Attributes panel no longer automatically selects a completion if only a single completion is possible. Though only one completion is possible, the user might have changed her mind, or might have mistyped the intended attribute.

When Tinderbox recognizes a registration code, it celebrates more emphatically to make its gratitude clearer. In the past, some users failed to notice the change.

Key Attributes Table: improved alignment between attribute label and values

HTML Export

and now always operate on the original note, even when this is an alias. Aliases share their text with the original notes.

The export element Tinderbox Help again returns the current document’s name.

An agent gathers a list of notes, and wants to use to create a list of those notes. This seems useful, but if the agent doesn’t export a copy of its children, would export links to pages that don’t exist. A new solution: if appears in a note which does not export its own children, it instead links to the original of each child.

$HTMLLinkExtension is now respected by , help/release_notes/7_2_0.html, and .

HTML Preview and Export: A new attribute, $HTMLPreviewCommand, allows you to pass the text of a note to an external script in place of using Tinderbox’s text markup. If not empty, ^text(7.2.0,):: text tries to include itself passes the unprocessed text of the note to the script in $HTMLPreviewCommand instead of processing the text itself. This allows you to choose your preferred flavor of Markup or any other markup processor. Though primarily intended for use with the preview pane, this mechanism is also used for HTML Export.

Markdown: If your copy of markdown is installed, say, in /usr/local/bin/markdown.pl, any note that has a $HTMLPreviewCommand of /usr/local/bin/markdown.pl will be processed with Markdown.


The document setting If Note Name Is Too Long: shrink font now calculates the font size properly.

Tinderbox’s approach to scaling image adornments has changed. The image is now scaled to that it always fills the adornment frame, and is then cropped as necessary if the adornment’s aspect ratio differs from the aspect ration of the original image.

When dropping multiple images into a map, the image adorments are placed more appropriately.

If an alias is selected, View ▸ Tab ▸ New Tab will open a new tab on the original note of the alias. Previously, this option was disabled when the selected note was an alias. Since aliases cannot have children, it is pointless to open a map of their interior, but it may sometimes be handy to open a map of the interior of a container for which we have an alias.

The map view prototype tab no longer clips descenders of the prototype name at standard magnification.

The command Edit ▸ Create Alias frequently created unwanted composites of aliases, especially when used when several notes were selected. The aliases are now placed in empty parts of the map, and the view automatically scrolls to place the first alias in view.

The contextual menu for items in map view now contains a Shape submenu.


Moving the pane splitter promptly updates the internal geometry of separator titles.

If a note is outdented in a hoisted outline, so that it no longer falls inside the section of the outline being viewed, Tinderbox now removes the note’s view from the outline.


The popup values menu in the Quickstamp inspector now functions as expected when the text field does not have the keyboard focus. Formerly, it was necessary to select the value field in order for the popup menu to take effect.

The popup values menu will now show up to 199 distinct values.



OnRemove: Immediately before a note is deleted, the OnRemove action of its parent container is performed. If the note lay on an adornment, the adornment’s OnRemove action is performed. In the OnRemove action, this is bound to the note that is about to be deleted.

$OnAdd formerly did not affect adornments. Actions are now sufficiently expressive that we can allow this; use a conditional action if you want to avoid changing adornments in OnAdd.

Queries: Queries and other expressions do not require and should not have a closing semicolon. The semicolon separates multiple actions; on might changes several facets on several different notes in an action, but a queries must be either true or false and cannot be a list of things. Still, it is easy to add an unwanted semicolon at the end of a query

Tinderbox now ignores the semicolon. Formerly, this was parsed as

which is not very useful.

The system attribute $Color2 has been renamed $AccentColor. The old name will continue as a synonym, but the $AccentColor is preferred.

$MapBackgroundColor2 becomes $MapBackgroundAccentColor. The former name remains, but is deprecated.

The format() operator failed to assert that its result was a string. As a result, some string operations applied to the results of the format() operator returned incorrect results.

Tinderbox no longer flags some valid actions as errors — notably, removing an attribute’s value is no longer flagged.

The result of evaluating an attribute that does not exist is now false. Previously, evaluating an attribute that does not exist returned the attribute name.

.replace now work correctly with Unicode. Previously, replacing characters with characters of different width could create invalid strings.


If an agent was created inside a container, and if the container’s OnAdd expression sets $DisplayExpression (or select additional attributes), the OnAdd expression failed to take effect. Other actions (such as setting $Color) were effective, and the action behaved normally when moving an agent into the container from another location.

When editing agent queries, autocomplete is now smart enough to avoid suggesting == as an autocompletion of !=.

Attribute Browser

When browsing numeric attributes in the attribute browser, notes that were within 0.5% of the maximum of the previous bin were placed in the wrong bin.

The configuration popups of the attribute browser mishandled ⌘-delete, passing it to the attribute browser and deleting the selected not rather than deleting the text to the start of the text field.

Badges: Missing badge names were mistaken for emoticons and drawn as text.


Help ▸ Tinderbox Forum links to the new Tinderbox forum

Help: with regard to export templates, clarified the distinction between this and current.

HTML Export

failed to initially bind that to the note referred to by this, and so some expressions of the form failed to find any notes.


Addressed a crash when dragging a DEVONthink .webarchive item into Tinderbox.


The Tinderbox Inspector’s Agents and Rules pane will update its edict update time immediately after edicts are run, without requiring a manual refresh.

Improved layout of Links inspector, moving the action menu to the upper right-hand corner.

Selecting a new attribute in the system attribute inspector immediately updates the default value.

In the System Attributes and User Attributes pane, the behavior of the “Key Attribute For Selected Notes” checkbox has changed. If some selected notes have this key attribute and others do not, the checkbox will initially be unchecked. Clicking the checkbox will assign this key attribute for all selected notes. Clicking it again will remove this key attribute for all selected notes.

The System Attribute Inspector failed to update the visibility of the Suggested Values field after selecting an attribute by using the search field.

The System Attribute Inspector reset its selection incorrectly after updating the selected attribute’s default value.

Revised layout of the Document Inspctor to eliminate unsightly overhang of “Suggested” values field in System and User attribute inspector panes.

When a new attribute is created, or when the type of an existing attribute is changed, the default value of that attribute is now reset to a conventional value. For example, the default value for a new numerical attribute is 0, and the default value for a new Boolean attribute is false.

When a user attribute is renamed in the Document Inspector, the values of the old attribute are moved to the new attribute, and key attributes referring to the new attribute are updated to use the new attribute.


Image adornments bequeathed to new instances of a prototype failed to clone their images and were created as plain adornments.


Tinderbox could confuse itself when pasting an alias into a new container, because the bookkeeping semantics of CeresProxyDeleter were incorrectly returning the hidden proxy rather than the newly-created alias copy.

When a note is copied and pasted, the newly-created note has $Created and $Modified set to the time it was created. Formerly, the pasted note retained the $Created and $Modified values of the original note.

1 Like