Commit Graph

462 Commits

Author SHA1 Message Date
Matthias Krüger e51e4a4ecf Rollup merge of #103988 - GuillaumeGomez:fix-bottom-border-color, r=notriddle
Fix search result bottom border color

It reverts a color change while keeping the improvement made in #103938.

I think it'll need to be backported once merged too.

r? `@notriddle`
2022-11-05 18:06:07 +01:00
Matthias Krüger 3eac639e1e Rollup merge of #101702 - jsha:static-files2, r=notriddle,GuillaumeGomez
rustdoc: add hash to filename of toolchain files

All static files used by rustdoc are now stored in static.files/ and their filenames include a hash of their contents. Their filenames no longer include the contents of the --resource-suffix flag. This clarifies caching semantics. Anything in static.files can use Cache-Control: immutable because any updates will show up as a new URL.

Invocation-specific files like crates-NN.js, search-index-NN.js, and sidebar-items-NN.js still get the resource suffix.

This has a useful side effect: once toolchain files aren't affected by resource suffix, it will become possible for docs.rs to include crate version in the resource suffix. That should fix a caching issue with `/latest/` URLs: https://github.com/rust-lang/docs.rs/issues/1593. My goal is that it should be safe to serve all rustdoc JS, CSS, and fonts with infinite caching headers, even when new versions of a crate are uploaded in the same place as old versions.

The --disable-minification flag is removed because it would vary the output of static files based on invocation flags. Instead, for rustdoc development purposes it's preferable to symlink static files to a non-minified copy for quick iteration.

Example listing:

```
$ cd build/x86_64-unknown-linux-gnu/doc/ && find . | egrep 'js$|css$' | egrep -v 'sidebar-items|implementors' | sort
./crates1.65.0.js
./rust.css
./search-index1.65.0.js
./source-files1.65.0.js
./static.files/ayu-2bfd0af01c176fd5.css
./static.files/dark-95d11b5416841799.css
./static.files/light-c83a97e93a11f15a.css
./static.files/main-efc63f77fb116394.js
./static.files/normalize-76eba96aa4d2e634.css
./static.files/noscript-5bf457055038775c.css
./static.files/rustdoc-7a422337900fa894.css
./static.files/scrape-examples-3dd10048bcead3a4.js
./static.files/search-47f3c289722672cf.js
./static.files/settings-17b08337296ac774.js
./static.files/settings-3f95eacb845293c0.css
./static.files/source-script-215e9db86679192e.js
./static.files/storage-26d846fcae82ff09.js
```

Fixes #98413
2022-11-05 18:06:05 +01:00
Guillaume Gomez 94ba7f09df Fix search result bottom border color 2022-11-05 16:43:08 +01:00
Michael Howell 4bd6748bb9 rustdoc: get rid of CSS/DOM div.desc span, which isn't really needed 2022-11-04 13:19:33 -07:00
Michael Howell b30c4d1932 rustdoc: simplify search results CSS and DOM
There is a layout change caused by this commit, but it's subtle. You won't
notice it unless you're looking for it.
2022-11-04 12:40:50 -07:00
Matthias Krüger 923d907a75 Rollup merge of #103940 - notriddle:notriddle/main-content-item-info-margin-top, r=GuillaumeGomez
rustdoc: remove no-op CSS `#main-content > .item-info { margin-top: 0 }`

When this line was added in 04b4c40682, it overrode a negative `margin-top` that was set on it by default.

https://github.com/rust-lang/rust/blob/04b4c40682c01cad8f9bc8d5b3907be91d6f81d4/src/librustdoc/html/static/rustdoc.css#L500-L516

That negative top margin was removed in 593d6d1cb1.
2022-11-04 06:40:34 +01:00
Matthias Krüger f35dccbc72 Rollup merge of #103938 - notriddle:notriddle/search-results-border-bottom, r=GuillaumeGomez
rustdoc: clean up hardcoded CSS border color on search results

Hardcoded colors in rustdoc.css should usually be avoided.

Preview: http://notriddle.com/notriddle-rustdoc-demos/border-bottom-search/test_dingus/?search=test
2022-11-04 06:40:34 +01:00
Matthias Krüger a81a531210 Rollup merge of #103905 - notriddle:notriddle/sidebar-elems-background, r=GuillaumeGomez
rustdoc: remove redundant mobile CSS `.sidebar-elems { background }`

The exact same background is already set for its parent, the `nav.sidebar`.
2022-11-04 06:40:31 +01:00
Michael Howell c51c07d30f rustdoc: remove no-op CSS #main-content > .item-info { margin-top: 0 }
When this line was added in 04b4c40682, it
overrode a negative `margin-top` that was set on it by default.

https://github.com/rust-lang/rust/blob/04b4c40682c01cad8f9bc8d5b3907be91d6f81d4/src/librustdoc/html/static/rustdoc.css#L500-L516

That negative top margin was removed in
593d6d1cb1.
2022-11-03 13:22:54 -07:00
Michael Howell f097940da8 rustdoc: clean up hardcoded CSS border color on search results
Hardcoded colors in rustdoc.css should usually be avoided.
2022-11-03 12:29:17 -07:00
Michael Howell 68e19aa4ac rustdoc: remove redundant mobile CSS .sidebar-elems { background }
The exact same background is already set for its parent, the `nav.sidebar`.
2022-11-02 15:33:36 -07:00
Matthias Krüger 36d813498c Rollup merge of #103890 - notriddle:notriddle/mobile-rustdoc-padding-top, r=GuillaumeGomez
rustdoc: remove unused mobile CSS `.rustdoc { padding-top: 0 }`

When this rule was added in dd437ee6ed, as `body { padding-top: 0 }`, the desktop body tag had non-zero top padding. This padding was removed in 135281ed15.

This rule no longer overrides a rule in rustdoc's desktop styles, and also doesn't override the UA stylesheet, since the [HTML standard] has only margin, not padding, on the page body.

[HTML standard]: https://html.spec.whatwg.org/multipage/rendering.html#the-page
2022-11-02 22:06:29 +01:00
Michael Howell deb6538348 rustdoc: remove unused mobile CSS .rustdoc { padding-top: 0 }
When this rule was added in dd437ee6ed, as
`body { padding-top: 0 }`, the desktop body tag had non-zero top padding.
This padding was removed in 135281ed15.

This rule no longer overrides a rule in rustdoc's desktop styles, and also
doesn't override the UA stylesheet, since the [HTML standard] has only
margin, not padding, on the page body.

[HTML standard]: https://html.spec.whatwg.org/multipage/rendering.html#the-page
2022-11-02 10:10:44 -07:00
Michael Howell 82c68cae18 rustdoc: simplify mobile item-table CSS
Using flexbox in column direction is needlessly complicated, since no
special flex powers are being used here. Just use regular block layout.

This should result in no visible changes.
2022-11-01 16:28:58 -07:00
Dylan DPC 2b0ead3126 Rollup merge of #103817 - notriddle:notriddle/attribute-css, r=GuillaumeGomez
rustdoc: rename syntax highlighting CSS class `attribute` to `attr`

Link classes use the abbreviation `attr` ...

https://github.com/rust-lang/rust/blob/2afca78a0b03db144c5d8b9f8868feebfe096309/src/librustdoc/html/static/css/rustdoc.css#L255-L259

... so why does syntax highlighting use the full word?

https://github.com/rust-lang/rust/blob/2afca78a0b03db144c5d8b9f8868feebfe096309/src/librustdoc/html/static/css/rustdoc.css#L1095-L1097
2022-11-01 22:01:37 +05:30
Dylan DPC db200d01cd Rollup merge of #103813 - notriddle:notriddle/search-results-clear-both, r=GuillaumeGomez
rustdoc: remove unnecessary CSS `.search-results { clear: both }`

Since the tabs use flexbox instead of float as of 44d9b8d070, clearing does nothing.
2022-11-01 22:01:36 +05:30
Yuki Okushi 2c7f1374ec Rollup merge of #103793 - notriddle:notriddle/rustdoc-toggle-in-impl-items, r=GuillaumeGomez
rustdoc: add margins to all impl-item toggles, not just methods

Fixes #103782

## Before

![image](https://user-images.githubusercontent.com/1593513/198943087-8cab8b25-2092-49d6-89b4-caa2989dedf0.png)

## After

![image](https://user-images.githubusercontent.com/1593513/198943111-bc08c2d6-f058-4362-b999-0caf09eb93bf.png)
2022-11-01 12:03:43 +09:00
Michael Howell 6432bb71b6 rustdoc: rename syntax highlighting CSS class attribute to attr
Link classes use the abbreviation `attr`, so why shouldn't
syntax highlighting?
2022-10-31 13:55:39 -07:00
Michael Howell 5e6480494a rustdoc: remove unnecessary CSS .search-results { clear: both }
Since the tabs use flexbox instead of float as of
44d9b8d070, clearing does nothing.
2022-10-31 11:53:00 -07:00
Michael Howell 791f04e5a4 rustdoc: add margins to all impl-item toggles, not just methods
Fixes #103782
2022-10-30 23:10:59 -07:00
Michael Howell 8d6ed3edec Rollup merge of #101944 - notriddle:notriddle/toggle-all-docs, r=jsha,GuillaumeGomez
rustdoc: clean up `#toggle-all-docs`

This change converts the element from an `<a>` link to a button. It's pretty much directly trading slightly more CSS for slightly less HTML, and it's also semantically correct (so you don't get a broken "bookmark" option when you right click on it).

While doing this, I also got rid of the unnecessary `class="inner"` attribute on the inner span. There was a style targeting `.collapse-toggle > .inner`, but no CSS ever targeted the `#toggle-all-docs > .inner`.

Preview: https://notriddle.com/notriddle-rustdoc-test/button-toggle-all-docs/index.html
2022-10-30 19:31:37 -07:00
Dylan DPC df74f07b18 Rollup merge of #103740 - notriddle:notriddle/search-results-padding-bottom, r=Dylan-DPC
rustdoc: remove unnecessary CSS `.search-results { padding-bottom }`

There's nothing underneath it anyway. The conversation on #84462 never really spelled out why it was added.
2022-10-30 11:50:28 +05:30
Matthias Krüger 9c5e61c2d2 Rollup merge of #103737 - notriddle:notriddle/margin, r=GuillaumeGomez
rustdoc: use CSS margin/padding shorthand when all are being set
2022-10-30 00:09:27 +02:00
Matthias Krüger 6e20768e9d Rollup merge of #103722 - GuillaumeGomez:cleanup-code-example-css, r=notriddle
Fix z-indexes of code example feature and cleanup its CSS

When reviewing https://github.com/rust-lang/rust/pull/103650, I realized that the `z-index`es of this feature were completely broken:

![Screenshot from 2022-10-28 10-55-27](https://user-images.githubusercontent.com/3050060/198826360-0c5cbe5a-ea8e-452a-9504-38d3da3615e6.png)

This PR fixes it by reducing the value of value under the one used for `.popover` (it could be completely removed but then it wouldn't be displayed as nicely).

There was also a lot of duplicated CSS so I merged the rules.

r? `@notriddle`
2022-10-30 00:09:26 +02:00
Jacob Hoffman-Andrews f9e1f6ffdf rustdoc: add hash to filename of toolchain files
All static files used by rustdoc are now stored in static.files/ and
include a hash of their contents. They no longer include the contents of
the --resource-suffix flag. This clarifies caching semantics. Anything
in static.files can use Cache-Control: immutable because any updates
will show up as a new URL.

Invocation-specific files like crates-NN.js, search-index-NN.js,
and sidebar-items-NN.js still get the resource suffix.

The --disable-minification flag is removed because it would vary the
output of static files based on invocation flags. Instead, for
rustdoc development purposes it's preferable to symlink static files
to a non-minified copy for quick iteration.
2022-10-29 12:47:48 -07:00
Michael Howell a3c56e0428 rustdoc: remove unnecessary .search-results { padding-bottom }
There's nothing underneath it anyway. The conversation on
b615c0c854 never really spelled out why it
was added.
2022-10-29 09:59:53 -07:00
Michael Howell d490ff461c rustdoc: use CSS margin/padding shorthand when all are being set 2022-10-29 09:04:31 -07:00
Guillaume Gomez 4fac361ea3 Fix z-indexes of code example feature and cleanup its CSS 2022-10-29 12:23:10 +02:00
Matthias Krüger f0eaa48569 Rollup merge of #103663 - notriddle:notriddle/search-container, r=GuillaumeGomez
rustdoc: remove redundant CSS/DOM `div.search-container`

Preview: https://notriddle.com/notriddle-rustdoc-demos/search-container/test_dingus/fn.test.html

This wrapper DIV was originally added in 89e1fb3223, when it allowed the search bar's size to be calculated without using `calc()`. This `width` hack can be        removed	using flexbox.
2022-10-29 08:57:36 +02:00
Matthias Krüger 32c96248c5 Rollup merge of #103643 - notriddle:notriddle/summary-focus-visible, r=GuillaumeGomez
rustdoc: stop hiding focus outlines on non-rustdoc-toggle details tags

We really shouldn't be overriding this kind of stuff unless the browser default is really broken (like outlining the thing that isn't clickable). This directly reverts b8f4e74cbc.
2022-10-28 07:06:47 +02:00
Matthias Krüger 6e1613a0c5 Rollup merge of #103585 - GuillaumeGomez:source-line-css, r=notriddle
Migrate source line numbers CSS to CSS variables

Part of https://github.com/rust-lang/rust/pull/98460.

No UI changes.

r? ``@notriddle``
2022-10-28 07:06:45 +02:00
Michael Howell 509d8ad454 rustdoc: remove redundant div.search-container
This wrapper DIV was originally added in
89e1fb3223, when it allowed the search bar's
size to be calculated without using `calc()`. This `width` hack can be
removed using flexbox.
2022-10-27 17:48:26 -07:00
Michael Howell dd912add18 rustdoc: stop hiding focus outlines on non-rustdoc-toggle details tags
We really shouldn't be overriding this kind of stuff unless the browser
default is really broken (like outlining the thing that isn't clickable).
This directly reverts b8f4e74cbc.
2022-10-27 10:01:28 -07:00
Matthias Krüger ae4dc12519 Rollup merge of #103616 - rust-lang:notriddle/moz-box-sizing, r=GuillaumeGomez
rustdoc: remove CSS workaround for Firefox 29

CSS variables, which rustdoc now relies on, are only supported in Firefox 31 and later: https://www.mozilla.org/en-US/firefox/31.0/releasenotes/

This means it’s fine to also rely on unprefixed box-sizing, which is supported in Firefox 29 and later: https://www.mozilla.org/en-US/firefox/29.0/releasenotes/
2022-10-27 15:03:58 +02:00
Guillaume Gomez 0185be2ce4 Migrate line numbers CSS to CSS variables 2022-10-27 13:07:07 +02:00
Matthias Krüger 29698dc38a Rollup merge of #103592 - notriddle:notriddle/notable-traits-notable, r=GuillaumeGomez
rustdoc: remove redundant CSS selector `.notable-traits .notable`

The margin was already being set to 0 only a few lines lower.
2022-10-27 09:25:11 +02:00
Michael Howell 4d4b567bcc rustdoc: remove CSS workaround for Firefox 29
CSS variables, which rustdoc now relies on, are only supported in Firefox 31 and later: https://www.mozilla.org/en-US/firefox/31.0/releasenotes/

This means it’s fine to also rely on unprefixed box-sizing, which is supported in Firefox 29 and later: https://www.mozilla.org/en-US/firefox/29.0/releasenotes/
2022-10-26 21:13:20 -07:00
Yuki Okushi 49076141fa Rollup merge of #103537 - notriddle:notriddle/line-numbers, r=GuillaumeGomez
rustdoc: combine shared CSS between `.*-line-numbers`

Example: https://notriddle.com/notriddle-rustdoc-demos/line-numbers/test_dingus/fn.test.html

This PR should result in no visible changes. The example is here, so it can be easily tested in different browsers.
2022-10-27 08:30:55 +09:00
Michael Howell 3dd7009f1f rustdoc: remove redundant CSS selector .notable-traits .notable
The margin was already being set to 0 only a few lines lower.
2022-10-26 12:15:58 -07:00
Michael Howell b857138d3b Update src/librustdoc/html/static/css/rustdoc.css
Co-authored-by: Jacob Hoffman-Andrews <github@hoffman-andrews.com>
2022-10-26 02:41:34 -07:00
Michael Howell 60b5f6dc91 rustdoc: add visible focus outline to rustdoc-toggle
The change in opacity is inconsistent with most of rustdoc, which uses
default browser styles for the focus outline. Unfortunately, just using
the default focus outline here won't work, because it gets applied to
the summary itself instead of the pseudo-element "real button."
2022-10-25 16:52:50 -07:00
Michael Howell 626d7fc613 rustdoc: combine shared CSS between .*-line-numbers 2022-10-25 10:43:08 -07:00
Yuki Okushi b09ce608a8 Rollup merge of #103494 - notriddle:notriddle/test-arrow-hover, r=GuillaumeGomez
rustdoc: remove redundant CSS `a.test-arrow:hover`

In 4b402dbe69, when this rule was added, it was overriding a rule that made all links in docblock get an underline when hovered. This became redundant when, after reordering the rules, 7585632052 changed the pro-underline rule to exclude the test-arrow link anyway.
2022-10-25 08:01:31 +09:00
Yuki Okushi 9ecba382a6 Rollup merge of #103493 - notriddle:notriddle/source-sidebar-logo, r=GuillaumeGomez
rustdoc: remove unused `.sidebar-logo` DOM on source pages
2022-10-25 08:01:30 +09:00
Michael Howell f0f0a7dbc2 rustdoc: remove redundant CSS a.test-arrow:hover
In 4b402dbe69, when this rule was added, it
was overriding a rule that made all links in docblock get an underline when
hovered. This became redundant when, after reordering the rules,
7585632052 changed the pro-underline rule to
exclude the test-arrow link anyway.
2022-10-24 11:39:19 -07:00
Michael Howell bdbc9772c6 rustdoc: fix weird toggle-all-docs style in iOS 2022-10-24 11:03:46 -07:00
Michael Howell ac732b62dd rustdoc: clean up #toggle-all-docs
This change converts the element from an `<a>` link to a button. It's
pretty much directly trading slightly more CSS for slightly less HTML, and
it's also semantically correct (so you don't get a broken "bookmark" option
when you right click on it).

While doing this, I also got rid of the unnecessary `class="inner"`
attribute on the inner span. There was a style targeting
`.collapse-toggle > .inner`, but no CSS ever targeted the
`#toggle-all-docs > .inner`.
2022-10-24 11:03:46 -07:00
Michael Howell 4e1abcda1b rustdoc: remove unused .sidebar-logo DOM on source pages 2022-10-24 10:47:24 -07:00
Michael Howell 45a9d18969 rustdoc: remove no-op CSS .source pre.rust { white-space: pre }
This rule, added in 49e6db7f35, overrode a
rule in normalize.css.

https://github.com/rust-lang/rust/blob/49e6db7f3510a99ab3d3723b2430add985629c39/src/librustdoc/html/static/normalize.css#L169-L175

When normalize.css was updated, this rule went away.

https://github.com/necolas/normalize.css/commit/a8edd0c5aa06b905e8e1550fd6a5c01e46375194
2022-10-23 22:16:13 -07:00
Michael Howell 88e0546a4c Rollup merge of #103424 - notriddle:notriddle/code-header-border-bottom-none, r=GuillaumeGomez
rustdoc: remove no-op CSS `.code-header { border-bottom: none }`

The code headers are always h3 or h4, which don't have border-bottom by default anyway.
2022-10-23 14:48:18 -07:00