lyrics

lyrics
git clone git://brookjeynes.dev/bjeynes/lyrics.git
Log | Files | Refs

base.templ (1912B)


      1 package base
      2 
      3 templ Header() {
      4 	<header class="header" role="banner">
      5 		<a href="/">lyrics</a>
      6 		<nav aria-label="Primary navigation">
      7 			<ul>
      8 				<li><a href="/song/new">new song</a></li>
      9 				<li><a href="/release/new">new release</a></li>
     10 				<li><a href="/artist/new">new artist</a></li>
     11 			</ul>
     12 		</nav>
     13 		<form hx-get="/search">
     14 			<input name="query" type="text" placeholder="search"/>
     15 			<select name="type">
     16 				<option value="artist">artist</option>
     17 				<option value="release">release</option>
     18 				<option value="song">song</option>
     19 			</select>
     20 		</form>
     21 	</header>
     22 }
     23 
     24 templ Footer() {
     25 	<footer role="contentinfo">
     26 		<a href="/">lyrics</a>
     27 	</footer>
     28 }
     29 
     30 templ Base(params BaseParams) {
     31 	<!DOCTYPE html>
     32 	<html lang="en">
     33 		<head>
     34 			<meta charset="UTF-8"/>
     35 			<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     36 			<script src="/static/js/htmx.min.js" defer></script>
     37 			<script src="/static/js/alpine.min.js" defer></script>
     38 			<script src="/static/js/lucide.min.js"></script>
     39 			<script src="/static/js/lucide-utils.js"></script>
     40 			<script src="/static/js/toast.js" defer></script>
     41 			<script src="/static/js/string-utils.js"></script>
     42 			<link rel="stylesheet" href="/static/minimal.css" type="text/css"/>
     43 			<link rel="stylesheet" href="/static/style.css" type="text/css"/>
     44 			<link rel="stylesheet" href="/static/picker-list.css" type="text/css"/>
     45 			<link rel="stylesheet" href="/static/toast.css" type="text/css"/>
     46 			<link rel="stylesheet" href="/static/table.css" type="text/css"/>
     47 			for _, stylesheet := range params.PageStylesheets {
     48 				<link rel="stylesheet" href={ "/static/" + stylesheet } type="text/css"/>
     49 			}
     50 			<title>{ params.Title }</title>
     51 		</head>
     52 		<body>
     53 			@Header()
     54 			<main>
     55 				<section class="toast-container"></section>
     56 				{ children... }
     57 			</main>
     58 			@Footer()
     59 		</body>
     60 		<script>
     61             initLucideIcons();
     62         </script>
     63 	</html>
     64 }