Radiant (software)
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.
Developer(s) | John W. Long, Sean Cribbs, Jim Gay |
---|---|
Initial release | June 26, 2006 |
Final release | |
Repository | |
Operating system | Cross-platform |
Platform | Ruby on Rails |
Type | Content management system |
License | MIT |
Website | radiantcms.org |
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[2] it can be adapted for a range of uses including membership management.[3] 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.
Wolf CMS is a PHP port of Radiant CMS.
Design
Radiant projects are based on 3 elements: Pages, Snippets and Layouts.[4]
Pages: Pages hold the body content and can include multiple page parts. Radiant content is organised in a tree structure, usually arranged to reflect the actual hierarchy of the content. WYSIWYG Page editing is available as an extension[5] whereas Textile and Markdown page editing are included in the core.
Snippets: Snippets are essentially just content that can be reused anywhere in the project.
Layouts: Layouts are templates or themes that can be selected for each page. A project can use multiple layouts.
Radius Template Language
Inside a Page, Layout or Snippet, Radiant offers a special macro language, called Radius, that uses XML-like tags.
Radius tags allow a user to:
- dynamically display content or link to content from somewhere else in the page or content tree. Tags may iterate over children/parent content or call content from anywhere in the tree.
- display content conditionally using "if" and/or "unless" to generate logical statements that show or hide content dynamically when a condition is met.
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>
Content Management
Radiant CMS offers tools for efficient and scalable content management. Referencing and cross referencing of pages can use absolute links based on page id, meaning pages can be moved around the tree without breaking links to them. Radius offers dynamic control over content, whereby radius tags in one page control content in multiple pages to avoid repetition and allow easy updating of content (context switching). Content can also be managed as a relational database.