Implement shared template layout system

This commit is contained in:
bronku 2025-03-29 07:33:23 +01:00
parent 3be7fb76e7
commit 08b669fd8f
9 changed files with 69 additions and 45 deletions

View file

@ -1,9 +1,7 @@
<header>
<h1>New Cake</h1>
</header>
<nav>
<a href="/cakes">back</a>
</nav>
{{define "title"}}
Cake
{{end}}
{{define "main"}}
<main>
<form method="post">
<div>
@ -29,3 +27,4 @@
<button type="submit">submit</button>
</form>
</main>
{{end}}

View file

@ -1,10 +1,7 @@
<header>
<h1>Kill me please</h1>
</header>
<nav>
<a href="/">orders</a>
<a href="cake">new</a>
</nav>
{{define "title"}}
Cakes
{{end}}
{{define "main"}}
<main>
<table>
<tr>
@ -25,3 +22,4 @@
{{end}}
</table>
</main>
{{end}}

View file

@ -1,9 +1,8 @@
<header>
<h1>Confirmation</h1>
</header>
<nav>
<a href="/">index</a>
</nav>
{{define "title"}}
Confirmed
{{end}}
{{define "main"}}
<main>
<h2>{{.ID}} confirmed</h2>
</main>
{{end}}

View file

@ -0,0 +1,16 @@
{{define "layout"}}
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>{{template "title" .}}</title>
</head>
<body>
<header>
<h1>{{template "title" .}}</h1>
</header>
<nav>{{template "nav" .}}</nav>
{{template "main" .}}
</body>
</html>
{{end}}

View file

@ -0,0 +1,6 @@
{{define "nav"}}
<a href="/orders">All orders</a>
<a href="/order">New order</a>
<a href="/cakes">All Cakes</a>
<a href="/cake">New Cake</a>
{{end}}

View file

@ -1,9 +1,7 @@
<header>
<h1>New Order</h1>
</header>
<nav>
<a href="/">back</a>
</nav>
{{define "title"}}
Order
{{end}}
{{define "main"}}
<main>
<form method="post">
{{with .Order}}
@ -89,3 +87,4 @@
addCake({{.ID}}, '{{.Name}} {{.Price}}', {{.Amount}})
{{end}}
</script>
{{end}}

View file

@ -1,10 +1,8 @@
<header>
<h1>Kill me please</h1>
</header>
<nav>
<a href="order">New</a>
<a href="cakes">Manage Cakes</a>
</nav>
{{define "title"}}
Orders
{{end}}
{{define "main"}}
<main>
<table>
<tr>
@ -33,3 +31,4 @@
{{end}}
</table>
</main>
{{end}}