I'm not posting prices here, because I have worked for small businesses before, and I realize that not everyone can pay a great deal. I want to encourage equitable licensing by dealing with you personally.

Writing Tinderbox Stretchtext Documents

The Tinderbox Stretchtext Writing system is loosely based on foundational code written by Anders Fagerjord for his award-winning paper, "Editing Stretchfilm," which was presented at the Association of Computer Machinery's 2005 Hypertext Conference in Salzburg, Austria. During the conference, Anders lamented that his paper, which was authored in Tinderbox, could not work as a generic template for stretchtext documents.

With Anders's blessing, I took his files and began an involved modification process which resulted in the system you see here. Although little of Anders remains in the system, the inspiration and power of his excellent document remains.

I have created this expanded system as a personal exercise, and I hope it succeeds in:

  • making my own stretchtext documents possible.
  • convincing others of the power of electronic documents.
  • encouraging others to use Tinderbox for academic writing.
  • inspiring people to care for their readers by creating intelligent, thorough, thoughtful, well-designed documents.

Although experienced users of Tinderbox will be more likely to understand this system quickly, the template code and note prototypes hide a lot of complexity. I hope the Tinderbox Stretchtext Writing System and adjoining tutorial will be accessible to novices as well.

The following page contains basic explanations of the basic components of this system as well as directions for authoring and publishing your stretchtext document. It assumes some basic knowledge of Tinderbox.

Note Types

Page text items represent an individual page (if on the top level) or a subheading in the document if they are the child of another Page Text note. They are the primary writing space within the Tinderbox Stretchtext Document System.

Expandable Paragraphs do not initially appear in the document. However, when the "include" directive is used to include the paragraph, a button will appear in the page text in place of the "include" export command. If you select the checkbox labeled includeTitleInButton, the text of the title will appear on the expanding button. With the default template, expandable paragraphs may be nested two-deep. With modification to the CSS, deeper levels of nesting can be possible.

Inline Expandable Quotation notes contain the text which will initially appear in an expandable quote. The context of the quote is stored in Prefix/Suffix notes. Always make sure there's no extra whitespace in these notes, or the formatting might be quite odd.

Prefix/Suffix notes contain the text which provides context for an Inline Expandable Quotation. In order to make this text appear before or after the quote in question, place this prefix/suffix note immediately before or after the expandable quote Note in the Outline view.

Marginal Notes are notes which can appear in the side of the document when a link is clicked. They can be used as ordinary marginal notes, but theey can also be used to annotate particular sections of a text. To include a marginal note in a page, make the marginal note a child of the page in question.

Marginal items can point to a place within an expandable paragraph, but the marginal note must be a child of a toplevel Page Text. Marginal Notes which come later in the outline order will stack on top of marginal notes which appear earlier in the outline order.

Marginal notes may be inserted into the document using the macro: do(margin, Note Name, link text to activate marginal note).

Including Images

Including figures is easy. Simply paste or drag an image into the Page Text note you're editing.

(note: currently, image-bearing notes must be placed under the "images" part of the outline, but you can use an Alias to position this Page Text anywhere in your collection of pages, as demonstrated here).

Alternately, you can include images in an expandable figure.

Publishing the Stretchtext

To publish a stretchtext, you first need to tell Tinderbox about the template files included in this package. configuring the template... 

Now that you have told Tinderbox about the template files, you need to export the stretchtext to a specific export folder found in the package which contained the Tinderbox Stretchtext file.

  1. Select File->Export as HTML. A file selection dialog will appear. Find the folder containing the Tinderbox Stretchtext file and select on the subfolder labeled "export."
  2. Click the Export button, and Tinderbox will transform your data into a web-publishable Stretchtext document.
  3. If you wish to publish your stretchtext to the web, simply upload the entire "export" folder to a web-accessible locaiton of your choice.


Since I wish to encourage further development of this system, I am licensing this tool under the GNU General Public License for non-profit or educational use. Basically, this means that you're free to use it and modify it as you wish, so long as you are willing to let others take a look at your modifications and borrow your changes when they ask.

If you're interested in using this tool on some commerce-related venture, contact me via the email below, and I'll be happy to come up with a satisfactory arrangement.

Customization, Further Development

I hope this basic description is enough to help you create interesting, intelligent documents with the Tinderbox Stretchtext Writing System.

As noted before, I created this system primarily for personal use. But I think it's useful enough to be of general interest. Since I'm currently a student at Cambridge University, I'm quite busy with my studies. However, I welcome your suggestions and comments. If you have ideas for making this system better or easier, do not hesitate to email me at jnm@rubberpaw.com.

If you wish guaranteed support or assistance, if you desire a custom design, or if you wish to customize the system for a particular purpose, I may be able to help you on a paid basis. I promise to be up-front about my availability before entering any agreements, and I'm confident that we can make something work. Consulting fees are an important way for me to pay for the server resources which host this project and ensure opportunity for further development.

I sincerely hope you find this tool simple, useful, and powerful. The satisfaction of others is a rich reward indeed.

J. Nathan Matias