Features

Obviel core

  • Decouple views from each other and from the server: URL-agnostic views, Javascript agnostic server.
  • deep jQuery integration with the render function: $('#foo').render(obj)
  • Declarative composite views (subviews).
  • Declarative setup of event handlers.
  • Support for long and short-lived views.

Hyperlinking

  • Obviel works with RESTful data structures on the server: hyperlinked JSON.
  • Supports bootstrapping single-page applications from a single URL; all the rest of the information can be retrieved through hyperlinks.

Templates for HTML generation

  • Loops, conditionals and variables, deliberately kept sweet and simple.
  • Sub-view rendering: Obviel views can be rendered directly from a template, making it very easy to compose complex UIs using Obviel views.
  • Internationalization support: mark up parts of your template so they can be extracted as message ids and be translated when the template renders.
  • Extensible with custom formatters and functions that adjust elements by DOM manipulation.
  • Support for client or server-side HTML generation.
  • Support for static HTML inclusion.
  • Pluggable system for client-side template languages, so that other client-side template languages can be plugged in.

Internationalization

  • Supports i18n of both plain JavaScript and Obviel templates.
  • Documented, gettext-style i18n workflow.

Obviel Forms

  • Powerful form framework built on basic Obviel views and JSON.
  • Forms load and save JSON directly, no HTML form decoding or generation on server, just work with JSON.
  • Widgets for textline, text, integer, float, decimal, boolean (checkbox), choice (drop-down), display, date, autocomplete, and more.
  • Client-side validation: instant error messages if the user ends the wrong data.
  • Server-side validation support for complex validation requirements that involve multiple fields.
  • Easily extensible with new widgets.
  • Powerful composite and repeating fields to construct complex nested forms out of simple widgets: fields that represent sub-objects and arrays of objects.
  • Integration with gettext i18n framework for custom translation of error messages.

Code

  • extensive unit test coverage
  • well-structured JavaScript code that eats its own dogfood: Obviel Forms built on Obviel core.
  • Obviel core is less than 8 kB of minified JavaScript code, Obviel forms library is 22 kB. gzipped you can include them both in less than 10 kB!

Want to know more? Go on to read the Obviel core manual.