From 680d11669556e16708f97e733d390b41d69fee5b Mon Sep 17 00:00:00 2001
From: Robert Prehn <3952444+prehnRA@users.noreply.github.com>
Date: Sat, 30 Nov 2024 13:01:15 -0600
Subject: [PATCH] feat: Add basic dev server
---
lib/mix/tasks/pre_dot_hn/dev_server.ex | 8 ++++++
lib/pre_dot_hn.ex | 17 +++++++------
lib/pre_dot_hn/application.ex | 12 +++++++++
lib/pre_dot_hn/dev_server.ex | 34 ++++++++++++++++++++++++++
lib/pre_dot_hn/frontmatter.ex | 3 +++
mix.exs | 5 +++-
mix.lock | 9 ++++---
7 files changed, 77 insertions(+), 11 deletions(-)
create mode 100644 lib/mix/tasks/pre_dot_hn/dev_server.ex
create mode 100644 lib/pre_dot_hn/application.ex
create mode 100644 lib/pre_dot_hn/dev_server.ex
diff --git a/lib/mix/tasks/pre_dot_hn/dev_server.ex b/lib/mix/tasks/pre_dot_hn/dev_server.ex
new file mode 100644
index 0000000..fbd58e3
--- /dev/null
+++ b/lib/mix/tasks/pre_dot_hn/dev_server.ex
@@ -0,0 +1,8 @@
+defmodule Mix.Tasks.PreDotHn.DevServer do
+ use Mix.Task
+
+ def run(_args) do
+ Application.put_env(:pre_dot_hn, :serve_endpoints, true, persistent: true)
+ Mix.Tasks.Run.run(["--no-halt"])
+ end
+end
diff --git a/lib/pre_dot_hn.ex b/lib/pre_dot_hn.ex
index b5d3646..74ebf25 100644
--- a/lib/pre_dot_hn.ex
+++ b/lib/pre_dot_hn.ex
@@ -76,7 +76,7 @@ defmodule PreDotHn do
body =
~H"""
<%= for post <- @posts do %>
-
+
@@ -93,7 +93,7 @@ defmodule PreDotHn do
end
def make_feed(posts) do
- posts = Enum.take(posts, 10)
+ posts = posts |> Enum.reject(& &1.hidden) |> Enum.take(10)
base = Application.get_env(:pre_dot_hn, :base, "/")
assigns = %{base: base, posts: posts}
@@ -166,6 +166,9 @@ defmodule PreDotHn do
def make_sitemap(posts) do
posts
+ |> Stream.reject(fn %{hidden: hidden} ->
+ hidden
+ end)
|> Stream.map(
&%Sitemapper.URL{lastmod: &1[:updated_at] || &1.date, loc: "https://pre.hn/#{&1.slug}/"}
)
@@ -218,10 +221,10 @@ defmodule PreDotHn do
def menu(assigns) do
~H"""
-