Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Feather CMS is a lightweight CMS
JavaScript Ruby
tag: v0.0.5.1

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
config
lib
script
test
.gitignore
Gemfile
Gemfile.lock
MIT-LICENSE
README.rdoc
Rakefile
feather_cms.gemspec

README.rdoc

FeatherCms

# Motivation

We have felt the pain of integrating static pages into a Rails application. There are plenty of gems available for this (Radiant, Locomotiv, etc.) but they are very heavy for what we need.

So, we built FeatherCMS. As the name suggests, its a Do-It-Yourself, lightweight CMS - just pages, caching and nothing more!

# Usage Add the gem to your Gemfile

gem 'feather_cms'

Now, generate the pages

$ rails g feather_cms 
$ rake db:migrate

This generates a route, the controller action and the view for each page. Start the server and use the URL localhost:3000/feathers/pages to go to the admin panel.

This has basic HTTP authentication setup.The default username and password are feather/password and you can change this in feathers_controller.rb.

To change basic authentication: config/initializers/feather_cms.rb

c.authentication = {name: 'feather', password: 'password'}

If you want to add devise authentication set

c.authentication = :authenticate_user! 
or
c.authentication = :authenticate_admin!

# Features

  • Creates a route for each static page.

  • Caching the static pages.

  • CodeMirror Editor for syntax highlighting. (Default: HTML)

  • Storage is file (default) or database.

# Caveats You may need to ensure that the public/system folder exists (for file storage)

# TODO

  • Move the basic authentication to the config/initializers/feather_cms.rb

  • Override the default authentication strategy from the controller

  • Move the code from generated controller to the gem (if required)

# Contribute Fork away and send me pull requests!

# License The MIT license

Something went wrong with that request. Please try again.