Almanac is the most elegant mountable blog engine that can be easily hooked up in the existing Rails application.
- Slick default design that can be easily customized.
- Markdown for everything.
- Drafts that make sense.
- Easy Google Analytics support.
- Akismet support for spam filtering in comments.
- Built-in social sharing with Facebook and Twitter.
- RSS support.
- Tags for posts.
- Photo uploading.
- Complete integration with Devise and CanCan.
- Tested with RSpec and FactoryGirl
- Uses haml, scss, CoffeeScript and Bootstrap for views.
gem "almanac"
And run bundle install
.
To hook up Almanac routes to your current Rails app simply put this code in your config/routes.rd
file
mount Almanac::Engine, :at => '/blog'
You can obviously setup any route you want. E.g. /posts
or /almanac
.
First off, install Almanac migrations:
bundle exec rake almanac:install:migrations
Then migrate your database:
bundle exec rake db:migrate
Almanac relies on Devise and CanCan properly configured in your app. In short, the current_user
variable and CanCan ability.rb
file has to exist. You can setup permissions for the following Almanac models:
can :manage, Almanac::Post
can :manage, Almanac::Blog
can :manage, Almanac::Comment
can :manage, Almanac::Image
These particular rules will allow the specified user to do anything with any Almanac record in the database.
Almanac relies on the Dragonfly gem for file uploads. Configure Dragonfly in your app by adding the following line to config/initializers/dragonfly.rb
:
require 'dragonfly/rails/images'
Lastly, you'll have to specify the name of your user model. Create a config/initializers/almanac.rb
file and add the following line there:
Almanac.user_class = "User" # other possibilities: "Author", "Writer", etc.
Almanac's models and controllers are tested with RSpec and FactoryGirl. Rails engines, such as Almanac, are normally tested with a dummy app that is located inside the 'spec' folder. Migrate your test database from the spec/dummy
directory:
rake db:migrate RAILS_ENV=test
Go back to the almanac
directory and run rspec spec
.
Fork the repo, do work, test it, pull request.