diff --git a/docs/content/how-it-works.md b/docs/content/how-it-works.md deleted file mode 100644 index 13f5a4d..0000000 --- a/docs/content/how-it-works.md +++ /dev/null @@ -1,93 +0,0 @@ -+++ -title = "How it works" -description = "How it works" -weight = 1 -+++ - -# Search std docs - -## 1. Build *search index* - -The raw *search index* was generated by **rustc-doc**. The most important function is `build_index()` which -located at [librustdoc/html/render/cache.rs](https://github.com/rust-lang/rust/blob/master/src/librustdoc/html/render/cache.rs). - -The final *search index* is an object array like this: - -```js -var searchIndex = [ - { - crate: "std", - desc: "A hash map implemented with linear probing and Robin Hood bucket stealing.", - name: "HashMap", - parent: undefined, - path: "std::collections", - ty: 3, - type: null - }, - { - crate: "std", - desc: "Applies function to the elements of iterator and returns the first non-none result.", - name: "find_map", - parent: {ty: 8, name: "Iterator"}, - path: "std::iter", - ty: 11, - type: [["self"],["f"]] - }, - ... -]; -``` - -## 2. Build *search words array* based on *search index* - -The *search words array* is the list of search words to query against which build from the raw *search index*. -It's just a plain name array of every Rust structs, traits, enums, functions, methods, macros, etc. -```js -var searchWords = [ - "result", - "option", - "hashmap", - "hashset", - "clone", - "copy", - "display", - "debug", - ... -]; -``` - -## 3. Search keyword in *search words array* - -Using *Levenshtein distance* algorithm to search matched words, the max Levenshtein distance is 2. - -```js -// Max levenshtein distance. -var MAX_LEV_DISTANCE = 2; -``` - -## 4. Sort *search result* - -Sort search result according to *Levenshtein distance*, lexicographical and others metrics. - -## 5. Transform *search result* to *suggestion result* to show in the address bar - -Mapping the *search word* and *search index* to generate the *search result*, build Rust doc link for each result item. - -```js -var suggestResults = [ - { - content: "https://doc.rust-lang.org/std/ops/trait.Deref.html", - description: "std::ops::Deref - Used for immutable dereferencing operations, like `*v`." - }, - { - content: "https://doc.rust-lang.org/std/ops/trait.Deref.html#tymethod.deref", - description: "std::ops::Deref::deref - Dereferences the value." - }, - ... -]; -``` - -# Search crates on crates.io - -## 1. Build crates index - -To be done... diff --git a/docs/templates/_macros.html b/docs/templates/_macros.html index f4db40b..a2f270e 100644 --- a/docs/templates/_macros.html +++ b/docs/templates/_macros.html @@ -8,6 +8,7 @@