diff --git a/lib/jol_web/controllers/tag_controller.ex b/lib/jol_web/controllers/tag_controller.ex index 99f4c86..8462951 100644 --- a/lib/jol_web/controllers/tag_controller.ex +++ b/lib/jol_web/controllers/tag_controller.ex @@ -3,7 +3,16 @@ defmodule JOLWeb.TagController do def index(conn, _params) do conn - |> assign(:page_title, "Jess Uses These Tags") - |> render(:index) + |> render(:index, + page_title: "Jess Uses These Tags", + tags: JOL.Blog.unique_tag_list) + end + + def tag(conn, %{"tag" => tag}) do + conn + |> render(:tag, + tag: tag, + page_title: "Posts Filed Under #{tag}", + posts: JOL.Blog.get_posts_by_tag!(tag)) end end diff --git a/lib/jol_web/controllers/tag_html.ex b/lib/jol_web/controllers/tag_html.ex new file mode 100644 index 0000000..4c9527a --- /dev/null +++ b/lib/jol_web/controllers/tag_html.ex @@ -0,0 +1,5 @@ +defmodule JOLWeb.TagHTML do + use JOLWeb, :html + + embed_templates "tag_html/*" +end diff --git a/lib/jol_web/controllers/tag_html/tag.html.heex b/lib/jol_web/controllers/tag_html/tag.html.heex new file mode 100644 index 0000000..6a41cac --- /dev/null +++ b/lib/jol_web/controllers/tag_html/tag.html.heex @@ -0,0 +1,9 @@ +

Filed Under "<%= @tag %>"

+ +<%= for post <- @posts do %> +
+

<%= post.date %>

+

<.link href={~p"/blog/#{post.slug}"}><%= post.title %>

+

<%= raw post.lede %>

+
+<% end %> diff --git a/lib/jol_web/router.ex b/lib/jol_web/router.ex index 4269559..671afb5 100644 --- a/lib/jol_web/router.ex +++ b/lib/jol_web/router.ex @@ -22,11 +22,13 @@ defmodule JOLWeb.Router do pipe_through :browser get "/", PageController, :home - get "/tags", TagController, :index get "/archive", PageController, :archive get "/about", PageController, :about get "/now", PageController, :now + get "/tags", TagController, :index + get "/tags/:tag", TagController, :tag + get "/blog", BlogController, :index get "/blog/:slug", BlogController, :show end