|Developer(s)||John W. Long, Sean Cribbs, Jim Gay|
|Initial release||June 26, 2006|
|Stable release||1.1.4 / September 24, 2013|
|Platform||Ruby on Rails|
|Type||Content management system|
Radiant is a free software content management system written in Ruby created and designed by John W. Long as a Ruby on Rails web application. While suitable for the non-technical user, it also provides elements for more advanced users.
Radiant has a lightweight core library with "extensions" providing additional customised functionality. Because extensions do not modify the core, upgrading is simplified; With over 200 extensions in the extension registry it can be adapted for a range of uses including membership management. All the content is stored inside a database. It is possible to use MySQL, PostgreSQL or SQLite. Radiant depends, like every Ruby on Rails application, on the installed adapters for the database.
It is distributed via a separate download or installable with RubyGems.
Radiant projects are based on 3 elements: Pages, Snippets and Layouts.
Pages: Pages hold the body content and can include multiple page parts such as a sidebar. Radiant allows arrangement of pages according to any hierarchy. For example, if Radiant is used as a blog, all blog entries are Pages inside the Radiant system, arranged to reflect the actual structure of the content. For the non-technical user WYSIWYG Page editing is available as an extension
Snippets: Snippets are essentially just content that can be reused everywhere in the project and make page creation easier.
Layouts: Layouts define the general look of a Page much like a template. Upon Page creation, a Layout can be selected for this Page to be inserted in.
Radius Template Language
Inside a Page, Layout or Snippet, Radiant offers a special macro language, called Radius, that allows a user to include content from other pages, iterate over page children, and display content conditionally.
Radius tags are XML-like tags that start with "r:".
Here is an example of Radius tags inside page layout:
<html> <head><r:title /></head> <body> <r:snippet name="header"/> <r:children:each limit="2"> <r:content /> <r:if_content part="sidebar"> <div class="sidebar"> <r:content part="sidebar" /> </div> </r:if_content> </r:children:each> <r:snippet name="footer" /> </body> </html>
Radiant includes by default 2 extensions.