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.0"}]
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",
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("og", %{"image" => "http://myimage.jpg"})
And print them out inside your head tag
<!DOCTYPE>
<html>
<head>
<%= Metatags.print_tags(@conn) %>
</head>
<body>
</body>
</html>