Commit graph

1320 commits

Author SHA1 Message Date
Guillaume Gomez
345519baa7 Fix scrollbars appearing on information tooltip on mac when they shouldn't 2021-10-25 11:40:13 +02:00
Matthias Krüger
b837605012
Rollup merge of #90155 - jsha:outdent-methods, r=GuillaumeGomez,camelid
Fix alignment of method headings for scannability

We sometimes use indentation to indicate something is a heading: The section that comes after is indented by 24px relative to the heading. However, the relationship between the "Implementations" section heading, the `impl` headings it contains, and the `pub fn` subheadings within each impl, is awkward. It goes **Implementations**, 15px indent, `impl`, 5px indent, `pub fn`, 4px indent, docblock.

I line up `impl` and `pub fn` with the `Implementations` heading, give `impl` a larger font size to indicate it is higher in the hierarchy, and indent the docblock a full 24px relative to their parent, matching the indents we use elsewhere to distinguish section headings. By letting the `pub fn` stick out to the left of the docblock, I think this makes methods significantly more scannable.

Related to #59829

r? `````@camelid`````

[Old](https://doc.rust-lang.org/nightly/std/string/struct.String.html#implementations):

[![image](https://user-images.githubusercontent.com/220205/138380233-9c63a0f2-0f80-40a3-ab3d-a1ee9fb7c5d8.png)](https://doc.rust-lang.org/nightly/std/string/struct.String.html#implementations)

[New](https://jacob.hoffman-andrews.com/rust/outdent-methods/std/string/struct.String.html#implementations):

[![image](https://user-images.githubusercontent.com/220205/138392479-b45fce3f-bf43-42e0-81ee-c4bb9ac35cda.png)](https://jacob.hoffman-andrews.com/rust/outdent-methods/std/string/struct.String.html#implementations)
2021-10-24 15:48:44 +02:00
Jacob Hoffman-Andrews
542ab2daa6 Outdent method headings so they stand out
The makes the heading / documentation distinction clearer.
2021-10-23 11:50:11 -07:00
Matthias Krüger
dcf9242795
Rollup merge of #85833 - willcrichton:example-analyzer, r=jyn514
Scrape code examples from examples/ directory for Rustdoc

Adds support for the functionality described in https://github.com/rust-lang/rfcs/pull/3123

Matching changes to Cargo are here: https://github.com/rust-lang/cargo/pull/9525

Live demo here: https://willcrichton.net/example-analyzer/warp/trait.Filter.html#method.and
2021-10-23 14:58:39 +02:00
Will Crichton
8f80d86d85 Small scrape-example fixes 2021-10-19 20:08:30 -07:00
Yuki Okushi
570b999c96
Rollup merge of #90036 - jsha:less-rule, r=GuillaumeGomez
Remove border-bottom from most docblocks.

Headings in the top-doc docblock still get a border-bottom due to a rule
that covers all h2, h3, and h4. Method docblocks are generally h5, and
so don't get a border-bottom anymore.

This fixes a problem where a sub-sub-heading within a method would have
a line that went all the way across the page, creating a division that
made that sub-sub-heading look much more important than it really is.

Fixes #90033

Demo at https://jacob.hoffman-andrews.com/rust/less-rule/std/string/struct.String.html

r? ``@GuillaumeGomez``
2021-10-20 04:35:17 +09:00
Yuki Okushi
7ceab9ef14
Rollup merge of #90018 - GuillaumeGomez:too-long-item-names, r=jsha
Fix rustdoc UI for very long type names

Fixes #89972.

While working on it, I also discovered that when the item name is too long, it also breaks the flow of the page.

To make things right, I also renamed the `type-decl` CSS class into `item-decl` (because this PR also generates it for more than type declarations).

So here are the before/after screenshots:

![Screenshot from 2021-10-18 16-58-03](https://user-images.githubusercontent.com/3050060/137757247-637fcf04-4406-49c6-8a8a-18c2074aacd9.png)
![Screenshot from 2021-10-18 16-58-26](https://user-images.githubusercontent.com/3050060/137757252-17935e63-53b3-449f-a535-7be91ff0e257.png)

![Screenshot from 2021-10-18 16-58-07](https://user-images.githubusercontent.com/3050060/137757278-8b12e348-2980-4fc4-8853-bef99d58981f.png)
![Screenshot from 2021-10-18 16-58-28](https://user-images.githubusercontent.com/3050060/137757282-534a0e1b-3016-49ba-b3ac-e45bdb9035cb.png)

r? ``@jsha``
2021-10-20 04:35:15 +09:00
Jacob Hoffman-Andrews
e39934374a Reduce margin on h5 and h6 2021-10-18 21:04:38 -07:00
Jacob Hoffman-Andrews
9aec3a0e5a Remove border-bottom from most docblocks.
Headings in the top-doc docblock still get a border-bottom due to a rule
that covers all h2, h3, and h4. Method docblocks are generally h5, and
so don't get a border-bottom anymore.

This fixes a problem where a sub-sub-heading within a method would have
a line that went all the way across the page, creating a division that
made that sub-sub-heading look much more important than it really is.
2021-10-18 20:24:41 -07:00
Guillaume Gomez
809330bda6 Prevent documentation page title to grow too big 2021-10-18 15:30:03 +02:00
Guillaume Gomez
8b7a2dd462 * Remove left margin on items declaration at the top of their documentation page
* Rename "type-decl" into "item-decl" to reflect the change of usage
2021-10-18 15:06:38 +02:00
Shinwoo Park
d2564ce5a9 rustdoc: update noto sans kr 2021-10-12 04:47:34 +09:00
Stefan Schindler
4bd7e965b2 Cleanup .item-table CSS 2021-10-11 10:53:48 +02:00
Matthias Krüger
bf01a59be5
Rollup merge of #89736 - GuillaumeGomez:rm-unused-css-rule, r=dns2utf8
Remove unused CSS rule

As you can see in the firefox devtools:

![Screenshot from 2021-10-10 14-28-08](https://user-images.githubusercontent.com/3050060/136695689-16c77ceb-b1ab-40df-963a-048f2258e217.png)

It needs the display to be `grid` or `inline-grid`, which isn't the case.

r? `@dns2utf8`
2021-10-11 00:34:41 +02:00
Guillaume Gomez
5611b43d7f Remove unused CSS rule 2021-10-10 14:27:36 +02:00
Guillaume Gomez
0bfac7f67f Fix <code> blocks in doc blocks display on mobile 2021-10-10 13:30:56 +02:00
Will Crichton
e22e858687 Move more scrape-examples logic from JS to rust
Fix failing test

Add missing backslash

Fix padding issue with horizontal scrollbar
2021-10-08 11:14:01 -07:00
Will Crichton
bb383edb69 Move some expansion logic into generation-time, fix section header links, remove ID from line numbers, fix horizontal scrolling on non-expanded elements 2021-10-07 09:46:23 -07:00
Will Crichton
5584c79597 Update to latest rustc and rustdoc styles 2021-10-06 21:43:40 -07:00
Will Crichton
55731bbc7d Fix lint error, change scrape-examples.js minify call 2021-10-06 19:45:26 -07:00
Will Crichton
25323ec306 Move JS into a standalone file 2021-10-06 19:45:26 -07:00
Will Crichton
829b1a9dd9 Incorporate jyn's feedback
* Move call location logic from function constructor to rendering
* Fix issue with macro spans in scraping examples
* Clean up example loading logic

Documentation / newtype for DecorationInfo

Fix line number display

Serialize edition of call site, other small cleanup
2021-10-06 19:45:23 -07:00
Will Crichton
a1cb19444f Add styles for non-white themes
Tweak colors

Tabs

New link heading style
2021-10-06 19:44:51 -07:00
Will Crichton
18edcf86d2 Reduce blur size, fix example width bug, add better error handling for I/O issues
Remove repository url

Fix formatting

Fix file_span in print_src

Formatting
2021-10-06 19:44:51 -07:00
Will Crichton
55bb51786e Move highlighting logic from JS to Rust
Continue migrating JS functionality

Cleanup

Fix compile error

Clean up the diff

Set toggle font to sans-serif
2021-10-06 19:44:50 -07:00
Will Crichton
eea8f0a39a Sort examples by size
Improve styling

Start to clean up code, add comments
2021-10-06 19:44:50 -07:00
Will Crichton
b6338e7792 Generate example source files with corresponding links
Add display name

Fix remaining merge conflicts

Only embed code for items containing examples
2021-10-06 19:44:50 -07:00
Will Crichton
2855bf039a Factor scraping and rendering into separate calls to rustdoc
Simplify toggle UI logic, add workspace root for URLs
2021-10-06 19:44:50 -07:00
Will Crichton
7831fee9f8 Fix check issue
Clean up tidy checks
2021-10-06 19:44:50 -07:00
Will Crichton
4b3f82ad03 Add updated support for example-analyzer
Move rendering of examples into

Finalize design

Cleanup, rename found -> scraped

Softer yellow

Clean up dead code

Document scrape_examples

More simplification and documentation

Remove extra css

Test
2021-10-06 19:44:47 -07:00
Manish Goregaokar
7d6feb421e
Rollup merge of #89506 - yaymukund:docblock-headings, r=GuillaumeGomez
librustdoc: Use correct heading levels.

Closes #89309

This fixes the `<h#>` header tags throughout the docs to reflect a semantic hierarchy.

- I ran a script to manually check that we don't have any files with multiple `<h1>` tags.
- Also checked that we never incorrectly nest e.g. a `<h2>` under an `<h3>`.
- I also spot-checked a bunch of pages (`trait.Read`, `enum.Ordering`, `primitive.isize`, `trait.Iterator`).
2021-10-06 12:33:20 -07:00
Mukund Lakshman
742d8be5e6 Restore h1 styles, which got accidentally removed. 2021-10-06 07:27:27 -04:00
Mukund Lakshman
a8a40ea9a4 librustdoc: Use correct heading levels.
- Avoid multiple <h1>s on a page.
- The <h#> tags should follow a semantic hierarchy.
- Cap at h6 (no h7)
2021-10-04 05:01:04 -04:00
Stefan Schindler
e599e2df49 Move from grid layout to table based layout because of browser limits that overlay row entries after a UA specific amount of rows 2021-10-03 08:20:08 -04:00
Guillaume Gomez
cd3f4da244 Add rustdoc version into the help popup 2021-09-17 17:32:57 +02:00
Guillaume Gomez
6a2f500d87 Fix invalid background for jump-to-def links in source code pages 2021-09-12 16:34:47 +02:00
Guillaume Gomez
32188d77ed Wrap <table> elements into <div> to prevent breaking layout and width 2021-09-08 15:08:11 +02:00
Guillaume Gomez
1c3aedd23a Fix code blocks color in ayu theme 2021-08-28 11:44:02 +02:00
Frank Steffahn
bf88b113ea Fix typos “a”→“an” 2021-08-22 15:35:11 +02:00
Guillaume Gomez
10165f8af9
Rollup merge of #88093 - Kobzol:rustdoc-wrap-code-in-code-tag, r=GuillaumeGomez
[rustdoc] Wrap code blocks in <code> tag

This PR modifies Rustdoc output so that fenced code snippets, items and whole file source codes are wrapped in `<pre><code>` instead of just `<pre>`. This should improve the semantic meaning of the generated content.

I'm not sure what to do about `render_attributes_in_pre` and `render_attributes_in_code`. These functions were clearly expected to be used for things inside `<pre>` or `<code>`, and since I added `<code>` in this PR, some of them will be used in a different context than before. However, it seems to me that even before they were not consistent. For example, `item_constant` used `render_attributes_in_code` for its attributes, however there was no `<code>` used for constants before this PR...

Should I create some `rustdoc-gui` tests? For example to check that all `<pre>` tags have a `<code>` child?

Fixes: https://github.com/rust-lang/rust/issues/88020
2021-08-19 19:30:09 +02:00
Jakub Beránek
ccd550ee56
[rustdoc] Wrap code blocks in <code> tag 2021-08-19 10:30:08 +02:00
Guillaume Gomez
75c6a9190d
Rollup merge of #88111 - GuillaumeGomez:background-color-jump-to-def, r=jhpratt
Add background-color on clickable definitions in source code

Someone suggested to add a decoration on clickable elements in the source code pages:

![Screenshot from 2021-08-17 14-49-39](https://user-images.githubusercontent.com/3050060/129728911-def74f9e-50e2-40d2-b512-e23f1b3d0409.png)
![Screenshot from 2021-08-17 14-49-47](https://user-images.githubusercontent.com/3050060/129728925-14aec500-82ff-4336-955a-4173c769deeb.png)
![Screenshot from 2021-08-17 14-49-52](https://user-images.githubusercontent.com/3050060/129728927-a8a89d7a-e837-4ff5-b094-35be23629d14.png)

The idea is to not disturb the reading while telling the reader "you can click on this one", which is why it's not a text decoration.

What do you think `@rust-lang/rustdoc` ?

r? `@Nemo157`
2021-08-18 19:55:03 +02:00
Guillaume Gomez
dc24f02bc4 Fix anchors display in rustdoc 2021-08-18 13:27:45 +02:00
Guillaume Gomez
7ce7fe7176 Add background-color on clickable definitions in source code 2021-08-17 16:47:24 +02:00
Mara Bos
2dbb2f7420
Rollup merge of #87178 - moxian:rd-use, r=jyn514
[rustdoc] Copy only item path to clipboard rather than full `use` statement.

The (somewhat) recent addition of the "copy item import to clipboard" button is extremely nice.

However, i tend to write my code with fully qualified paths wherever feasible and only resort to `use` statements as a refactoring pass. This makes the "copy to clipboard" workflow awkward to use, as i would be copy-pasting that as, say

```rust
impl use std::ops::Add; for MyType {
```

and then go back  and remove the `use ` and `;`.

This PR removes the `use ;` decorations, making it much nicer to use for fully-qualified items. I argue, however, that this does not noticeably degrade experience for those who prefer to import items, since the hard part about those is getting the path right, and writing the `use ;` decoration can be done by hand with little effort.
2021-08-16 23:37:25 +02:00
Klim Tsoutsman
9a784894ee
Fix heading colours in Ayu theme
Closes #87828 
The issue seems to stem from #87210 where code headings were changed from a heading containing code to a heading with the `code-header` class. `rustdoc.css` was updated, but `ayu.css` was missed.
2021-08-08 22:35:51 +10:00
Guillaume Gomez
b5c27b49d0 Underline source code links on hover 2021-08-05 23:08:28 +02:00
Guillaume Gomez
6fe09722ea Simplify usage of CSS background-image 2021-08-03 20:03:07 +02:00
Michael Howell
64c9903660 Use empty string instead of single space 2021-08-03 14:35:38 +02:00
Michael Howell
59460a6556 Pull the "Expand" / "Collapse" text to the end of the line, instead of start 2021-08-03 14:35:38 +02:00