Dynamic Layout Markup Language

Contact

mail@internetcommons.ca

Search


Custodians:
 You are on the home page of dlml.internetcommons.ca

Dynamic Layout Markup Language - DLML **

October 5, 2013 - Thankfully, angularjs (by Google) has achieved everything we wanted for the foundation of this project, and more. So we will abandon this project in favour of building a library of re-usable objects on top of AngularJS. See mustertools.net

March 16, 2013 - Note that the demo is currently being updated - meaning it's temporarily broken! ** - Henrik

A project of bechmann.ca

posted February 18, 2009

This project is currently in prototype. The documentation is just a stub. For a discussion join the dlml email list.

DLML - the language specification

Dynamic Layout Markup Language is a small xml grammar for embedding dynamic content in (X)HTML documents. The language consists of four elements:

  • module
  • widget
  • settings
  • marker (reserved)

We implement the grammar with an xml namespace, supported (sort of) by Internet Explorer, and interpreted as Unknown or Generic elements by Chrome, Safari, and Firefox.

  • <dl:module></dl:module>
  • <dl:widget></dl:widget>
  • <dl:settings></dl:settings>
  • <dl:marker></dl:marker>

dl:widget is a placeholder for object code and html, and can contain static content (html) elements.

dl:settings are typed collections of attributes, and can be children of widget or settings elements. All dlml elements can have attributes, as defined (mostly) by modules. These together constitute the attribute tree design pattern, which is used as the declarative method of specifying the dynamic behaviour of html layout elements.

The implementation specification of dlml places heavy reliance on several key design patterns: the widget hierarchy pattern, the attribute tree pattern, and the html-markup+javascript-object (widget) pairing pattern.

see dlml grammar.

Our implementation - Muster Widgets (codename "Gargoyle")

dlml is implemented through javascript modules that contain prototype objects. These prototype objects include the module object itself (a singleton memory object), a platform dl:widget (which can have multiple instances) and one or more dl:widget types contained by platform dl:widget which behave and interact in interesting ways. dl:widget instances insert html in the document object model, and this html is dynamically linked to, and paired with, javascript objects.

See demo page

Our extension implementation

We are working on implementing a number of widgets, beginning with a menuing system.

Current plans for widgets:

Tabs (including Accordions), Outlines, Menus, Windows, Trays (configurable listings), Viewports, Overlays, Tools (Datepicker, Slider, Validator, Tooltips, Button with dropdown), Charts, Maps, Editor.

Planned Functional support:

- drag, drop, sort, select, ajax, resize, expose, sync, transfer


hosted by webhosting.bechmann.ca | powered by pmwiki-2.2.78
Content last modified on August 13, 2015, at 10:47 AM EST