From 8dcfd6d23c6c5276e39238aeec8cd93c1f79a590 Mon Sep 17 00:00:00 2001 From: Jessica Phoenix Canady Date: Tue, 24 Sep 2024 12:37:42 -0400 Subject: [PATCH] Fix the "posts by tag" render. --- lib/jol/blog/post.ex | 13 +++++++++++++ lib/jol_web/controllers/tag_html/tag.html.heex | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/jol/blog/post.ex b/lib/jol/blog/post.ex index 7d125fe..87e56fd 100644 --- a/lib/jol/blog/post.ex +++ b/lib/jol/blog/post.ex @@ -19,4 +19,17 @@ defmodule JOL.Blog.Post do |> validate_required([:title, :body, :slug]) |> cast_assoc(:tags) end + + def extract_lede(post) do + case Regex.named_captures(~r/(?.*)\n/s, post.body) do + %{"lede" => lede} -> + lede + + _ -> + post.body + |> String.split() + |> Enum.take(50) + |> Enum.join(" ") + end + end end diff --git a/lib/jol_web/controllers/tag_html/tag.html.heex b/lib/jol_web/controllers/tag_html/tag.html.heex index 7263e13..3c41fbf 100644 --- a/lib/jol_web/controllers/tag_html/tag.html.heex +++ b/lib/jol_web/controllers/tag_html/tag.html.heex @@ -4,6 +4,6 @@

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

-

<%= raw post.lede %>

+

<%= raw JOL.Blog.Post.extract_lede(post) %>

<% end %>