diff options
Diffstat (limited to 'internal')
-rw-r--r-- | internal/components/homepage.templ | 10 | ||||
-rw-r--r-- | internal/components/page.templ | 7 | ||||
-rw-r--r-- | internal/components/search.templ | 4 | ||||
-rw-r--r-- | internal/index/indexer.go | 8 | ||||
-rw-r--r-- | internal/server/mux.go | 23 |
5 files changed, 19 insertions, 33 deletions
diff --git a/internal/components/homepage.templ b/internal/components/homepage.templ deleted file mode 100644 index 1cc2b9e..0000000 --- a/internal/components/homepage.templ +++ /dev/null @@ -1,10 +0,0 @@ -package components - -templ Homepage(tdata TemplateData) { - @Page(tdata) { - <p> - Search Nix Packages and options from NixOS, Darwin and Home-Manager - </p> - <a href="https://git.sr.ht/~alanpearce/searchix">Source code</a> - } -} diff --git a/internal/components/page.templ b/internal/components/page.templ index 127d1ba..edab0f4 100644 --- a/internal/components/page.templ +++ b/internal/components/page.templ @@ -29,7 +29,7 @@ templ Page(tdata TemplateData) { rel="search" type="application/opensearchdescription+xml" title={ "Searchix " + sourceNameAndType(nil) } - href={ string(joinPath("/all", "opensearch.xml")) } + href={ string(joinPath("opensearch.xml")) } /> for _, source := range tdata.Sources { <link @@ -49,9 +49,9 @@ templ Page(tdata TemplateData) { if tdata.SourceResult != nil || tdata.Query != "" { class="current" } - href="/all/search" + href="/" } else { - href={ joinPathQuery("/all/search", tdata.Query) } + href={ joinPathQuery("/", tdata.Query) } } >All</a> for _, source := range tdata.Sources { @@ -71,6 +71,7 @@ templ Page(tdata TemplateData) { </main> <footer> 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> diff --git a/internal/components/search.templ b/internal/components/search.templ index 0457ff9..bbcf3f4 100644 --- a/internal/components/search.templ +++ b/internal/components/search.templ @@ -23,6 +23,9 @@ templ Search(tdata TemplateData, r ResultData) { templ SearchPage(tdata TemplateData, r ResultData) { @Page(tdata) { + <p> + Search Nix packages and options from NixOS, Darwin and Home-Manager + </p> @script(tdata.Assets.ByPath["/static/search.js"]) @Search(tdata, r) <section id="results" role="list" aria-label="search results"> @@ -36,5 +39,6 @@ templ SearchPage(tdata TemplateData, r ResultData) { Everything should work fine without JavaScript. If that is not the case, <a href="https://todo.sr.ht/~alanpearce/searchix">report an issue</a> </p> </noscript> + <a href="https://git.sr.ht/~alanpearce/searchix">Source code</a> } } diff --git a/internal/index/indexer.go b/internal/index/indexer.go index b74c155..6a1dcf0 100644 --- a/internal/index/indexer.go +++ b/internal/index/indexer.go @@ -58,7 +58,7 @@ func createIndexMapping() (mapping.IndexMapping, error) { descriptionFieldMapping.Analyzer = web.Name var err error - err = indexMapping.AddCustomAnalyzer("loc", map[string]interface{}{ + err = indexMapping.AddCustomAnalyzer("loc", map[string]any{ "type": keyword.Name, "tokenizer": letter.Name, "token_filters": []string{ @@ -69,7 +69,7 @@ func createIndexMapping() (mapping.IndexMapping, error) { if err != nil { return nil, errors.WithMessage(err, "could not add custom analyser") } - err = indexMapping.AddCustomAnalyzer("keyword_single", map[string]interface{}{ + err = indexMapping.AddCustomAnalyzer("keyword_single", map[string]any{ "type": keyword.Name, "tokenizer": letter.Name, }) @@ -129,9 +129,9 @@ func createIndex(indexPath string, options *Options) (bleve.Index, error) { if err != nil { return nil, err } - kvconfig := make(map[string]interface{}) + kvconfig := make(map[string]any) if options.LowMemory { - kvconfig = map[string]interface{}{ + kvconfig = map[string]any{ "PersisterNapTimeMSec": 1000, "PersisterNapUnderNumFiles": 500, } diff --git a/internal/server/mux.go b/internal/server/mux.go index 9dbcc86..9c69a7e 100644 --- a/internal/server/mux.go +++ b/internal/server/mux.go @@ -71,18 +71,6 @@ func NewMux( top := http.NewServeMux() mux := sentryhttp.NewServeMux() - mux.HandleFunc("/{$}", func(w http.ResponseWriter, r *http.Request) { - indexData := components.TemplateData{ - ExtraHeadHTML: cfg.Web.ExtraHeadHTML, - Sources: sources, - Assets: frontend.Assets, - } - w.Header().Add("Cache-Control", "max-age=86400") - err := components.Homepage(indexData).Render(r.Context(), w) - if err != nil { - errorHandler(w, r, err.Error(), http.StatusInternalServerError) - } - }) const searchTimeout = 1 * time.Second createSearchHandler := func(importerType config.ImporterType) func(http.ResponseWriter, *http.Request) { @@ -213,10 +201,12 @@ func NewMux( } } - mux.HandleFunc("/all/search", createSearchHandler(config.All)) + mux.HandleFunc("/{$}", createSearchHandler(config.All)) mux.HandleFunc("/options/{source}/search", createSearchHandler(config.Options)) mux.HandleFunc("/packages/{source}/search", createSearchHandler(config.Packages)) + mux.Handle("/all/search", http.RedirectHandler("/", http.StatusFound)) + createSourceIDHandler := func(importerType config.ImporterType) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { source := cfg.Importer.Sources[r.PathValue("source")] @@ -317,18 +307,19 @@ func NewMux( mux.HandleFunc("/options/{source}/opensearch.xml", createOpenSearchXMLHandler(config.Options)) mux.HandleFunc("/packages/{source}/opensearch.xml", createOpenSearchXMLHandler(config.Packages)) - mux.HandleFunc("/all/opensearch.xml", func(w http.ResponseWriter, _ *http.Request) { + mux.Handle("/all/opensearch.xml", http.RedirectHandler("/opensearch.xml", http.StatusFound)) + mux.HandleFunc("/opensearch.xml", func(w http.ResponseWriter, _ *http.Request) { w.Header().Add("Cache-Control", "max-age=604800") w.Header().Set("Content-Type", "application/opensearchdescription+xml") osd := &opensearch.Description{ ShortName: "Searchix Combined", LongName: "Search nix options and packages with Searchix", Description: "Search nix options and packages with Searchix", - SearchForm: cfg.Web.BaseURL.JoinPath("all/search"), + SearchForm: cfg.Web.BaseURL.JoinPath(), URL: opensearch.URL{ Method: "get", Type: "text/html", - Template: cfg.Web.BaseURL.JoinPath("all/search"). + Template: cfg.Web.BaseURL.JoinPath(). AddRawQuery("query", "{searchTerms}"), }, } |