metatags
metatags copied to clipboard
Metatags for elixir
Metatags
Metatags provides an easy and flexible way to set both default and page specific metatags that are used for SEO, Facebook, Twitter etc.
Documentation is available at https://hexdocs.pm/metatags.
Installation
Add metatags
to your list of dependencies in mix.exs
:
def deps do
[{:metatags, "~> 0.3.2"}]
end
Add the plug to your router and configure the defaults
(You can use Application.get_env/3
if you'd like to extract it into the
configuration file).
defmodule MyRouter do
use Plug.Conn
plug Metatags.Plug,
sitename: "My_app",
title_separator: "-",
default_tags: %{
"title" => "Welcome!",
"description" => "My_app is a great app",
"keywords" => ["My_app", "great", "elixir"]
}
Usage
In your controller put page specific data:
conn
|> Metatags.put("title", "About My_app")
|> Metatags.put("description", "My app is just a regular app")
|> Metatags.put("og", %{"image" => "http://myimage.jpg"}) # You can have nested structures
|> Metatags.put("og:image", "http://myimage.jpg") # or define them inline
|> Metatags.put("canonical", "http://my-url.com")
|> Metatags.put("alternate", "http://en.my-url.com", hreflang: "en-GB")
And print them out inside your head tag
<!DOCTYPE>
<html>
<head>
<%= Metatags.print_tags(@conn) %>
</head>
<body>
<h1>Welcome</h1>
</body>
</html>