Skip to content

Commit 93826a9

Browse files
committed
Merge branch 'phaazon-open-search'
2 parents ceb81a2 + a722240 commit 93826a9

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

src/web/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ mod file;
4444
mod builds;
4545
mod error;
4646
mod sitemap;
47+
mod opensearch;
4748

4849
use std::env;
4950
use std::error::Error;
@@ -99,6 +100,7 @@ impl CratesfyiHandler {
99100
});
100101
router.get("/robots.txt", sitemap::robots_txt_handler);
101102
router.get("/sitemap.xml", sitemap::sitemap_handler);
103+
router.get("/opensearch.xml", opensearch::serve_opensearch);
102104
router.get("/releases", releases::releases_handler);
103105
router.get("/releases/feed", releases::releases_feed_handler);
104106
router.get("/releases/recent/:page", releases::releases_handler);

src/web/opensearch.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use iron::headers::ContentType;
2+
use iron::prelude::*;
3+
use iron::status;
4+
5+
const OPENSEARCH_XML: &'static [u8] = include_bytes!("opensearch.xml");
6+
7+
pub fn serve_opensearch(_: &mut Request) -> IronResult<Response> {
8+
let mut response = Response::with((status::Ok, OPENSEARCH_XML));
9+
response.headers.set(ContentType("application/opensearchdescription+xml".parse().unwrap()));
10+
Ok(response)
11+
}

src/web/opensearch.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
2+
<ShortName>Docs.rs</ShortName>
3+
<Description>Search for crate documentation on docs.rs</Description>
4+
<Image width="16" height="16" type="image/x-icon">https://docs.rs/favicon.ico</Image>
5+
<Url type="text/html" method="get" template="https://docs.rs/releases/search?query={searchTerms}"/>
6+
</OpenSearchDescription>

templates/header.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<link rel="stylesheet" href="/style.css?{{cratesfyi_version_safe}}" type="text/css" media="all" />
1313
{{#if varsb.javascript_highlightjs}}
1414
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.4.0/styles/github.min.css" type="text/css" media="all" />
15+
<link rel="search" href="/opensearch.xml" type="application/opensearchdescription+xml" title="Docs.rs">
1516
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.4.0/highlight.min.js" type="text/javascript" charset="utf-8"></script>
1617
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.4.0/languages/rust.min.js" type="text/javascript" charset="utf-8"></script>
1718
{{/if}}

0 commit comments

Comments
 (0)