about summary refs log tree commit diff stats
path: root/internal/components/page.templ
diff options
context:
space:
mode:
Diffstat (limited to 'internal/components/page.templ')
-rw-r--r--internal/components/page.templ123
1 files changed, 0 insertions, 123 deletions
diff --git a/internal/components/page.templ b/internal/components/page.templ
deleted file mode 100644
index 62b2937..0000000
--- a/internal/components/page.templ
+++ /dev/null
@@ -1,123 +0,0 @@
-package components
-
-import (
-	"context"
-	"io"
-	"net/url"
-
-	"go.alanpearce.eu/searchix/frontend"
-	"go.alanpearce.eu/searchix/internal/config"
-)
-
-templ Page(tdata TemplateData) {
-	<!DOCTYPE html>
-	<html lang="en-GB">
-		<head>
-			<meta charset="utf-8"/>
-			<meta name="viewport" content="width=device-width, initial-scale=1"/>
-			<title>
-				Searchix
-				if config.DevMode {
-					(Dev)
-				}
-			</title>
-			for _, sheet := range tdata.Assets.Stylesheets {
-				<link href={ sheet.URL } rel="stylesheet" integrity={ "sha256-" + sheet.Base64SHA256 }/>
-			}
-			@Unsafe(tdata.ExtraHeadHTML)
-			<link
-				rel="search"
-				type="application/opensearchdescription+xml"
-				title={ "Searchix " + sourceNameAndType(nil) }
-				href={ string(joinPath("opensearch.xml")) }
-			/>
-			for _, source := range tdata.Sources {
-				<link
-					rel="search"
-					type="application/opensearchdescription+xml"
-					title={ "Searchix " + sourceNameAndType(source) }
-					href={ string(joinPath("/", source.Importer.String(), source.Key, "opensearch.xml")) }
-				/>
-			}
-		</head>
-		<body>
-			<header>
-				<nav>
-					<h1><a href="/">Searchix</a></h1>
-					<a
-						if tdata.Source == nil {
-							class="current"
-							href="/"
-						} else {
-							href={ joinPathQuery("/", tdata.Query) }
-						}
-					>All</a>
-					for _, source := range tdata.Sources {
-						<a
-							if tdata.Source != nil && tdata.Source.Name == source.Name {
-								class="current"
-								href={ joinPath("/", source.Importer.String(), source.Key, "search") }
-							} else {
-								href={ joinPathQuery(joinPath("/", source.Importer.String(), source.Key, "search"), tdata.Query) }
-							}
-						>{ source.Name }</a>
-					}
-				</nav>
-			</header>
-			<main>
-				{ children... }
-			</main>
-			<footer>
-				if config.Version != "" {
-					Searchix
-					<a href={ templ.SafeURL("https://git.sr.ht/~alanpearce/searchix/refs/" + config.Version) }>
-						{ config.Version }
-					</a>
-				}
-				Made by <a href="https://alanpearce.eu">Alan Pearce</a>.
-				<a href="https://git.sr.ht/~alanpearce/searchix">Source code</a>
-				<a href="https://todo.sr.ht/~alanpearce/searchix">Report issues</a>
-			</footer>
-		</body>
-	</html>
-}
-
-templ script(s *frontend.Asset) {
-	<script src={ s.URL } defer integrity={ "sha256-" + s.Base64SHA256 }></script>
-}
-
-func Unsafe(html string) templ.Component {
-	return templ.ComponentFunc(func(_ context.Context, w io.Writer) (err error) {
-		_, err = io.WriteString(w, html)
-		return
-	})
-}
-
-func sourceNameAndType(source *config.Source) string {
-	if source == nil {
-		return "Combined"
-	}
-
-	switch source.Importer {
-	case config.Options:
-		return source.Name + " " + source.Importer.String()
-	case config.Packages:
-		return source.Name
-	}
-	return ""
-}
-
-func joinPath(base string, parts ...string) templ.SafeURL {
-	u, err := url.JoinPath(base, parts...)
-	if err != nil {
-		panic(err)
-	}
-	return templ.SafeURL(u)
-}
-
-func joinPathQuery[T ~string](path T, query string) templ.SafeURL {
-	if query == "" {
-		return templ.SafeURL(path)
-	}
-	return templ.SafeURL(string(path) + "?query=" + url.QueryEscape(query))
-}