JTRailsMeta
JTRailsMeta help you to manage HTML meta tags like title, description, keywords used in Search Engine Optimization (SEO).
Installation
JTRailsMeta is distributed as a gem, which is how it should be used in your app.
Include the gem in your Gemfile:
gem 'jt-rails-meta', '~> 1.0'
Create a meta.yml file for the translations:
rails g jt:meta
Usage
Basic usage
Include JT::Rails::Meta in your ApplicationController:
class ApplicationController < ActionController::Base
include JT::Rails::Meta
...
endCall meta_tags in your layout:
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<%= meta_tags %>
</head>
<body>
</body>You have also access to meta_title, meta_description, meta_keywords methods.
Define your meta in meta.yml file:
en:
meta:
# in general you use either prefx or suffix for the title of your page
# prefix or suffix are not applied on default title and are both optional
prefix: "My Website - "
suffix: " - My Website"
# default meta used if no meta are found for a page
default:
title: My WebSite
description: My super website is about something magnificent
keywords: "website, some keywords"
# Exemple of meta for the controller users and the action new
# title, full_title, description and keywords are all optional
users:
new:
title: Sign up
description: Description of sign up page
keywords: "sign up, registration"
# Another example for the controller home and the action index
# full_title is used if exceptionally you don't want to use the prefix or suffix
# you can use either title or full_title
home:
index:
full_title: Home
description: Description of homepage
Pass parameters to tags
In your controller:
class PostsController < ApplicationController
def show
@post = Post.find(params[:id])
set_meta_title({ title: @post.title })
set_meta_description({ title: @post.title, author: @post.author })
add_meta_keywords(@post.tags.map(&:name))
end
endIn your meta.yml file:
en:
meta:
posts:
show:
title: "%{title}"
description: "Post about %{title} by %{author}"Add more tags
You can add more tags with add_meta_extra and add_meta_link methods:
add_meta_extra 'robots' => 'noindex,nofollow'
add_meta_extra {
twitter: {
site: '@mywebsite',
domain: 'mywebsite.com',
title: meta_title,
description: meta_description,
image: [
'http://mywebsite.com/image_1.jpg',
'http://mywebsite.com/image_2.jpg'
]
}
}
add_meta_link 'author', 'https://github.com/jonathantribouharet'
add_meta_link 'publisher', 'https://github.com/jonathantribouharet'There is some methods already created using add_meta_link method:
-
add_meta_link_canonicalwhich is equivalent toadd_meta_link 'canonical' -
add_meta_link_authorwhich is equivalent toadd_meta_link 'author' -
add_meta_link_publisherwhich is equivalent toadd_meta_link 'publisher' -
add_meta_link_alternatewhich is equivalent toadd_meta_link 'alternate'
Author
License
JTRailsMeta is released under the MIT license. See the LICENSE file for more info.