Shakespeare
===========
Shakespeare is a Ruby on Rails content manager plugin.
Shakespeare allows:
- User-editable page titles, descriptions, meta info and content blocks for dynamic requests
- User editable content-only pages
Shakespeare is a super simple bolt-on CMS for any Rails app.
Installation
============
Shakespeare is easy to install.
As a plugin:
./script/plugin install git://github.com/paulca/shakespeare.git
Or as a gem. Add this to your environment.rb:
config.gem 'shakespeare'
Then generate the migration to create the pages table:
./script/generate shakespeare
And run the migration:
rake db:migrate
Basic Usage
===========
Once Shakespeare is installed, every controller action can now have its own content. You an access this content in the controller or the view with the `page_content` method.
View Helpers
============
In your views, you have access to a number of helpers for generating your page meta-data.
- `page_title` is the title of the page
- `keywords_meta_tag` generates a tag for the page keywords, or returns nil if it's left blank
- `description_meta_tag` generates a tag for the page description, or returns nil if it's left blank
- `robots_meta_tag` generates a tag for the robots no-index and/or nofollow meta tag options, or returns nil if it's left blank
- `canonical_link_tag` generates a tag with the canonical URL for the page, if `enable_canonical` is set to true
Web Interface
=============
Using Rails' Engines feature, Shakespeare comes with a web interface that is available to your app straight away at `http://localhost:3000/admin/pages`.
By default, this comes with no styling, but you can create a layout in `app/layouts/admin.html.erb`, or set a layout by setting `Shakespare::Settings.layout`
For example, to use your standard application layout, create a `config/initializers/shakespeare.rb` like this:
Shakespeare::Settings.layout = 'application'
You can also add before_filters to protect the controller from outsiders:
Shakespeare::Settings.before_filters << 'require_admin_user'
By default, in production, if `Shakespeare::Settings.before_filters` is empty, `/admin/pages` is protected. You can disable this protection by setting `Behavior::Settings.allow_anonymous` to true.
Running the tests
=================
You can run the tests by checking out the code into vendor/plugins of a Rails app and running:
rake
It also comes with a set of cucumber features:
cucumber
About me
========
I'm Paul Campbell. I'm an avid Ruby on Rails web developer. Follow my ramblings at [http://www.pabcas.com](http://www.pabcas.com)
Follow me on Twitter [http://twitter.com/paulca](http://twitter.com/paulca)
Copyright (c) 2009 Paul Campbell, released under the MIT license