[whatwg] Verbosio 'template DOM' - breaking the rules for a reason

Over the last six months, I've quietly toiled away at an alternate DOM
implementation for my Verbosio editing project.  (Verbosio is a project for
building a prototype XML editor, with XML languages supported as
Firefox-like add-ons.)  I would have preferred to use Mozilla's native DOM
or a pre-existing DOM implementation like domjs or envjs, but unfortunately
I felt that these would not meet my requirements - shadow content adjacent
to the owning content, XML entity support and undo history management.  I
also felt that I could not at the time easily adapt any of them to my
needs.  (I'm aware of work ongoing in shadow content and undo history, but
these specifications and implementations aren't mature yet.)

So, being the mad scientist that I am, I built my own "template DOM" from
scratch.  It's nowhere near compliance with the DOM Living Standard (
http://dom.spec.whatwg.org/ ), nor do I intend it to be.  I'll be using my
template DOM in parallel with the Mozilla DOM - the former only for
managing XML templates and XML entity references in Verbosio, the latter
for rendering those templates and for ordinary DOM work.

In particular, I've started a few wiki documents on my project's website
where I explain what's supported, what's not supported, and why:
https://sourceforge.net/p/verbosio/templates/wiki/DOM/
https://sourceforge.net/p/verbosio/templates/wiki/Infrastructure/
https://sourceforge.net/p/verbosio/templates/wiki/Build/

Currently, my Jasmine testing framework reports over 900 tests - most of
which I'm certain the current DOM test suites already cover.  The remaining
tests are specific to my implementation and would likely not apply to other
existing DOM implementations.

In terms of merging my own work or ideas with other DOM implementations and
specifications - I'm certainly willing to consider it, but I need this
template DOM to work in my Verbosio editing project first.

I'm posting to this mailing list primarily as a heads-up, to show where I'm
going in the short term and perhaps to see if some of my approaches and
algorithms could be useful to others in this space.  The project's code is
available under the Mozilla Public License version 2.

Alex Vincent
Hayward, CA, U.S.A.
Planet Earth, Milky Way Galaxy, the Universe (roughly)

-- 
"The first step in confirming there is a bug in someone else's work is
confirming there are no bugs in your own."
-- Alexander J. Vincent, June 30, 2001

Received on Saturday, 27 October 2012 04:58:40 UTC