public
Description: Automatically create Radiant layouts based on HTML files in other extensions
Homepage:
Clone URL: git://github.com/freelancing-god/radiant-layout-layer.git
Mon May 18 12:55:04 -0700 2009
commit  96267d493f3dd06a3f11ac9fd7dcf56387207143
tree    fe6e889073670ee87f3b87384e5e9fc54430595e
parent  50a6bfdaa252e0c20952dedcccadc7c41dbeae05
name age message
file LICENCE Loading commit data...
file README.textile
file layout_layer_extension.rb
directory lib/
README.textile

Layout Layer

This extension only does one job, but it does it well: Automatically creates layouts and snippets based on HTML files in other extensions.

Why?

The reason boils down to the following:

  • I don’t like writing layouts within a browser
  • My layouts are tied to extensions

So: Any HTML files within an extension’s layouts folder (which is not part of the default extension generation) will get replicated to a Layout object within the Radiant application. If it is nested within folders, then the name becomes a Ruby-like indication of this (eg: directory/file.html becomes a layout named Directory::File). Here’s a rough example:

- vendor/extensions/site_core
- vendor/extensions/site_core/layouts
- vendor/extensions/site_core/layouts/article.html
- vendor/extensions/site_core/layouts/home.html
- vendor/extensions/site_core/layouts/forums.html
- vendor/extensions/site_core/layouts/forums/topic.html
- vendor/extensions/site_core/layouts/forums/topics.html

These layouts get regenerated every time the Rails environment is reloaded. On production systems, this happens when you restart the web server (for example: Mongrel). In development systems, it happens every time you load a page. You should never need to do anything beyond edit the files to see the changes reflected as your developing your intricate CMS.

All the above applies to Snippets as well.

Who is Responsible?

This extension was written in under an hour by Pat Allan – that’s not meant as a boast, just an indication of how small it is. If you have questions, comments, suggestions, criticisms and/or patches, you can either email pat at freelancing-gods dot com, hassle him on Twitter, or send a message via GitHub.