Technical Overview

Firedocs is a Mozilla Firefox extension. It is written in Javascript/XUL and features a rich set of components for working with local and remote documents.

Why another browser based editor?

The Firedocs project started with a particular focus: writing a Wysiwyg-XML-Editor with robust support for mixed xhtml and arbitrary xml based content types. The initial funding was provided in 2007 by the University of Zuerich who uses Apache Lenya to run its corporate website and to manage e-Learning content. The corresponding content types are loaded with custom markup and, after multiple server processing stages, get served out as xhtml. They needed an editor capable of editing xml documents based on the generated xhtml view.

There are editors out there that do that for some time, but all of them have significant drawbacks in terms of stability and integration/maintenance costs. You want a multi-platform solution that runs stable with large documents, has desktop integration, lets you re-use the server side configuration files you already have (xslt's and schema documents) and that gives your users true wysiwyg-editing without glitches. Firedocs is built from ground up to meet those requirements.

Firedocs also works as a html editor, but unless you have a complex server setup to deal with there other browser based editors (e.g. kupu, tinymce) that might better suit your needs.

Features

  • Custom html editor widget (no nsIEditor code involved)
  • Backtracing Wysiwyg-Xml-Editor
  • Validation Support (uses Jing - requires Java)
  • Built-in templating system
  • Efficient dom transaction sytem with unlimited undo
  • Formatted Copy & Paste from html
  • Atompub-based remote editing protocol with auto-discovery
  • Can be extended by writing Firefox Add-ons
  • more...

Exploring Firedocs

As noted, Firedocs is a XUL application. Your one stop source for XUL development is the Mozilla Developer Center. When starting with XUL, Setting up your extension development environment is of particular interest. There are also lots of tutorials on the web that should you get started in an afternoon or so.

Firedocs makes heavy use of the DOM standard (DOM ranges in particular), of XML and of XSLT. Make sure you at least skim though the corresponding specs before you start working with Firedocs.

(C) 2005-2008 Wired Inference, Inc.