Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Save a Radiant site to the file system for easy editing and/or version control. Load from file system back into the database

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 HISTORY
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 file_system_extension.rb
Octocat-spinner-32 todo
README.rdoc

File System

Provides rake tasks for saving Pages, Snippets and Layouts from the database to the file system, and loading them back into the DB again.

This opens up the possibility of placing a Radiant site under version control. It also allows you to edit a site using a text editor, rather than going through the Radiant admin in your browser.

Installation

This extension is hosted on github. If you have git installed, then `cd` to the root of your radiant project and issue this command:

git clone git://github.com/nelstrom/radiant-file-system-extension.git vendor/extensions/file_system

If you don’t have git, then you can instead download the tarball from this URL:

http://github.com/nelstrom/radiant-file-system-extension/tarball/master

and expand the contents to `your-radiant-project/vendor/extensions/file_system`.

It is important that the file_system extension loads after all of your other extensions. Open your `config/environment.rb` file, and search for `config.extensions`. Make sure that it is not commented out, then edit it to read:

config.extensions = [ :all, :file_system ]

Usage

Save

To save your site to the file system, run the following command:

rake file_system:to_files

This saves the Layouts, Snippets, and Pages with Parts following this convention:

design
\_ layouts
   \_ Normal.html
   \_ Stylesheet.css
   \_ XML Feed.html
\_ pages
   \_ about
      \_ about.yaml
      \_ body.textile
      \_ sidebar.textile
   \_ body.html
   \_ pages.yaml
   \_ sidebar.markdown
   ...
\_ snippets
   \_ footer.html
   \_ header.textile

Each Page is represented by a directory whose name matches the page's slug. Within that directory, a yaml file (also named after the page slug) contains attributes of that page, such as the title, breadcrumb, layout and so on. The page directory also includes a file for each Page Part associated with the Page.

For Snippets and Page Parts, the file extension stands for the filter. So header.textile will be passed through a Textile filter, whereas footer.html will not be passed through any filter.

For Layouts, the file extension translates to the content type. The following is a list of recognised file extensions, and their corresponding content types:

.html  =>  "text/html"
.css   =>  "text/css"
.xml   =>  "application/xml"
.rss   =>  "application/rss+xml"
.txt   =>  "text/plain"
.js    =>  "text/javascript"
.yaml  =>  "text/x-yaml"
.atom  =>  "application/atom+xml"

Load

To load your site from the file system back into the database, run the following command:

rake file_system:to_db

Any changes you have made to the files since saving them to the file system will now be transferred into the database. When running this command, the cache is also cleared, so that your changes will be visible immediately.

Shortcuts

The following commands have aliases:

rake file_system:to_files     rake db:to_fs
rake file_system:to_db        rake fs:to_db

Also, note that this extension provides a rake task for clearing the cache: rake cache:clear.

Credits

The file_system extension was originally conceived and designed by Sean Cribbs. It is now maintained by Andrew Neil. Contributions have been made by Jim Gay and Brian Landau.

Something went wrong with that request. Please try again.