MasterView rails-optimized (x)html friendly template engine

MasterView is a rails-optimized (x)html friendly template engine plugin
that
provides another option to the existing rails view templates (rhtml and
rxml). The main idea is to provide a template engine that would provide
all
the power of layouts, partials, and rails helpers but still be
editable/styleable in a WYSIWYG editor. It was also a major goal that
the
syntax of these attribute directives be very similar to rails helpers so
that one could intuitively start using MasterView with little learning
curve
other than knowing rails. MasterView was inspired by Amrita, Kwartz,
Tapestry, Zope/PHP TAL, Liquid, and Web Objects but designed with a
fresh
approach and specifically targetted for rails users.

Release 0.3.1 was a maintenance release addressing an issue with ruby
1.8.5(wrong number of arguments 1 for 2 during scaffold generation),
fixing a
problem with the deprecated/directive_base used for custom directives,
updating a few out of date docs, and accomodating a change to the API of
the
Rails 1.2 generator.

Release 0.3.0 was a major release for MasterView with an emphasis on
refactoring and simplifying the API for building directives. A DSL
syntax
was chosen to greatly simplify the creation of directives to both help
the
core team with directive development as to also enable developers to
create
their own custom directives easily. MasterView has been constructed to
allow
directives to be shared amongst the community and this refactoring will
enable custom development. To further enhance sharing and prevent
collisions, this release introduces custom namespaces to the directives
allowing users to create their own namespaces to prevent conflict.
Namespaces as well as many other metadata about directives can now be
configured at both the app-level and installation-level providing
flexibility.

**UPGRADE CONSIDERATIONS: (for MasterView deployments that have created
custom directives)
default namespace of extensions directives changed from mv: to mvx:
(custom directive default namespace)
upgrade any user created custom directives to use new directive API
(see
release notes)

Video
A short video which demos the basic operation is available at
demo_shorthttp://masterview.org/videos/masterview_quick_start.html

Screenshots and illustrations
http://masterview.org/media_list.html

MasterView is released under MIT open source licensing.

Main site: http://masterview.org/
Rubyforge Project site: http://rubyforge.org/projects/masterview

Goals

  • Create/extend a template engine for rails that would be XHTML
    friendly and thus could be edited/styled with a WYSIWYG HTML editor
    even
    late in development without breaking template.

  • Keep it simple. DRY. No extra config files, simple syntax with ruby
    flavor.

  • Design it specifically for ruby and rails. Use the full power and
    not be limited in its capabilities over what can be done with ERb
    (rhtml)

  • Work nicely with layouts, partials, and rails html helpers.

  • Reduce complexity, work with existing rails code, no extra view
    logic or hashes than what is used by ERb (rhtml). Scaffold generate
    initial
    templates or work from existing html prototype. Make scaffolds nicely
    styled
    and easily useable for production with minor changes.

  • Reduce the numbers of files, simplifying editing. Define partials
    and layouts naturallyl right in the template, no need to go to
    another file.

  • Preview in browser without running an app. Allow for dummy data in
    the template so that the page can be viewed and styled independently
    of the
    application.

  • Performance equal to ERb (rhtml)

Release Notes:

== Recent changes (Release 0.3.1 - Maintenance release
This release addresses an issue with ruby 1.8.5, fixes a problem with
the
deprecated/directive_base used for custom directives, updates a few out
of
date docs, and accomodates a change to the API of the Rails 1.2
generator

== Recent changes (Release 0.3.0 - Major update - refactoring of
directive
API (for developing directives)
The directive API for creating directives has been refactored and
simplified. This will enable directives to be developed more easily by
both
core developers and MasterView users. The end goal is to make it
extremely
simple for anyone to create their own custom directives and to share
those
with the community, and thus the project can live and grow into many
specialty areas. The directive API refactoring is one more step towards
those goals.

The old directive_base.rb which provided the API for directives has been
deprecated and moved to deprecated/directive_base.rb,
MasterViewdevelopers
which have developed custom directives should upgrade those directives
to
the new API as soon as possible. During the transition period one can
use
the original API by requiring the deprecated/directive_base.rb file and
changing their directive to inherit from DirectiveBaseOld rather than
DirectiveBase.

== Recent changes (Release 0.2.5)
Fix AdminPage compatibility with Rails 1.1.5+ which uses safe_load_paths
to
find controllers
Fix rake mv:view_rhtml RHTML=foo/_bar.rhtml was not able to find
partials

Visit the online documentation page at http://masterview.org/ for
screenshots, illustrations, complete installation and usage information.

We would love to hear your feedback and ideas around this project! Visit
the
rubyforge project http://rubyforge.org/projects/masterview to join the
users mailing list or to add yourself to the announce list to receive
future
announcements. Check out the
videohttp://masterview.org/videos/demo_short.htmlto see MasterView
in action!

Thanks for your time!!

MasterView Development Team
Jeff B. and Deb Lewis