about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-11-04 18:46:19 +0000
committerbors <bors@rust-lang.org>2014-11-04 18:46:19 +0000
commitbb70ee56db2dad603ff3447badfaf7ae86c6733b (patch)
tree69c8fdc58ae7e67fbf9dfdbbdf101e88aa91231d /src
parent1b2ad7831f1745bf4a4709a1fa1772afb47c933c (diff)
parenteca7ab508d0ee0e154c263c2a20b661190400d80 (diff)
downloadrust-bb70ee56db2dad603ff3447badfaf7ae86c6733b.tar.gz
rust-bb70ee56db2dad603ff3447badfaf7ae86c6733b.zip
auto merge of #18528 : seanjensengrey/rust/doc-18498, r=brson
This addresses https://github.com/rust-lang/rust/issues/18498 by adding a prepopulated search box to do site search on `doc.rust-lang.org` using duckduckgo AND generating a search url against the rust documentation using the internal search facilities.

* https://duckduckgo.com/?q=type+Option+unwrap_or_else+site%3Adoc.rust-lang.org
* http://doc.rust-lang.org/core/?search=unwrap_or_else
Diffstat (limited to 'src')
-rw-r--r--src/doc/not_found.md44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/doc/not_found.md b/src/doc/not_found.md
index f49772f29a1..bd4d9591097 100644
--- a/src/doc/not_found.md
+++ b/src/doc/not_found.md
@@ -11,9 +11,53 @@ Looks like you've taken a wrong turn.
 
 Some things that might be helpful to you though:
 
+## Search
+* <form action="https://duckduckgo.com/">
+    <input type="text" id="site-search" name="q" size="80"></input>
+    <input type="submit" value="Search DuckDuckGo">
+</form>
+* Rust doc search: <span id="core-search"></span>
+
 ## Reference
 * [The Rust official site](http://rust-lang.org)
 * [The Rust reference](http://doc.rust-lang.org/reference.html) (* [PDF](http://doc.rust-lang.org/reference.pdf))
 
 ## Docs
 * [The standard library](http://doc.rust-lang.org/std/)
+
+<script>
+function get_url_fragments() {
+    var last = document.URL.split("/").pop();
+    var tokens = last.split(".");
+    var op = [];
+    for (var i=0; i < tokens.length; i++) {
+        var t = tokens[i];
+        if (t == 'html' || t.indexOf("#") != -1) {
+            // no html or anchors
+        } else {
+            op.push(t);
+        }
+    }
+    return op;
+}
+
+function populate_site_search() {
+    var op = get_url_fragments();
+
+    var search = document.getElementById('site-search');
+    search.value = op.join(' ') + " site:doc.rust-lang.org";
+}
+
+function populate_rust_search() {
+    var op = get_url_fragments();
+    var lt = op.pop();
+
+    // #18540, use a single token
+
+    var search = document.getElementById('core-search');
+    search.innerHTML = "<a href=\"http://doc.rust-lang.org/core/?search=" + lt + "\">" + lt + "</a>";
+}
+populate_site_search();
+populate_rust_search();
+</script>
+