158 Commits

Author SHA1 Message Date
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 https://travis-ci.org/rust-lang/rust/builds/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
Steve Klabnik
130240afc6 Rollup merge of #24804 - liigo:new-trait-color, r=steveklabnik
Fixes #24441 

Preview:
![new-trait-color](https://cloud.githubusercontent.com/assets/346530/7331922/d6cbcf72-eb58-11e4-8a1d-4ca5e3683ed2.png)
2015-04-27 10:26:18 -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
Liigo Zhuang
31c3e7ed78 rustdoc: change color of trait types
Fixes #24441
2015-04-25 06:57:18 +08: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
71c1b5b704 rustdoc: Inline methods inhereted through Deref
Whenever a type implements Deref, rustdoc will now add a section to the "methods
available" sections for "Methods from Deref<Target=Foo>", listing all the
inherent methods of the type `Foo`.

Closes #19190
2015-04-16 13:28:15 -07: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
Alex Crichton
0a46933c4d rustdoc: Overhaul stability displays
This commit is an overhaul to how rustdoc deals with stability of the standard
library. The handling has all been revisited with respect to Rust's current
approach to stability in terms of implementation as well as the state of the
standard library today. The high level changes made were:

* Stable items now have no marker by default
* Color-based small stability markers have been removed
* Module listings now fade out unstable/deprecated items slightly
* Trait methods have a separate background color based on stability and also
  list the reason that they are unstable.
* `impl` blocks with stability no longer render at all. This may be re-added
  once the compiler recognizes stability on `impl` blocks.
* `impl` blocks no longer have stability of the methods implemente indicated
* The stability summary has been removed

Closes #15468
Closes #21674
Closes #24201
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
Wesley Wiser
2a1bad70dd Fix extremely small stability bars on docs page
Fixes #23397
2015-03-29 15:14:02 -04:00
Tamir Duberstein
f5765793b6 Strip trailing whitespace 2015-03-15 11:25:43 -07:00
Tamir Duberstein
d51047ded0 Strip all leading/trailing newlines 2015-03-15 09:08:21 -07: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](https://cloud.githubusercontent.com/assets/643127/6422722/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
Pascal Hertleif
c2fe7c4a03 Rustdoc: Add Headline Style for tymethod
Fixes #23230
2015-03-09 20:34:20 +01:00
Manish Goregaokar
a14d6a9052 Rollup merge of #23082 - killercup:patch-6, r=alexcrichton
This should fix #22615. Previously, the playpen links grabbed the content of all `.rusttest` containers on the same level to build the URL. Now they just select the one before the `pre` they are shown in.

I have only tested this by changing the file in my local build of the docs (not by running rustdoc itself).
2015-03-06 22:22:35 +05:30
Pascal Hertleif
1eb37bf457 Fix Playpen Links Containing Multiple Examples
Fixes #22615.
2015-03-05 20:53:53 +01:00
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
Simonas Kazlauskas
888dac97c7 Fix style fallout from 204e2bd442
Links in docblock headers also became blue, which was not intended.
2015-02-20 13:54:11 +02:00
Simonas Kazlauskas
204e2bd442 Style all docblock links properly
Fixes #22493
2015-02-18 21:37:48 +02:00
Simonas Kazlauskas
690cc139b1 Add styles for docblock tables
Fixes #22357
2015-02-15 15:58:45 +02:00
Sean Collins
45f6672861 Make fallback font 'serif', rather than 'sans-serif' fonts 2015-02-09 15:07:47 -05:00
Kevin Yap
1ec13e7f50 Improve mobile-friendliness of API docs
Removes min-width rule from body so that the page does not scroll
horizontally on mobile displays; hides out-of-band information.
2015-01-24 12:09:24 -08: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
Earl St Sauver
2a320f21d0 Fix playpen links to not all be the same
Fixes #20732, that all links in some modules point to the same code
examples was reported. The ID's generated for documents in
librustdoc are not all unique, which means the code rendered as
text is not being properly selected.

This change removes the unique id generation and instead changes the
frontend code to grab the correct code sample by it's relative
position in the dom.
2015-01-13 22:25:11 -08:00
Pascal Hertleif
89ca858bb5 Fix playpen.js errors on pres without IDs
This adds an early return to skip code blocks without IDs.

Fixes #20864.
2015-01-10 11:55:48 +01:00
Barosl Lee
29ff43bbbb Fix rustdoc fallout from #20092
Due to the CSS changes done by the previous patch to make the line
numbers clickable (#20092), the sidebar became unclickable. This commit
reverts the changes and adopts an alternative approach.
2015-01-08 03:10:02 +09:00
Steven Fackler
47c9cc44dc Fix JS error
ECMAScript 6 isn't really supported anywhere

Closes #20681
2015-01-06 20:51:38 -08:00
Alex Crichton
e918a589ae rollup merge of #20092: barosl/rustdoc-line-number-clickable
While talking on IRC, someone wanted to post a link to the Rust source code, but while the lines of the rendered source code do have anchors (`<span id="[line number]">`), there is no convenient way to make links as they are not clickable. This PR makes them clickable.

Also, a minor fix of the FAQ is included.
2015-01-05 18:36:21 -08:00
Dirk Gadsden
57a3ef3f9b Use CSS whitespace rather than padding to indent 2014-12-28 12:24:27 -05:00
Dirk Gadsden
4477c7c52e Indent where clause in rustdoc
* Add <span class=‘where’> around clause
* CSS rule to format the span
(for #20176)
2014-12-27 22:45:13 -05: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