What's New in Exhibit 3.0

From SIMILE Widgets
Jump to: navigation, search


What's New in Exhibit 3.0?

Exhibit 3.0 offers a powerful, easy-to-use publishing framework for building large-scale, data-rich, interactive web pages.

Building on the success of Exhibit 2, the new version offers two modes:

  1. Exhibit 3.0 Scripted (rc1) for smaller in-browser data sets
  2. Exhibit 3.0 Staged (beta) built on Backstage, for much bigger server-based data sets

Highlights of the New Release

Exhibit 3.0 Scripted (rc1):

  • Browse thousands of items
  • New HTML5 configuration language, with backwards compatibility for prior configuration language
  • New localization system (no more 404's)
  • New history system (no more __history__.html)
  • Updated libraries, including jQuery
  • Removal of external or unconfigurable service dependencies within the core
  • Implements most core views and facets and some popular extension views
  • More developer friendly, including a new event-driven API, basic tests, and documentation
  • Persistence: Pick up where you left off browsing an Exhibit
  • Bookmarks: Share exactly what you see with others

Exhibit 3.0 Staged (beta2):

  • Scalability: Browse hundreds of thousands of items
  • Persistence: Pick up where you left off browsing an Exhibit
  • Export data in HTML + RDFa format

Choosing Between Exhibit 3.0 Scripted and Staged

This section explains some of the differences between the Scripted and Staged modes of Exhibit to help you choose which is right for you. Generally speaking, the size of your data set will determine whether you choose to use the Scripted or Staged mode of Exhibit 3.0.

Exhibit 3.0 Scripted: In-Browser Scripts Smaller data sets numbering a few dozen, a few hundred, or up to a thousand items can run in the browser using the Scripted mode of Exhibit. There is no set item limit for Scripted mode. If your data set has smaller items with few properties and short values, you may find Scripted mode handles a few thousand smaller items.

No programming is required beyond the basic HTML you use to author an Exhibit page.

Exhibit 3.0 Staged: Server-Based Larger data sets -- up to hundreds of thousands of items -- are better suited to Staged mode. Running Staged mode requires that you host the server software yourself or locate a provider who can host it for you.

Differences in Functionality: Scripted vs. Staged Mode

The Scripted and Staged modes share some of the same features. Differences in functionality are listed below. Differences in functionality between Scripted and Staged mode may affect your choice of which mode is best for your application.

Note: Features not listed here do not carry over from Scripted to Staged.


Exhibit 3.0 Staged includes the Tile View, but it will only show the first twenty items at a time. None of the controls for sorting fields, sort order, or grouping are available. A pagination feature is expected to be developed soon.


Exhibit 3.0 Staged implements the List Facet, but any facet value with a count of one will be omitted.

Lens Language

Exhibit 3.0 Staged implements a subset of the lens language and recognizes the following lens attributes:

  • if-exists
  • *-content
  • *-subcontent
  • *-style-content
  • *-style-subcontent

Expression Language

Some of the Exhibit expression language is implemented in Exhibit 3.0 Staged:

  • Forward segments (.)
  • Backward segments (!)
  • if
  • if-exists


Exhibit 3.0 Staged allows for subsets of the contents of its database to be grouped into collections, based on the following divisions:

  • All items (default)
  • Only items of one certain rdf:type

To learn more about Exhibit 3.0 Staged, see the Exhibit developer documentation on GitHub.

Feature Map: What's Supported in Exhibit 2 and Exhibit 3.0?

This section describes how features from Exhibit 2 are supported in Exhibit 3.0.

See the Feature Map to see if the features you currently use in Exhibit 2.x have been updated for Exhibit 3.0. This list will change over time, as more features are rewritten for Exhibit 3.0, so check back often.

For existing Exhibit users and developers, the following table compares the features supported in Exhibit 3.0 and the previous release, Exhibit 2.2.0. This list will be updated as new features are developed.

Some of the features are marked as "no plans to implement" which suggests members of the Exhibit community may want to develop and deploy them as Exhibit 3.0 extensions. They are not likely to be included in the core of Exhibit 3.0, but discussion is welcome. Join the conversation on the SIMILE Widgets mailing list.

General Notes for Exhibit 2 Users

The expression language remains the same between Exhibit 2 and Exhibit 3.0.

Once you've installed and set up the new Exhibit 3.0 scripts on your Web server, your existing exhibits should display without modification. See the notes below for some special considerations to keep in mind when you start using Exhibit 3.0.

New Exhibit 3.0 Release URL With Exhibit 2, you did not have to install a local set of Exhibit files if you called Exhibit from the simile-widgets.org site. The URL has been updated for Exhibit 3.0 Scripted: http://api.simile-widgets.org/exhibit/3.0.0rc1/exhibit-api.js. Alternatively, you can download and set up Exhibit 3.0 Scripted on your Web server instead. See the install instructions.

Note About Exhibit 3.0 Staged (beta) Exhibit 3.0 Staged allows for much larger data sets but does not support all the features from Exhibit 2 or even all the features from Exhibit 3.0 Scripted mode. See the list of differences in functionality between Scripted and Staged modes for more details.

Validate Your JSON Data First Exhibit 3.0 uses native browser JSON libraries that implement a much stricter implementation of the JSON specification. A one-off extension to upgrade JSON was added to the selection of Exhibit extensions. Otherwise, you may need to run your existing Exhibit JSON through JSONlint to re-qualify it for use with Exhibit 3.0

Change Your Exhibit Data Link Format Change <link rel="exhibit/data"/> to <link rel="exhibit-data"/>.

The former use, with (/), is deprecated and will cease to work in future versions.

Using Babel Babel is a data translation service. There are some important changes in this release to how Exhibit works with Babel.

Supply a URL: If you use Babel for data translation, you must supply a URL to Babel by appending "babel=<url>" to your exhibit-api.js script tag.

Babel Usage Note (Optional): If you rely on Babel (RDF/XML, N3, Excel, an Exhibit page, KML, JPEG, TSV importers), consider running Babel yourself, or download the transformed data if you don't need to actively transform the original data. Or you may want to consider maintaining the data in a format that doesn't depend on Babel. Babel may not be provided as a public service in the future.

Using jQuery If you're using jQuery, you may not need to load it separately.

Exhibit loads jQuery 1.7.1. It will not load it if jQuery is detected.

HTML5 If you're using HTML5 with Exhibit, you should update your configuration language to the HTML5-compatible version in order to maintain valid HTML5.

The Exhibit attribute-based configuration has changed for HTML5. A compatibility mode remains for Exhibits in XHTML files. HTML5 does not support XML namespaces, providing a new custom attribute mode in its stead. Moving from Exhibit 2.2.0 in XHTML to Exhibit 3.0 in HTML5 requires changing all attributes prefixed with ex: to be prefixed with data-ex- instead.

In addition, all capital letters within the attribute name should be converted to a hyphen and lower case, e.g., ex:itemTypes becomes data-ex-item-types. The HTML5 data attribute API treats capitalization differently during document processing and when attribute access occurs, necessitating the change to hyphenation.

See the Authoring section for more info on using Exhibit with HTML5.

Views: Toolbox Parameter In Exhibit 3.0, the semantics of the toolbox parameter for views (ex:showToolbox, or data-ex-show-toolbox for HTML5) have been unified. All views now have ex:showToolbox, a boolean, set to true by default. The toolbox is displayed by default, so you don’t need to hover with the mouse to reveal it.

A new parameter (ex:toolboxHoverReveal), a boolean, set to false by default, will restore the old behavior of hovering to see the toolbox. See the section on Views for more information.

New Control Panel A new component, the control panel, was added to Exhibit 3.0 to contain Exhibit-wide widgets, like the new Bookmarking widget.

History File You no longer need a __history__.html file to accompany your Exhibit files.

Your Exhibit Code Customizations If you wrote your own code to extend, augment, or supplant Exhibit 2 code, you almost certainly will have to re-examine how it operates for Exhibit 3.0.

See the developer documentation for more information on customizing and extending Exhibit 3.0.

Personal tools