legendary-doc-site/apps/content/lib/content_web/views/layout_view.ex

52 lines
1.5 KiB
Elixir
Raw Normal View History

defmodule Content.LayoutView do
use Content, :view
2020-08-18 15:49:36 +00:00
def feed_tag(conn, view_module, view_template, assigns) do
~E"""
<link
rel="alternate"
type="application/rss+xml"
title="<%= title(view_module, view_template, assigns) %>"
href="<%= corresponding_feed_url(conn, view_module, view_template, assigns) %>"
/>
"""
end
def title(Content.PostsView, "index.html", assigns) do
"Page #{assigns.page} | #{title(nil, nil, nil)}"
end
2020-08-18 15:49:36 +00:00
def title(Content.FeedsView, "index.rss", %{category: category}) when not(is_nil(category)) do
"#{category} | #{title(nil, nil, nil)}"
end
def title(Content.PostsView, "show.html", assigns) do
2020-07-28 15:54:24 +00:00
(assigns.post.title |> HtmlSanitizeEx.strip_tags()) <> " | " <> title(nil, nil, nil)
end
2020-08-18 15:49:36 +00:00
def title(_, _, _), do: I18n.t! "en", "site.title"
def excerpt(Content.PostsView, "show.html", assigns) do
2020-07-28 15:54:24 +00:00
assigns.post.excerpt
|> HtmlSanitizeEx.strip_tags()
end
2020-08-18 15:49:36 +00:00
def excerpt(Content.FeedsView, "index.rss", %{category: category}) when not(is_nil(category)) do
"#{category} | #{excerpt(nil, nil, nil)}"
end
2020-08-18 15:49:36 +00:00
def excerpt(_, _, _), do: I18n.t! "en", "site.excerpt"
def corresponding_feed_url(conn, _, _, %{category: nil}) do
2020-08-18 15:49:36 +00:00
Content.Router.Helpers.index_feed_url(conn, :index)
end
def corresponding_feed_url(conn, Content.PostsView, "index.html", %{category: category}) do
2020-08-18 15:49:36 +00:00
Content.Router.Helpers.category_feed_url(conn, :index, category)
end
def corresponding_feed_url(conn, _, _, _) do
2020-08-18 15:49:36 +00:00
Content.Router.Helpers.index_feed_url(conn, :index)
end
end