A fast, local-first "redirection engine" for !bang users with a few extra features ^-^

feat: add opensearch xml file

Changed files
+20 -5
public
+6 -5
README.md
···
DuckDuckGo's bang redirects are too slow. Add the following URL as a custom search engine to your browser. Enables all of DuckDuckGo's bangs to work, but much faster.
```
-
https://unduck.link?q=%s
+
https://s.dunkirk.sh?q=%s
```
## How is it that much faster?
DuckDuckGo does their redirects server side. Their DNS is...not always great. Result is that it often takes ages.
-
I solved this by doing all of the work client side. Once you've went to https://unduck.link once, the JS is all cache'd and will never need to be downloaded again. Your device does the redirects, not me.
+
I solved this by doing all of the work client side. Once you've went to https://s.dunkirk.sh once, the JS is all cache'd and will never need to be downloaded again. Your device does the redirects, not me or any other server.
## How is this different from Theo's version again?
This is primarily my personal fork to experiment with PWAs but I do have a few ideas that I would love to add to this.
- [x] Bangs
+
- [x] Dark Mode
+
- [x] Settings (for things like disabling search history and changing default bang)
- [x] Search counter
-
- [ ] Search suggestions
+
- [x] [OpenSearch](https://developer.mozilla.org/en-US/docs/Web/XML/Guides/OpenSearch) support
+
- [ ] ~Search suggestions~ (as far as I can tell this essentially impossible to do natively with either firefox or chrome; please correct me if I'm wrong though. In this case I would very much love to be wrong)
- [ ] Search History (clearable ofc and all local)
-
- [x] Dark Mode
-
- [x] Settings (for things like disabling search history and changing default bang)
and then some more really ambitious stuff like:
+6
index.html
···
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/search.svg" />
<link
+
rel="search"
+
type="application/opensearchdescription+xml"
+
title="Unduck"
+
href="/opensearch.xml"
+
/>
+
<link
rel="preconnect"
href="https://fonts.googleapis.com"
crossorigin="anonymous"
+8
public/opensearch.xml
···
+
<?xml version="1.0" encoding="UTF-8"?>
+
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
+
<ShortName>Unduck</ShortName>
+
<Description>Fast DuckDuckGo bang redirects</Description>
+
<InputEncoding>UTF-8</InputEncoding>
+
<Image width="16" height="16" type="image/x-icon">https://unduck.link/search.svg</Image>
+
<Url type="text/html" template="https://unduck.link/?q={searchTerms}"/>
+
</OpenSearchDescription>