thegingerbloke edited this page Sep 16, 2011 · 1 revision

Plugins and complementary projects

The following projects have implemented – or can be used with – sqwidget.


A tiny, secure JavaScript micro-templating script. Tim lets you write simple templates that uses JavaScript’s familiar dot notation. You pass in a JavaScript object that contains all the relevant strings, and they are then substituted into the template.

Status: Stable. Used in production.


A simple method for creating a new JavaScript context in the browser, e.g. for loading external scripts into a page without affecting the global scope of the document. This is useful when there is a need to avoid collisions between otherwise conflicting scripts and to keep the global namespace clean.

Status: Beta.


A jQuery plugin for the creation and manipulation of iframe elements, without the need to load external documents into the iframe. This allows iframe documents and their contents to be manipulated in a similar manner to jQuery’s methods for DOM manipulation.

Status: Stable. Used in production on the MiShorts widget


CleanSlate sandboxes a widget from CSS in the host page, via the use of a reset stylesheet comprised solely of !important rules. This resets all CSS properties, for all HTML elements, back to sensible defaults.

Status: Beta. Would benefit from improvement in convenience for IE6 and IE7. Modified from the !important-based stylesheet used in the BBC World Service widget.


JavaScript jQuery plugin to manipulate !important rules for HTML elements in the DOM and inline or external stylesheets.

Combined with CleanSlate, this allows CSS manipulation that is sandboxed from styling in the host document.

Status: Stable. Methods for converting external stylesheets are still to come.


A low-level “lightbox” plugin, for the display of UI components, overlaid on top of the host web page.

Status: Stable. Used in production on the MiShorts widget. Further refinements being worked on.


A command-line Ruby tool for merging and minifying all the HTML, CSS, JavaScript and images used in developing a widget, to produce a single, compressed HTML file. This reduces the number of HTTP requests required to render a widget (potentially to just one request), and reduces the bandwidth transmitted over the wire to the bare minimum.

Status: pre-alpha