refactor: nest templates, extract base template

This commit is contained in:
Marc 2024-09-20 01:21:37 -04:00
parent 82f1c4bbb2
commit 3a0d758ef7
Signed by: marc
GPG key ID: 048E042F22B5DC79
5 changed files with 58 additions and 87 deletions

View file

@ -26,8 +26,8 @@ func healthcheck(w http.ResponseWriter, r *http.Request) {
//
// Static content for the about page.
func about(w http.ResponseWriter, r *http.Request) {
tmpl, _ := template.New("about.html.tmpl").ParseFiles("templates/about.html.tmpl")
tmpl.Execute(w, nil)
tmpl, _ := template.New("about").ParseFiles("templates/about.html.tmpl", "templates/base.html.tmpl")
tmpl.ExecuteTemplate(w, "base", nil)
}
// Feeds list
@ -41,8 +41,8 @@ func listContent(w http.ResponseWriter, r *http.Request) {
links = append(links, formattedItems...)
}
tmpl, _ := template.New("index.html.tmpl").ParseFiles("templates/index.html.tmpl")
tmpl.Execute(w, links)
tmpl, _ := template.New("base").ParseFiles("templates/index.html.tmpl", "templates/base.html.tmpl")
tmpl.ExecuteTemplate(w, "base", links)
}
// Manage content
@ -74,6 +74,6 @@ func manageContent(w http.ResponseWriter, r *http.Request) {
Feeds map[string]string
}
tmpl, _ := template.New("manage.html.tmpl").ParseFiles("templates/manage.html.tmpl")
tmpl.Execute(w, ManageTmplData{Feeds: allFeeds})
tmpl, _ := template.New("manage").ParseFiles("templates/manage.html.tmpl", "templates/base.html.tmpl")
tmpl.ExecuteTemplate(w, "base", ManageTmplData{Feeds: allFeeds})
}

View file

@ -1,22 +1,5 @@
<html>
<head>
<title>☕ Morning coffee</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="/static/main.css", rel="stylesheet">
</head>
<body>
<header>
<h1>☕ Morning coffee</h1>
<nav>
<ul>
<li><a href="/about">About</a></li>
<li><a href="/">Feeds</a></li>
<li><a href="/manage">Manage</a></li>
</ul>
</nav>
</header>
{{ define "content" }}
<main>
<em>Morning Coffee</em> is a minimalist static-page RSS & interesting links reader written in Go.
</main>
</body>
</html>
{{ end }}

22
templates/base.html.tmpl Normal file
View file

@ -0,0 +1,22 @@
{{ define "base" }}
<html>
<head>
<title>☕ Morning coffee</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="/static/main.css", rel="stylesheet">
</head>
<body>
<header>
<h1>☕ Morning coffee</h1>
<nav>
<ul>
<li><a href="/about">About</a></li>
<li><a href="/">Feeds</a></li>
<li><a href="/manage">Manage</a></li>
</ul>
</nav>
</header>
{{ template "content" . }}
</body>
</html>
{{ end }}

View file

@ -1,20 +1,4 @@
<html>
<head>
<title>☕ Morning coffee</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="/static/main.css", rel="stylesheet">
</head>
<body>
<header>
<h1>☕ Morning coffee</h1>
<nav>
<ul>
<li><a href="/about">About</a></li>
<li><a href="/">Feeds</a></li>
<li><a href="/manage">Manage</a></li>
</ul>
</nav>
</header>
{{ define "content" }}
<ul id="items">
{{ range . }}
<li>
@ -23,5 +7,4 @@
</li>
{{ end }}
</ul>
</body>
</html>
{{ end }}

View file

@ -1,20 +1,4 @@
<html>
<head>
<title>☕ Morning coffee</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="/static/main.css", rel="stylesheet">
</head>
<body>
<header>
<h1>☕ Morning coffee</h1>
<nav>
<ul>
<li><a href="/about">About</a></li>
<li><a href="/">Feeds</a></li>
<li><a href="/manage">Manage</a></li>
</ul>
</nav>
</header>
{{ define "content" }}
<main>
<form action="/manage" method="post">
<label for="feed">Url</label>
@ -28,5 +12,4 @@
{{ end }}
</ul>
</main>
</body>
</html>
{{ end }}