Skip to content

Commit db34c3b

Browse files
authored
Add newsletter (#51)
1 parent 1ffbf38 commit db34c3b

4 files changed

Lines changed: 53 additions & 0 deletions

File tree

lib/jola_dev_web/components/layouts/app.html.heex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<:link href="/" active={@conn.request_path == "/"}>Home</:link>
55
<:link href="/about" active={@conn.request_path == "/about"}>About</:link>
66
<:link href="/posts" active={String.starts_with?(@conn.request_path, "/posts")}>Blog</:link>
7+
<:link href="/newsletter" active={@conn.request_path == "/newsletter"}>Newsletter</:link>
78
<:link href="/projects" active={@conn.request_path == "/projects"}>Projects</:link>
89
<:link href="/talks" active={@conn.request_path == "/talks"}>Talks</:link>
910
</.navigation>

lib/jola_dev_web/controllers/page_controller.ex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,12 @@ defmodule JolaDevWeb.PageController do
3636
"Conference talks and presentations by Johanna Larsson on Elixir, distributed systems, and engineering leadership."
3737
)
3838
end
39+
40+
def newsletter(conn, _params) do
41+
render(conn, :newsletter,
42+
page_title: "Newsletter | jola.dev",
43+
meta_description:
44+
"Newsletter by Johanna Larsson with content from the blog, delivered monthly."
45+
)
46+
end
3947
end
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<section class="py-16">
2+
<div class="max-w-prose mx-auto px-6 md:px-8">
3+
<header class="mb-12 text-center">
4+
<.heading level={1}>Newsletter</.heading>
5+
</header>
6+
7+
<div class="space-y-6">
8+
<.text variant={:lead} class="text-justify">
9+
Get a monthly newsletter with content from the blog, delivered to your inbox.
10+
</.text>
11+
</div>
12+
13+
<div class="space-y-6">
14+
<form
15+
action="https://buttondown.com/api/emails/embed-subscribe/joladev"
16+
method="post"
17+
class="embeddable-buttondown-form flex flex-col gap-2 w-[300px] mx-auto mt-16"
18+
>
19+
<label for="bd-email">Enter your email</label>
20+
<input
21+
type="email"
22+
name="email"
23+
id="bd-email"
24+
class="h-10 rounded-md border border-border"
25+
/>
26+
<input
27+
type="submit"
28+
value="Subscribe"
29+
class="bg-accent text-white px-4 py-2 rounded-md cursor-pointer"
30+
/>
31+
<p class="mx-auto pt-4">
32+
<.link
33+
href="https://buttondown.com/refer/joladev"
34+
target="_blank"
35+
class="underline text-xs"
36+
>
37+
Powered by Buttondown.
38+
</.link>
39+
</p>
40+
</form>
41+
</div>
42+
</div>
43+
</section>

lib/jola_dev_web/router.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ defmodule JolaDevWeb.Router do
4242
get "/posts", BlogController, :index
4343
get "/posts/tag/:tag", BlogController, :tag
4444
get "/posts/:id", BlogController, :show
45+
get "/newsletter", PageController, :newsletter
4546
end
4647

4748
scope "/", JolaDevWeb do

0 commit comments

Comments
 (0)