Installation

Still developing.

If available in Hex, the package can be installed as:

  1. Add sitemap to your list of dependencies in mix.exs:
def deps do
[{:sitemap, ">= 0.0.0"}]
end
  1. Ensure sitemap is started before your application:
def application do
[applications: [:sitemap]]
end

Usage

Basic
defmodule Sitemaps do
use Sitemap
create do
add "path1", priority: 0.5, changefreq: "hourly", expires: nil, mobile: true
end
ping
end
As a function
defmodule Sitemaps do
use Sitemap
def generate do
create do
add "path1", priority: 0.5, changefreq: "hourly", expires: nil, mobile: true
end
ping
end
end
With Ecto
defmodule Sitemaps do
use Sitemap,
host: "http://#{Application.get_env(:myapp, MyApp.Endpoint)[:url][:host]}",
files_path: "static/",
public_path: ""
alias MyApp.Router.Helpers
create do
entries =
MyApp.Entry
|> MyApp.Repo.all
Enum.each [false, true], fn bool ->
add Helpers.entry_path(MyApp.Endpoint, :index),
priority: 0.5, changefreq: "hourly", expires: nil, mobile: bool
entries
|> Enum.each(fn entry ->
add Helpers.entry_path(MyApp.Endpoint, :show, entry.id, entry.title),
priority: 0.5, changefreq: "hourly", expires: nil, mobile: bool
end)
end
end
ping
end

Change options.

Change option( use statement )
defmodule Sitemaps do
use Sitemap, compress: false, create_index: true
create do
add "path1", priority: 0.5, changefreq: "hourly"
add "path2", priority: 0.5, changefreq: "hourly"
end
ping
end
Change option( create function's option )
defmodule Sitemaps do
use Sitemap
create compress: false, create_index: true do
add "path1", priority: 0.5, changefreq: "hourly"
add "path2", priority: 0.5, changefreq: "hourly"
end
ping
end