defmodule PreDotHn.LinkLog do use Phoenix.Component import Phoenix.LiveViewTest, only: [rendered_to_string: 1] def run do links = links() make_feed(links) links |> make_index() |> PreDotHn.write_page() end def links do link_path = Path.join(["site", "link-log.yaml"]) YamlElixir.read_from_file!(link_path) end def make_feed(links) do links = Enum.take(links, 10) assigns = %{links: links} body = EEx.eval_string( """ pre.hn - Links Robert Prehn's Link Log https://pre.hn <%= for link <- @links do %> <%= HtmlSanitizeEx.strip_tags(link["name"]) %> <%= link["summary"] %> <%= link["url"] %> <% end %> """, assigns: assigns ) path = Path.join(["priv", "static", "link-log", "feed.rss"]) File.write!(path, body) end def make_index(links) do assigns = %{links: links} body = ~H""" <%= for link <- @links do %>
<%= link["name"] %> <%= Earmark.as_html!(link["summary"]) |> Phoenix.HTML.raw() %>
<% end %> """ |> rendered_to_string() %{ title: "Link Log", slug: "link-log", date: "2024-03-07", body: body } end end