1
Fork 0
Commit graph

89 commits

Author SHA1 Message Date
Andreas Tolfsen
6b64826469 librustdoc: blur page when help dialogue is present
Blurs the document's background when the help dialogue is present,
making the contents of the dialogue stand out more.
2015-07-20 11:36:47 +01:00
Tamir Duberstein
b3a9cd3a69 DRY 2015-07-17 14:35:09 -04:00
Steve Klabnik
c9e6d9a323 Merge branch 'fix-26673' of https://github.com/nhowell/rust into rollup_central 2015-07-16 17:55:19 -04:00
Brian Anderson
3a180d15f8 Address feedback 2015-07-13 18:38:00 -07:00
Andreas Tolfsen
8792c5c040 librustdoc: generalise handling of keyboard shortcuts 2015-07-08 13:12:18 +01:00
Nick Howell
36882a0007 rustdoc: Reset the title when pressing the back button
Fixes #26673
2015-07-01 23:28:54 -04:00
Mathieu David
49b73e46d6 In js from the docs, change keyboard eventlistener to be compatible with non-english keyboard layouts. Fixes #26016 Fixes #16572 2015-07-01 10:11:23 +02:00
Johannes Oertel
d234b0bb5f rustdoc: Update document title when displaying search results
Fixes #26360.
2015-06-18 18:39:31 +02:00
Pascal Hertleif
94b6ddc37c Rustdoc Search: Increase Relevance of Primitives 2015-05-22 14:15:35 +02:00
Pascal Hertleif
a713867c74 Rustdoc: Clean Up Some JS
There are more possible optimizations left (cached length in loops) as
well as some possible bugs (shadowed variables) to fix. This is mostly
syntactic.
2015-05-22 14:14:28 +02:00
bors
4b88e8f63e Auto merge of #25225 - bluss:doc-search-assoc-items, r=alexcrichton
Rustdoc fixes for associated items

This is related to isssue #22442 and solves it partly.

This solves the search index links of associated types and constants,
so that they link to the trait page.

Also add an Associated Constants section if constants are present.
2015-05-11 20:02:18 +00:00
Ulrik Sverdrup
ff4e061049 rustdoc: Link associated items in search index to trait
This is related to isssue #22442 and solves it partly.

This solves the links of associated types and constants, so that they
link to the trait page.
2015-05-09 00:03:42 +02:00
Rory O’Kane
61bb091f06 Remove trailing whitespace on blank line
This style inconsistency was noted at 61583070 (L371)
2015-05-07 04:17:10 -04:00
Rory O’Kane
92565b3dfb Refactor doc toggle button label changing
To separate concerns, instead of checking the state of `#toggle-all-docs` by looking at its label text, I add or remove a class `will-expand` depending on whether the button’s next click will expand everything. (The `if` statement’s two branches were swapped as part of this change.)

I moved the desired text values to a function `labelForToggleButton`, so changing the values will be easier. I also note in a comment the other file where the text is duplicated.

To allow the labels of both types of toggle buttons to be uniformly set, I added a `span.inner` to the global button too.

I split the template in `render.rs` into multiple lines to make room for the `span`, and that adds whitespace around the `[` and `]` text elements. That seems to be okay, though – the page still looks the same.

I updated the CSS styling for `.collapse-toggle > .inner` to add a little extra space around the symbol, to make minus signs easier to identify. (`#toggle-all-docs > .inner` does not need the same style, since its text size is bigger, so it naturally puts more space around the symbol.)
2015-05-07 04:11:14 -04:00
Rory O’Kane
2258aef74f Fix doc [−] button bug by escaping differently
The cause of the problem is described here: https://github.com/rust-lang/rust/pull/24797#issuecomment-97049765 .

I tested this new `main.js` by changing the `main.js` content of a rendered docs page to this new content. The [−] button worked again.
2015-04-30 00:07:42 -04:00
Rory O’Kane
72e8f7b1ab Change literal minus ‘−’ to HTML entity ‘−’
So that if people accidentally delete the character, they won’t re-type it as a hyphen, which would cause bugs.

I changed ‘+’ too, even though it won’t be re-typed incorrectly, so that it is easier to see when plus is used as a symbol for the button, and when it is used as an operator in code. It also makes it clearer that the use of an entity for minus is on purpose, so people won’t be tempted to replace the entity incorrectly with a hyphen character.
2015-04-27 02:41:45 -04:00
Rory O’Kane
4ade7080c3 In [-] doc buttons, change hyphen ‘-’ to minus ‘−’
The minus sign ‘−’ is the same width as the plus sign ‘+’, so the button’s transition between the two symbols will look more smooth.
2015-04-24 20:29:28 -04:00
Manish Goregaokar
af6ec32842 Rollup merge of #24717 - liigo:add-back-toggle-links, r=alexcrichton
r? @alexcrichton (since you added `.stability` warning messages)
2015-04-24 19:21:14 +05:30
Liigo Zhuang
76a590d0ef rustdoc: add back [-]/[+] toggle links for unstable-methods 2015-04-23 14:09:05 +08:00
Liigo Zhuang
7a53081522 rustdoc: toggle collapse/expand all docs using the same link 2015-04-23 01:37:01 +08:00
Alex Crichton
8fb31f75c9 rustdoc: Fix cross-crate macro source links
The source filename for cross crate macros isn't quite right so the normal
generated links are invalid.

Closes #21311
2015-04-16 09:44:33 -07:00
Barosl Lee
cef96b95f2 rustdoc: Prevent '/' from showing the help dialog
Only '?' should do that.

Fixes #24289.
2015-04-13 10:33:50 +09:00
bors
083b8a4041 Auto merge of #24055 - estsauver:24044, r=alexcrichton
If a result is highlighted, when the search changes that state should no
longer be highlighted. Fixes #24044

cc @steveklabnik
2015-04-05 00:03:21 +00:00
Earl St Sauver
1b1d910cd7 Make changing doc search unhighlight current result
If a result is highlighted, when the search changes that state should no
longer be highlighted. Fixes #24044

cc @steveklabnik
2015-04-04 15:21:18 +07:00
Carlos Galarza
48aea41adb Fix sidebar bug
Validate if the description is available in the rawSearchIndex
2015-04-01 10:16:36 -05:00
bors
30e1f9a1c2 Auto merge of #23289 - mihneadb:rustdoc-search-by-type, r=alexcrichton
This adds search by type (for functions/methods) support to Rustdoc. Target issue is at https://github.com/rust-lang/rfcs/issues/658.

I've described my approach here: https://github.com/rust-lang/rfcs/issues/658#issuecomment-76484200. I'll copy the text in here as well:

---

Hi, it took me longer than I wished, but I have implemented this in a not-too-complex way that I think can be extended to support more complex features (like the ones mentioned [here](https://github.com/rust-lang/rust/issues/12866#issuecomment-66945317)).

The idea is to generate a JSON representation of the types of methods/functions in the existing index, and then make the JS understand when it should look by type (and not by name).

I tried to come up with a JSON representation that can be extended to support generics, bounds, ref/mut annotations and so on. Here are a few samples:

Function:

```rust
fn to_uppercase(c: char) -> char
```

```json
{
    "inputs": [
        {"name": "char"}
    ],
    "output": {
        "name": "char",
    }
}
```

Method (implemented or defined in trait):

```rust
// in struct Vec
// self is considered an argument as well
fn capacity(&self) -> usize
```

```json
{
    "inputs": [
        {"name": "vec"}
    ],
    "output": {
        "name": "usize"
    }
}
```

This simple format can be extended by adding more fields, like `generic: bool`, a `bounds` mapping and so on.

I have a working implementation in https://github.com/rust-lang/rust/compare/master...mihneadb:rustdoc-search-by-type. You can check out a live demo [here](http://data.mihneadb.net/doc/std/index.html?search=charext%20-%3E%20char).

![screenshot from 2015-02-28 00 54 00](7e5374ee-bee4-11e4-99a6-9aac3c9d5068.png)


The feature list is not that long:
- search by types (you *can* use generics as well, as long as you use the exact name - e.g. [`vec,t -> `](http://data.mihneadb.net/doc/std/index.html?search=vec%2C%20t%20-%3E))
- order of arguments does not matter
- `self` is took into account as well (e.g. search for `vec -> usize`)
- does not use "complex" annotations (e.g. you don't search for `&char -> char` but for `char -> char`)

My goal is to get a working, minimal "base" merged so that others can build upon it. How should I proceed? Do I open a PR (badly in need of code review since this is my first non "hello world"-ish rust code)?

---
2015-03-14 22:07:25 +00:00
Mihnea Dobrescu-Balaur
7b7b938be1 Add support to search functions by type to rustdoc. 2015-03-14 20:45:27 +02:00
Manish Goregaokar
21b024ae27 Rollup merge of #22769 - :rustdocfix, r=brson
Fixes #22325
2015-03-12 09:13:53 +05:30
Kang Seonghoon
9e28156551 rustdoc: Move sidebar items into shared JavaScript.
It had been a source of huge bloat in rustdoc outputs. Of course,
we can simply disable compiler docs (as `rustc` generates over 90M
of HTML) but this approach fares better even after such decision.

Each directory now has `sidebar-items.js`, which immediately calls
`initSidebarItems` with a JSON sidebar data. This file is shared
throughout every item in the sidebar. The current item is
highlighted via a separate JS snippet (`window.sidebarCurrent`).
The JS file is designed to be loaded asynchronously, as the sidebar
is rendered before the content and slow sidebar loading blocks
the entire rendering. For the minimal accessibility without JS,
links to the parent items are left in HTML.

In the future, it might also be possible to integrate crates data
with the same fashion: `sidebar-items.js` at the root path will do
that. (Currently rustdoc skips writing JS in that case.)

This has a huge impact on the size of rustdoc outputs. Originally
it was 326MB uncompressed (37.7MB gzipped, 6.1MB xz compressed);
it is 169MB uncompressed (11.9MB gzipped, 5.9MB xz compressed) now.
The sidebar JS only takes 10MB uncompressed & 0.3MB gzipped.
2015-03-05 16:35:43 +09:00
Julian Orth
1275c1102e fix rustdoc performance problems
Fixes #22325
2015-02-24 22:46:52 +01:00
bors
d8d5e4d217 Auto merge of #20221 - liigo:rustdoc-sidebar-tooltips-v3, r=alexcrichton
This pull request add tooltips to most links of sidebar.
The tooltips display "summary line" of items' document.

Some lengthy/annoying raw markdown code are eliminated, such as links and headers.
- `[Rust](http://rust-lang.org)` displays as `Rust` (no URLs)
- `# header` displays as `header` (no `#`s)

Some inline spans, e.g. ``` `code` ``` and ```*emphasis*```, are kept as they are, for better readable.

I've make sure `&` `'` `"` `<` and `>` are properly displayed in tooltips, for example, `&'a Option<T>`.

Online preview: http://liigo.com/tmp/tooltips/std/index.html

@alexcrichton @steveklabnik since you have reviewed my previous ([v1](https://github.com/rust-lang/rust/pull/13014),[v2](https://github.com/rust-lang/rust/pull/16448)) PRs of this serise, which have been closed for technical reasons. Thank you.
2015-01-23 02:53:50 +00:00
Eduard Burtescu
3102b9e19e rustdoc: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Liigo Zhuang
17ebb6053e fix fallout 2015-01-21 21:31:09 +08:00
Liigo Zhuang
0c06442bcd display plain summary line in javascript 2015-01-21 21:31:09 +08:00
Liigo Zhuang
58a257bcdf rustdoc: add tooltips to sidebar 2015-01-21 21:31:09 +08:00
Chris Thorn
f355747a19 Increase docs search box delay
Increases the delay of the search box to 500ms after key up. I tried
adding a three character minimum for setting the delay, but didn't find
it very useful.

Should close #20095
2015-01-17 16:36:57 -08:00
Steven Fackler
47c9cc44dc Fix JS error
ECMAScript 6 isn't really supported anywhere

Closes #20681
2015-01-06 20:51:38 -08:00
Barosl Lee
739f74bb15 Make the line numbers of the source code clickable 2014-12-27 12:50:10 +09:00
Corey Richardson
4e492cbaf8 rollup merge of #19515: lifthrasiir/rustdoc-wrong-dedup
Fixes #17332.
2014-12-05 10:07:44 -08:00
Corey Richardson
a8c1812f36 rollup merge of #19503: lifthrasiir/xenophobic-rustdoc
This series of commits deals with broken links to the source code. It also refactors some repetitive codes from Rustdoc. The most important commit, 1cb1f00d40, describes the rationale; this will fix a half of #16289. Other commits are reasonably independent to each other and can be made into indiviudal PRs at the request.

### Notes on the broken source links

As of bda97e8557 (I've used this to check the PR works as intended), there are 281 (!) such broken links. They can be further classified as follows:

* 178 links to incorrect item types. This is the first half of #16289, and this PR fixes all of them.
* 89 links to redirect pages. They are not technically "broken" but still doesn't give a source code. I have a fix for this in mind, which would make a redirect page slightly *fat*.
* 14 links to incorrect `DefId` in the `gotosrc` parameter. This is #15309, and affects many `liballoc` reexports in `libstd` but *nothing else* (curiously). I'm yet to track this down; might be a metadata bug (not sure).
* 0 links to the crate reexported as a different name. This is the second half of #16289, and seems not hard to fix but I'm running out of time.

Prevalence of this kind of bugs calls for a full link verifier integrated into the testing process. :S
2014-12-05 10:07:38 -08:00
Kang Seonghoon
a12b83996e rustdoc: Do not deduplicate items when their parents differ.
Fixes #17332.
2014-12-04 13:52:23 +09:00
Kang Seonghoon
1cb1f00d40 rustdoc: Removed Foreign{Function,Static} item types.
They are just (unsafe) functions and static items to most users
and even compilers! The metadata doesn't distinguish them, so Rustdoc
ended up producing broken links (generated `ffi.*.html`, links to
`fn.*.html`). It would be best to avoid this pitfall at all.
2014-12-04 01:00:01 +09:00
Paul Collier
e407472f90 rustdoc: Check for href when prepending rootPath
Fixes #18354.
2014-12-01 20:53:32 -08:00
Alex Crichton
01d58fe2cb rustdoc: Implement constant documentation
At the same time, migrate statics to constants.
2014-10-09 09:44:51 -07:00
Alex Crichton
27af691017 rollup merge of #17226 : P1start/rustdoc-colour 2014-09-17 08:48:53 -07:00
P1start
8b88811419 rustdoc: Correctly distinguish enums and types
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-17 18:53:54 +12:00
Huon Wilson
0deb77d382 Display the doc-block toggle on everything again.
This needs a clone otherwise each successive insertion detaches `toggle`
from the previous position.

Fixes #17125.
2014-09-14 12:07:48 +10:00
bors
19dc574890 auto merge of #17035 : huonw/rust/moar-jquery, r=alexcrichton
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-07 21:06:29 +00:00
Huon Wilson
9151874f40 Use more jQuery to avoid displaying Expand Description more often.
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-06 11:04:39 +10:00
Carol Nichols
3dc9deb6e5 Make doc search results use <a> tags instead of js for navigating
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-31 17:11:42 -04:00