summary refs log tree commit diff
path: root/src/librustdoc/html/static/main.js
AgeCommit message (Collapse)AuthorLines
2014-09-17rollup merge of #17226 : P1start/rustdoc-colourAlex Crichton-1/+1
2014-09-17rustdoc: Correctly distinguish enums and typesP1start-1/+1
This is done by adding a new field to the `DefTy` variant of `middle::def::Def`, which also clarifies an error message in the process. Closes #16712.
2014-09-14Display the doc-block toggle on everything again.Huon Wilson-1/+1
This needs a clone otherwise each successive insertion detaches `toggle` from the previous position. Fixes #17125.
2014-09-07auto merge of #17035 : huonw/rust/moar-jquery, r=alexcrichtonbors-13/+14
Sometimes (e.g. on Rust CI) the "expand description" text of the collapse toggle was displayed by default, when a page is first loaded (even though the description is expanded), because some Content-Security-Policy settings disable inline CSS. Setting it the style with the `.css` method allows the output to be used in more places.
2014-09-06Use more jQuery to avoid displaying Expand Description more often.Huon Wilson-13/+14
Sometimes (e.g. on Rust CI) the "expand description" text of the collapse toggle was displayed by default, when a page is first loaded (even though the description is expanded), because some Content-Security-Policy settings disable inline CSS. Setting it the style with the `.css` method allows the output to be used in more places.
2014-08-31Make doc search results use <a> tags instead of js for navigatingCarol Nichols-31/+23
This has the primary advantage of not interfering with browser default behavior for links like being able to cmd/ctrl+click on a result to open the result in a new tab but leave the current page as-is (previous behavior both opened a new tab and changed the current tab's location to the result's)
2014-08-09rustdoc: use raw search in URLAlexis Beingessner-3/+5
fixes #16385 fixes #16271
2014-08-09removing 'str'='struct' search synonymAlexis Beingessner-2/+1
fixes #16384
2014-08-02Add hide/show detail toggles to rustdocAlexis Beingessner-0/+51
All doccomments are now collapsable via a nearby [-] button Adds [collapse all] and [expand all] buttons to the top of all api pages Tweaks some layout to accomadate this
2014-07-31auto merge of #15385 : jroweboy/rust/master, r=brsonbors-44/+89
This enables the docs search function to be more forgiving for spelling mistakes. The algorithm works as a dynamic programming algorithm to detect the minimum number of changes required to the search parameter string in order to match any string in the search index. If the number of changes is less then a threshold (currently defined as 3), then the search parameter will be included as it is a possible misspelling of the word. Any results returned by the algorithm are sorted by distance and are ranked lower than results that are partial or exact matches (aka the matches returned by the original search algorithm). Additionally, the increment in the for loops in this file were using one of three different ways to increment (`i += 1` `i++` and `++i`) so I just standardized it to `++i`. As an example, consider searching for the word `String` and accidentally typing in `Strnig`. The old system would return no results because it is a misspelling, but the Levenshtein distance between these two inputs is only two, which means that this will return `String` as a result. Additionally, it will return a few other results such as `strong`, and `StdRng` because these are also similar to `Strnig`. Because of the ranking system though, this change should be unobtrusive to anyone that spells the words correctly, as those are still ranked first before any Levenshtein results.
2014-07-28rustdoc: improvements to stability dashboardAaron Turon-0/+3
* Makes dashboard width dynamic. * Colors unmarked items. * Gives overall crate percentages.
2014-07-25rustdoc: Bind keydown instead of keypress for navAlex Crichton-2/+2
Apparently keypress doesn't quite work in all browsers due to some not invoking the handler and jquery not setting the right `which` field in all circumstances. According to http://stackoverflow.com/questions/2166771 switching over to `keydown` works and it appears to do the trick. Tested in Safari, Firefox, and Chrome. Closes #15011
2014-07-03Updated the licensing information for the Levenshtein distance functionJames Rowe-2/+5
2014-07-03Improved the search by including a levenshtein distance calculation which ↵James Rowe-44/+86
enables the docs search function to be more forgiving for spelling mistakes
2014-06-19(doc) Properly doc hotkeys in generated docs.Zach Pomerantz-6/+6
Updated search bar to match help text. Used correct, normalized hotkeys in search. Updated shortcut menu with working shortcuts (tabs). Changed height of search help.
2014-06-13rustdoc: Larger click areas for sidebar itemsValentin Tsatskin-1/+0
* Change links to display:block for click larger targets * Remove linebreaks due to extra space * Adjust margins so that element spacing stays the same * Sidebar item hover background colour chosen from <pre> styling
2014-06-06rustdoc: Submit examples to play.rust-lang.orgAlex Crichton-1/+1
This grows a new option inside of rustdoc to add the ability to submit examples to an external website. If the `--markdown-playground-url` command line option or crate doc attribute `html_playground_url` is present, then examples will have a button on hover to submit the code to the playground specified. This commit enables submission of example code to play.rust-lang.org. The code submitted is that which is tested by rustdoc, not necessarily the exact code shown in the example. Closes #14654
2014-06-01rustdoc: Fix some more broken linksAlex Crichton-1/+4
2014-05-31rustdoc: Create anchor pages for primitive typesAlex Crichton-1/+2
This commit adds support in rustdoc to recognize the `#[doc(primitive = "foo")]` attribute. This attribute indicates that the current module is the "owner" of the primitive type `foo`. For rustdoc, this means that the doc-comment for the module is the doc-comment for the primitive type, plus a signal to all downstream crates that hyperlinks for primitive types will be directed at the crate containing the `#[doc]` directive. Additionally, rustdoc will favor crates closest to the one being documented which "implements the primitive type". For example, documentation of libcore links to libcore for primitive types, but documentation for libstd and beyond all links to libstd for primitive types. This change involves no compiler modifications, it is purely a rustdoc change. The landing pages for the primitive types primarily serve to show a list of implemented traits for the primitive type itself. The primitive types documented includes both strings and slices in a semi-ad-hoc way, but in a way that should provide at least somewhat meaningful documentation. Closes #14474
2014-05-31rustdoc: Show all implementors of traitsAlex Crichton-8/+6
When inlining documentation across crates, primitive implementors of traits were not shown. This commit tweaks the infrastructure to treat primitive and Path-like impls the same way, displaying all implementors everywhere. cc #14462
2014-05-25rustdoc: Move inlining to its own moduleAlex Crichton-8/+4
2014-05-25rustdoc: Get [src] links working for inlined doxAlex Crichton-0/+10
These links work by hyperlinking back to the actual documentation page with a query parameter which will be recognized and then auto-click the appropriate [src] link.
2014-05-21rustdoc: Show types for traits across cratesAlex Crichton-0/+22
Right now, when you look in the "Implementors" section for traits, you only see implementors within that crate. This commit modifies that section to include implementors from neighboring crates as well. For example, the Container trait currently says that it is only implemented by strings and slices, but it is in fact implemented by nearly all containers. Implementation-wise, this change generates an "implementors cache" similarly to the search index where each crate will append implementors to the files. When the page for a trait is loaded, it will load its specific cache file, rendering links for all upstream types which implement the trait.
2014-05-10rustdoc: Fix search links to enums/typedefsAlex Crichton-2/+2
When the values in html::item_type were updated, the JS definitions were accidentally not updated as well. Closes #14095
2014-05-02rustdoc: escape shown input to prevent injectionAdrien Tétar-3/+6
2014-04-29rustdoc: Make going back in browser history work after typing a search termNoam Yorav-Raphael-5/+4
2014-04-15rustdoc: Better sorting criteria for searching.Kang Seonghoon-51/+52
This essentially rewrites the sorting algorithm, which relied on the implementation-defined handling of non-consistent sorting function (cf. ECMA-262 5th edition, section 15.4.4.11) and was also a bit inefficient. The new criteria expands the prior criteria while adding these ones: - The current crate is always preferred over other crates. (Closes #13178) - An item with a description is preferred over one without it, if item names match. This is a heuristic assuming that the documented item is more likely to be relevant. - An item with no literal occurrence of search query is handled correctly.
2014-04-14rustdoc: Omit repeated paths in the search index.Kang Seonghoon-2/+4
Since the items roughly follow the lexical order, there are many consecutive items with the same path value which can be easily compressed. For the library and compiler docs, this commit decreases the index size by 26% and 6% before and after gzip, respectively.
2014-04-14rustdoc: Get rid of `allPaths` global variable by merging it into `searchIndex`.Kang Seonghoon-14/+30
2014-04-14rustdoc: Use an array instead of an object for the search index.Kang Seonghoon-8/+12
`buildIndex` JS function recovers them into the original object form. This greatly reduces the size of the uncompressed search index (27%), while this effect is less visible after gzipped (~5%).
2014-04-14rustdoc: Represent item types as a small number in the search index.Kang Seonghoon-5/+31
Has negligible improvements with gzip, but saves about 7% without it. This also has an effect of changing the tie-breaking order of item types.
2014-04-10rustdoc: Clean the `initSearch` routine up.Kang Seonghoon-43/+39
2014-03-18rustdoc: Implement cross-crate searchingAlex Crichton-119/+125
A major discoverability issue with rustdoc is that all crates have their documentation built in isolation, so it's difficult when looking at the documentation for libstd to learn that there's a libcollections crate with a HashMap in it. This commit moves rustdoc a little closer to improving the multiple crate experience. This unifies all search indexes for all crates into one file so all pages share the same search index. This allows searching to work across crates in the same documentation directory (as the standard distribution is currently built). This strategy involves updating a shared file amongst many rustdoc processes, so I implemented a simple file locking API for handling synchronization for updates to the shared files. cc #12554
2014-03-09rustdoc: hardcode each header as a link.Huon Wilson-6/+0
This avoids having to include JS in the guide/tutorial/manual pages just to get the headers being links. The on-hover behaviour showing the little section marker § is preserved, because that gives a useful hint that the heading is a link.
2014-03-05rustdoc: Add anchors to section headersAlex Crichton-0/+7
This commit adds a appear-on-over link to all section headers to generated documentation. Each header also receives an id now, even those generated through markdown. The purpose of this is to provide easy to link to sections. This modifies the default header markdown generation because the default id added looks like "toc_NN" which is difficult to reconcile among all sections (by default each section gets a "toc_0" id), and it's also not very descriptive of where you're going. This chooses to adopt the github-style anchors by taking the contents of the title and hyphen-separating them (after lower casing). Closes #12681
2014-02-22Fixed invalid JavaScriptDaniel Fagnan-1/+1
Signed-off-by: Daniel Fagnan <dnfagnan@gmail.com>
2014-02-21rustdoc: web: don't reset the search barCorey Richardson-4/+13
2014-01-23Make docs search results URL-addressableDaniel MacDougall-3/+50
This change adds two improvements to docs searching functionality. First, search results will immediately be displayed when a ?search=searchterm query string parameter is provided to any docs url. Second, search results are now inserted into the browser history, allowing for easier navigation between search results and docs pages.
2014-01-15Removed redundant code, improve performanceb1nd-9/+1
closes #10535
2014-01-14Completed patch searching for rust docsb1nd-49/+125
Made temporary changes to include multiple keywords in rustdoc search Implemented search based on multiple keywords Added some commenting and house cleaning Added path searching to rustdoc
2013-10-02Highlight line numbers of the lines referred to in the url hashJordi Boggiano-0/+19
2013-09-30rustdoc: Detect repeated keys and fix widthAlex Crichton-4/+4
When a key is pressed and held, this now does the OS-style repeating after a bit of a pause. Also fixes the width of search results to be correct (was changed beforehand and didn't catch this).
2013-09-27rustdoc: Fix search for something on the same pageAlex Crichton-6/+18
2013-09-27rustdoc: Don't emit redirect pages for variants/fieldsAlex Crichton-7/+34
It's just a waste of disk space and it can be done just as well in JS.
2013-09-22rustdoc: Out with the old, in with the newAlex Crichton-0/+420
Removes old rustdoc, moves rustdoc_ng into its place instead (plus drops the _ng suffix). Also shreds all reference to rustdoc_ng from the Makefile rules.