Awesome Open Source
Awesome Open Source

seory

Build Status Code Climate

Manage SEO contents in Rails app. based on controller, action and more complex context.

Installation

Add this line to your application's Gemfile:

gem 'seory'

And then execute:

$ bundle

Or install it yourself as:

$ gem install seory

Usage

To use seory, you need to include Seory::RailsHelper in your application.

For example, app/helpers/application_helper.rb

module ApplicationHelper
  include Seory::RailsHelper

  ...
end

Specify SEO content as ruby code. For example, config/seory/*.rb

# config/seory/products.rb
Seory.seo_content 'products' do
  # Specify SEO content based on `controller#action` rule
  match *%w[products#popular products#new_release] do
    title            'Great products | My Great Site[MGS]'
    meta_description 'A lot of great products'

    meta_keywords    %w[Software Internet Service].join(',')

    h1               'Most popular products'
  end

  # Can contain dynamic content based on controller using assigned ivar
  match slug('products#show') do
    assign_reader :product

    title { product.name }
  end

  # Match with request fullpath
  match path('/products/special-product') do
    title 'Special Product Detail'
  end

  # Custom lookup rule with controller
  match(->(controller) { controller.params[:page].to_i == 1 }) do
    meta_keywords do
      search = assigns(:search_object)

      # do something
    end
  end

  # Use custom word part
  match slug('products#index') do
    misc(:page_name) { "#{controller.params[:page].to_i} page | Good products") }

    title :page_name
    h1    :page_name

    meta_description { "Page for #{misc(:page_name)}" }
  }
  end
end

# config/seory/default.rb
Seory.seo_content 'default' do
  default do
    title 'My Great Service'
    h1    { I18n.t("#{controller_name}.h1", scope: 'label.misc_pages' }
  end
end

Then we can use seory in your application.

%html
  %head
    %title= seory.title
    ...
  %body
    %h1= seory.h1

Contributing

  1. Fork it ( https://github.com/esminc/seory/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Thanks

  • @libkazz: Specification adviser
  • @darashi: God father
Alternatives To Seory
Select To Compare


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Ruby (225,272
Ruby On Rails (68,337
Actions (55,330
Seo (3,404