about summary refs log tree commit diff stats
path: root/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'frontend')
-rw-r--r--frontend/assets.go12
-rw-r--r--frontend/static/search.js4
-rw-r--r--frontend/static/style.css11
-rw-r--r--frontend/templates/blocks/error.gotmpl6
-rw-r--r--frontend/templates/blocks/option.gotmpl48
-rw-r--r--frontend/templates/blocks/options.gotmpl25
-rw-r--r--frontend/templates/blocks/package.gotmpl69
-rw-r--r--frontend/templates/blocks/packages.gotmpl30
-rw-r--r--frontend/templates/blocks/results.gotmpl21
-rw-r--r--frontend/templates/blocks/search.gotmpl37
-rw-r--r--frontend/templates/index.gotmpl55
11 files changed, 19 insertions, 299 deletions
diff --git a/frontend/assets.go b/frontend/assets.go
index 46369fa..7a90d80 100644
--- a/frontend/assets.go
+++ b/frontend/assets.go
@@ -12,8 +12,8 @@ import (
 )
 
 var Assets = &AssetCollection{
-	Scripts:     make(map[string]*Asset),
-	Stylesheets: make(map[string]*Asset),
+	Scripts:     []*Asset{},
+	Stylesheets: []*Asset{},
 	ByPath:      make(map[string]*Asset),
 }
 
@@ -25,8 +25,8 @@ type Asset struct {
 }
 
 type AssetCollection struct {
-	Scripts     map[string]*Asset
-	Stylesheets map[string]*Asset
+	Scripts     []*Asset
+	Stylesheets []*Asset
 	ByPath      map[string]*Asset
 }
 
@@ -61,7 +61,7 @@ func hashScripts() error {
 		if err != nil {
 			return err
 		}
-		Assets.Scripts[filename] = asset
+		Assets.Scripts = append(Assets.Scripts, asset)
 		Assets.ByPath[asset.URL] = asset
 	}
 
@@ -78,7 +78,7 @@ func hashStyles() error {
 		if err != nil {
 			return err
 		}
-		Assets.Stylesheets[filename] = asset
+		Assets.Stylesheets = append(Assets.Stylesheets, asset)
 		Assets.ByPath[asset.URL] = asset
 	}
 
diff --git a/frontend/static/search.js b/frontend/static/search.js
index e3777d7..df11d09 100644
--- a/frontend/static/search.js
+++ b/frontend/static/search.js
@@ -6,8 +6,8 @@ const results = document.getElementById("results");
 let pagination = document.getElementById("pagination");
 
 const resultsRange = new Range();
-resultsRange.setStartBefore(results.firstChild);
-resultsRange.setEndAfter(results.lastChild);
+resultsRange.setStart(results, 0);
+resultsRange.setEnd(results, 0);
 
 const detailsRange = new Range();
 detailsRange.setStartAfter(dialog.firstElementChild);
diff --git a/frontend/static/style.css b/frontend/static/style.css
index a202b89..7cdc6c8 100644
--- a/frontend/static/style.css
+++ b/frontend/static/style.css
@@ -169,3 +169,14 @@ td,
 th {
   padding: 0.25rem 0.5rem;
 }
+
+ul:only-child {
+  padding-inline-start: unset;
+  margin: unset;
+}
+
+li {
+  display: inline-block;
+  margin-right: 1ex;
+  list-style: none;
+}
diff --git a/frontend/templates/blocks/error.gotmpl b/frontend/templates/blocks/error.gotmpl
deleted file mode 100644
index 1352b2e..0000000
--- a/frontend/templates/blocks/error.gotmpl
+++ /dev/null
@@ -1,6 +0,0 @@
-{{- define "main" }}
-  <p class="notice error">
-    {{ .Code }}
-    {{ .Message }}
-  </p>
-{{- end }}
diff --git a/frontend/templates/blocks/option.gotmpl b/frontend/templates/blocks/option.gotmpl
deleted file mode 100644
index 2248708..0000000
--- a/frontend/templates/blocks/option.gotmpl
+++ /dev/null
@@ -1,48 +0,0 @@
-{{- define "main" }}
-  {{- with .Document }}
-    <h2>{{ .Name }}</h2>
-    {{ markdown .Description }}
-    <dl>
-      {{- with .Type }}
-        <dt>Type</dt>
-        <dd><code>{{ . }}</code></dd>
-      {{- end }}
-      {{- with .Default }}
-        {{- if or .Text .Markdown }}
-          <dt>Default</dt>
-          <dd>
-            {{- if .Markdown }}
-              {{ markdown .Markdown }}
-            {{- else }}
-              <pre><code>{{ .Text }}</code></pre>
-            {{- end }}
-          </dd>
-        {{- end }}
-      {{- end }}
-      {{- with .Example }}
-        {{- if or .Text .Markdown }}
-          <dt>Example</dt>
-          <dd>
-            {{- if .Markdown }}
-              {{ markdown .Markdown }}
-            {{- else }}
-              <pre><code>{{ .Text }}</code></pre>
-            {{- end }}
-          </dd>
-        {{- end }}
-      {{- end }}
-      {{- with .RelatedPackages }}
-        <dt>Related Packages</dt>
-        <dd>{{ . }}</dd>
-      {{- end }}
-      {{- with .Declarations }}
-        <dt>Declared</dt>
-        {{- range . }}
-          <dd>
-            <a href="{{ .URL }}">{{ .Name }}</a>
-          </dd>
-        {{- end }}
-      {{- end }}
-    </dl>
-  {{- end }}
-{{- end }}
diff --git a/frontend/templates/blocks/options.gotmpl b/frontend/templates/blocks/options.gotmpl
deleted file mode 100644
index 5a08bae..0000000
--- a/frontend/templates/blocks/options.gotmpl
+++ /dev/null
@@ -1,25 +0,0 @@
-{{- define "hits" }}
-  <table>
-    <thead>
-      <tr>
-        <th scope="col">Title</th>
-        <th scope="col">Description</th>
-      </tr>
-    </thead>
-    <tbody>
-      {{- range . }}
-        {{- with .Data }}
-          <tr>
-            <td>
-              <a href="{{ .Name }}" class="open-dialog">{{ .Name }}</a>
-            </td>
-            <td>
-              {{ markdown (firstSentence .Description) }}
-              <dialog id="{{ .Name }}"></dialog>
-            </td>
-          </tr>
-        {{- end }}
-      {{- end }}
-    </tbody>
-  </table>
-{{- end }}
diff --git a/frontend/templates/blocks/package.gotmpl b/frontend/templates/blocks/package.gotmpl
deleted file mode 100644
index a42a8b1..0000000
--- a/frontend/templates/blocks/package.gotmpl
+++ /dev/null
@@ -1,69 +0,0 @@
-{{- define "main" }}
-  {{- with .Document }}
-    <h2>
-      {{- if .Broken }}
-        <del>{{ .Attribute }}</del>
-      {{- else }}
-        {{ .Attribute }}
-      {{- end }}
-    </h2>
-    {{- if .LongDescription }}
-      {{ markdown .LongDescription }}
-    {{- else }}
-      <p>{{ .Description }}</p>
-    {{- end }}
-    <dl>
-      {{- with .MainProgram }}
-        <dt>Main Program</dt>
-        <dd>
-          <code>{{ . }}</code>
-        </dd>
-      {{- end }}
-      {{- with .Homepages }}
-        <dt>Homepage</dt>
-        <dd>
-          {{- range . }}
-            <a href="{{ . }}">{{ . }}</a>
-          {{- end }}
-        </dd>
-      {{- end }}
-      {{- with .Version }}
-        <dt>Version</dt>
-        <dd>{{ . }}</dd>
-      {{- end }}
-      {{- with .Licenses }}
-        <dt>License</dt>
-        <dd>
-          {{- range . }}
-            {{- if .URL }}
-              <a href="{{ .URL }}">{{ or .FullName .Name }}</a>
-            {{- else }}
-              {{ or .FullName .Name }}
-            {{- end }}
-            {{- with .AppendixURL }}
-              <a href="{{ . }}">Appendix</a>
-            {{- end }}
-          {{- end }}
-        </dd>
-      {{- end }}
-      {{- with .Maintainers }}
-        <dt>Maintainer{{ if gt (len .) 1 }}s{{ end }}</dt>
-        <dd>
-          {{- range . }}
-            {{- if .Github }}
-              <a href="https://github.com/{{ .Github }}">{{ .Name }}</a>
-            {{- else }}
-              {{ .Name }}
-            {{- end }}
-          {{- end }}
-        </dd>
-      {{- end }}
-      {{- with .Definition }}
-        <dt>Defined</dt>
-        <dd>
-          <a href="{{ . }}">Source</a>
-        </dd>
-      {{- end }}
-    </dl>
-  {{- end }}
-{{- end }}
diff --git a/frontend/templates/blocks/packages.gotmpl b/frontend/templates/blocks/packages.gotmpl
deleted file mode 100644
index cce97a0..0000000
--- a/frontend/templates/blocks/packages.gotmpl
+++ /dev/null
@@ -1,30 +0,0 @@
-{{- define "hits" }}
-  <table>
-    <thead>
-      <tr>
-        <th scope="col">Attribute</th>
-        <th scope="col">Name</th>
-        <th scope="col">Description</th>
-      </tr>
-    </thead>
-    <tbody>
-      {{- range . }}
-        {{- with .Data }}
-          <tr>
-            <td>
-              {{- with .Attribute }}
-                <a href="{{ . }}" class="open-dialog">{{ . }}</a>
-              {{- end }}
-            </td>
-            <td>
-              {{ .Name }}
-            </td>
-            <td>
-              {{ .Description }}
-            </td>
-          </tr>
-        {{- end }}
-      {{- end }}
-    </tbody>
-  </table>
-{{- end }}
diff --git a/frontend/templates/blocks/results.gotmpl b/frontend/templates/blocks/results.gotmpl
deleted file mode 100644
index ef6e1f1..0000000
--- a/frontend/templates/blocks/results.gotmpl
+++ /dev/null
@@ -1,21 +0,0 @@
-{{- define "results" }}
-  {{- with .Results }}
-    {{- if gt .Total 0 }}
-      {{ block "hits" .Hits }}
-      {{ end }}
-      <footer aria-label="pagination">
-        <nav id="pagination">
-          {{- with $.Prev }}
-            <a class="button" href="{{ . }}" rel="prev">Prev</a>
-          {{- end }}
-          {{- with $.Next }}
-            <a class="button" href="{{ . }}" rel="next">Next</a>
-          {{- end }}
-        </nav>
-        <span role="status">{{ .Total }} results</span>
-      </footer>
-    {{- else }}
-      <span role="status">Nothing found</span>
-    {{- end }}
-  {{- end }}
-{{- end }}
diff --git a/frontend/templates/blocks/search.gotmpl b/frontend/templates/blocks/search.gotmpl
deleted file mode 100644
index 93ae545..0000000
--- a/frontend/templates/blocks/search.gotmpl
+++ /dev/null
@@ -1,37 +0,0 @@
-{{- define "main" }}
-  <form id="search" role="search">
-    <fieldset>
-      <legend id="legend">
-        <h2>{{ sourceNameAndType .Source }} search</h2>
-      </legend>
-      <input
-        id="query"
-        aria-labelledby="legend"
-        name="query"
-        type="search"
-        value="{{ .Query }}"
-        autofocus
-        spellcheck="false"
-      />
-      <button>Search</button>
-    </fieldset>
-  </form>
-  <section id="results" role="list" aria-label="search results">
-    {{- if .Results }}
-      {{ block "results" . }}{{ end }}
-    {{- end }}
-  </section>
-  <dialog id="dialog">
-    <button autofocus>Close</button>
-  </dialog>
-{{- end }}
-
-{{- define "head" }}
-  {{- with (index .Assets.Scripts "static/search.js") }}
-    <script
-      src="{{ .URL }}"
-      defer
-      integrity="sha256-{{ .Base64SHA256 }}"
-    ></script>
-  {{- end }}
-{{- end }}
diff --git a/frontend/templates/index.gotmpl b/frontend/templates/index.gotmpl
deleted file mode 100644
index 7732dc8..0000000
--- a/frontend/templates/index.gotmpl
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<html lang="en-GB">
-  <head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <title>Searchix</title>
-    {{- range .Assets.Stylesheets }}
-      <link
-        href="{{ .URL }}"
-        rel="stylesheet"
-        integrity="sha256-{{ .Base64SHA256 }}"
-      />
-    {{- end }}
-    {{ block "head" . }}
-    {{ end }}
-    {{ .ExtraHeadHTML }}
-    {{- range $key, $value := .Sources }}
-      <link
-        rel="search"
-        type="application/opensearchdescription+xml"
-        title="Searchix {{ sourceNameAndType $value }}"
-        href="/{{ .Importer }}/{{ $key }}/opensearch.xml"
-      />
-    {{- end }}
-  </head>
-  <body>
-    <header>
-      <nav>
-        <h1><a href="/">Searchix</a></h1>
-        {{- range $key, $value := .Sources }}
-          <a
-            {{ if eq $.Source.Name $value.Name }}class="current"{{ end }}
-            href="/{{ .Importer }}/{{ $key }}/search{{ if and (ne $.Source.Name $value.Name) $.Query }}
-              {{- printf "?query=%s" $.Query -}}
-            {{ end }}"
-          >
-            {{- $value.Name -}}
-          </a>
-        {{- end }}
-      </nav>
-    </header>
-    <main>
-      {{ block "main" . }}
-        <p>
-          Search Nix Packages and options from NixOS, Darwin and Home-Manager
-        </p>
-        <a href="https://git.sr.ht/~alanpearce/searchix">Source code</a>
-      {{ end }}
-    </main>
-    <footer>
-      Made by <a href="https://alanpearce.eu">Alan Pearce</a>.
-      <a href="https://todo.sr.ht/~alanpearce/searchix">Report issues</a>
-    </footer>
-  </body>
-</html>