| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
r=GuillaumeGomez
rustdoc: clean up docblock table CSS
# Preview
http://notriddle.com/notriddle-rustdoc-demos/table-2/test_dingus/fn.test.html
# Before

# After

# Details
* The rule `display: block` had no noticeable effect. Technically, because markdown tables have a tbody and thead, they get wrapped in an [anonymous table box] in the CSS tree, nested within the `<table>` element's block layout box.
This rule was added in #87230 to make the table side-scrolling, but this same issue was doubly fixed in #88742 by wrapping it in an explicit `<div>` tag. Since accessibility advocates recommend the wrapper div over marking the table as `display: block`, we'll stick with that.
https://adrianroselli.com/2020/11/under-engineered-responsive-tables.html
* The rule `width: calc(100% - 2px)` had no visible effect, because the anonymous table box was not affected.
* The style is tweaked to basically be the same style GitHub uses. In particular, it adds zebra stripes, and removes dotted borders.
https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Markdown.20table.20styling
[anonymous table box]: https://www.w3.org/TR/CSS2/tables.html#anonymous-boxes
|
|
GuillaumeGomez:dont-silently-ignore-rustdoc-errors, r=notriddle
Dont silently ignore rustdoc errors
I applied the suggestions from https://github.com/rust-lang/rust/pull/104995 and also checked the rustdoc-ui error but couldn't reproduce it.
r? `@notriddle`
|
|
r=notriddle
Improve Rustdoc scrape-examples UI
This PR combines a few different improvements to the scrape-examples UI. See a live demo here: https://willcrichton.net/misc/scrape-examples/small-first-example/clap/struct.Arg.html
### 1. The first scraped example now takes up significantly less screen height.
Inserting the first scraped example takes up a lot of vertical screen space. I don't want this addition to overwhelm users, so I decided to reduce the height of the initial example in two ways: (A) the default un-expanded height is reduced from 240px (10 LOC) to 120px (5 LOC), and (B) the link to the example is now positioned *over* the example instead of *atop* the example (only on desktop though, not mobile). The changes to `scrape-examples.js` and `rustdoc.css` implement this fix.
Here is what an example docblock now looks like:

### 2. Expanding all docblocks will not expand "More examples".
The "More examples blocks" are huge, so fully expanding everything on the page would take up too much vertical space. The changes to `main.js` implement this fix. This is tested in `scrape-examples-toggle.goml`.
### 3. Examples from binary crates are sorted higher than examples from library crates.
Code that is written as an example of an API is probably better for learning than code that happens to use an API, but isn't intended for pedagogic purposes. Unfortunately Rustc doesn't know whether a particular crate comes from an example target (only Cargo knows this). But we can at least create a proxy that prefers examples from binary crates over library crates, which we know from `--crate-type`.
This change is implemented by adding a new field `bin_crate` in `Options` (see `config.rs`). An `is_bin` field has been added to the scraped examples metadata (see `scrape_examples.rs`). Then the example sorting metric uses `is_bin` as the first entry of a lexicographic sort on `(is_bin, example_size, display_name)` (see `render/mod.rs`).
Note that in the future we can consider adding another flag like `--scrape-examples-cargo-target` that would pass target information from Cargo into the example metadata. But I'm proposing a less intrusive change for now.
### 4. The scrape-examples help page has been updated to reflect the latest Cargo interface.
See `scrape-examples-help.md`.
r? `@notriddle`
P.S. once this PR and rust-lang/cargo#11450 are merged, then I think the scrape-examples feature is officially ready for deployment on docs.rs!
|
|
|
|
* The rule `display: block` had no noticeable effect. Technically, because
markdown tables have a tbody and thead, they get wrapped in an [anonymous
table box] in the CSS tree, nested within the `<table>` element's block
layout box.
This rule was added in #87230 to make the table side-scrolling, but
this same issue was doubly fixed in #88742 by wrapping it in an explicit
`<div>` tag. Since accessibility advocates recommend the wrapper div over
marking the table as `display: block`, we'll stick with that.
https://adrianroselli.com/2020/11/under-engineered-responsive-tables.html
* The rule `width: calc(100% - 2px)` had no visible effect, because the
anonymous table box was not affected.
* The style is tweaked to basically be the same style GitHub uses.
In particular, it adds zebra stripes, and removes dotted borders.
[anonymous table box]: https://www.w3.org/TR/CSS2/tables.html#anonymous-boxes
|
|
|
|
|
|
colors w/ themes
|
|
|
|
|
|
|
|
|
|
* Examples take up less screen height.
* Snippets from binary crates are prioritized.
* toggle-all-docs does not expand "More examples" sections.
|
|
|
|
rustdoc: simplify CSS selectors for item table `.stab`
The module-item and import-item classes are attached to the item-left. Just target that, instead.
|
|
The module-item and import-item classes are attached to the item-left.
Just target that, instead.
|
|
r=GuillaumeGomez
rustdoc: remove redundant CSS `.import-item .stab { font-size }`
This sets the exact same font size that `.stab` has by default anyway. It used to be slightly different, but dd5ff428edbc7cd4fa600b81f27bbec28589704f made it identical.
|
|
This sets the exact same font size that `.stab` has by default anyway.
It used to be slightly different, but
dd5ff428edbc7cd4fa600b81f27bbec28589704f made it identical.
|
|
r=GuillaumeGomez
rustdoc: simplify CSS selectors on top-doc and non-exhaustive toggles
This code uses a special `hideme` class anyway, so just style that.
|
|
r=GuillaumeGomez
rustdoc: remove no-op mobile CSS `.sidebar { margin: 0; padding: 0 }`
This isn't overriding anything, because the sidebar never has a margin or padding on it.
|
|
Fix UI issues with Rustdoc scrape-examples feature.
A few regressions have been introduced into scrape-examples in the last few months. This commit fixes those regressions:
* Help file was being loaded from the wrong place (introduced in f9e1f6ffdf03ec33cb29e20c88fc7bcc938c7f42).
* CSS selector in JS has a typo (introduced in 14897180ae6a0506a5ad0a9f6a30ae1f75916179).
* Line numbers in scraped example code snippets are overflowing (not sure if this was ever fixed). Changing from flexbox to grid display fixed this issue.
|
|
This code uses a special `hideme` class anyway, so just style that.
|
|
This isn't overriding anything, because the sidebar never has a margin or
padding on it.
|
|
deps: update cpufeatures, swap difference to dissimilar
Updating cpufeatures v0.2.1 -> v0.2.5: https://github.com/RustCrypto/utils/blob/master/cpufeatures/CHANGELOG.md#025-2022-09-04, was yanked bc of miscompile (https://github.com/RustCrypto/utils/pull/800, https://github.com/rust-lang/rust/issues/101346)
Removing difference v2.0.0
Adding dissimilar v1.0.4
Updating expect-test v1.0.1 -> v1.4.0
difference unmaintened https://rustsec.org/advisories/RUSTSEC-2020-0095.html, so replaced with https://github.com/dtolnay/dissimilar (as dependency of `expect-test`)
|
|
r=GuillaumeGomez,jyn514,Manishearth
Consolidate rustdoc's lint passes into a single pass
This should improve performance and simplify the code.
r? `@GuillaumeGomez`
|
|
Merge generics and where predicates and prevent duplicates in where predicates
Part of #104886 (I didn't include bounds from parent trait yet as I think the PR is already big enough).
Also we'll need to run a perf check.
cc `@fmease` since you worked a bit on this.
r? `@notriddle`
|
|
r=GuillaumeGomez
rustdoc: clean up redundant CSS on `.rustdoc-toggle.hideme`
|
|
r=Enselic,GuillaumeGomez
Rustdoc-Json: Don't inline foreign traits
It wasn't done correctly, and [we want to move towards only having local items in the index, and making foreign items easier to resolved](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Rustdoc.20JSON.3A.20Include.20All.20Foreign.20Items.3F)
Fixes #105025. This means #105015 is included to test this
Fixes #105022
r? `@GuillaumeGomez`
|
|
|
|
r=GuillaumeGomez
rustdoc: clean up help and settings button CSS
The old version of this code specified a bunch of different numbers that had to line up just right to get the size it wanted. This version uses flexbox centering, specifies the font size, and lets the browser figure out the rest of the layout automatically.
Preview: http://notriddle.com/notriddle-rustdoc-demos/flexbox-help-settings-buttons/test_dingus/
|
|
|
|
|
|
Reduce macro usage for lints
r? `@cjgillot`
|
|
r=GuillaumeGomez
rustdoc: use simpler CSS for setting the font on scraped examples
|
|
r=notriddle
Migrate summary toggle filter to CSS variable
r? `@notriddle`
|
|
rustc_ast_lowering: Stop lowering imports into multiple items
Lower them into a single item with multiple resolutions instead.
This also allows to remove additional `NodId`s and `DefId`s related to those additional items.
|
|
Because it complicates lint implementation greatly.
|
|
The old version of this code specified a bunch of different numbers that had
to line up just right to get the size it wanted. This version uses flexbox
centering, specifies the font size, and lets the browser figure out the
rest of the layout automatically.
|
|
|
|
|
|
Lower them into a single item with multiple resolutions instead.
This also allows to remove additional `NodId`s and `DefId`s related to those additional items.
|
|
|
|
|
|
|
|
r=GuillaumeGomez
rustdoc: remove redundant CSS `div.desc { display: block }`
DIV tags have block display by default. It is from when this rule used to target a SPAN tag, but became redundant in 4bd6748bb9b73c210558498070ae0b7ed8193ddf.
|
|
rustdoc: clean up sidebar link CSS
Group `text-overflow: ellipses` along with `white-space: nowrap`. It makes no sense to try to apply it to links with `overflow-wrap: anywhere`, because it can't actually make ellipses when that's turned on.
Simplify the selector for the 25rem left padding on sidebar links, to match up with the style for the container left padding that makes room for it.
|
|
rustdoc: add comment to confusing CSS `main { min-width: 0 }`
This CSS was added in cad0fce2053d52b7ba04c458f4c124c8b5c6141e, but the reason why it was necessary was unclear. This comment makes it clear.
|
|
DIV tags have block display by default. It is from when this rule
used to target a SPAN tag, but became redundant in
4bd6748bb9b73c210558498070ae0b7ed8193ddf.
|