Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upTracking Issue for RFC 1826: Change the default URL of doc.rust-lang.org #44687
Comments
steveklabnik
added
B-RFC-approved
T-doc
labels
Sep 18, 2017
steveklabnik
referenced this issue
Sep 18, 2017
Merged
Change the default URL of doc.rust-lang.org #1826
aidanhs
added
the
C-tracking-issue
label
Sep 19, 2017
steveklabnik
added
the
P-medium
label
Oct 31, 2017
steveklabnik
self-assigned this
Oct 31, 2017
This comment has been minimized.
This comment has been minimized.
|
The prototype behaves like I hope that lack of user-visible URLs is just a rough edge of the prototype rather than part of the solution (I don't quite understand the RFC, I feel like I'm missing context for it). |
This comment has been minimized.
This comment has been minimized.
Yes, absolutely. |
pietroalbini
referenced this issue
Feb 23, 2018
Closed
Add a version dropdown to the docs page #48470
steveklabnik
referenced this issue
Mar 2, 2018
Open
Add rustdoc option to make old docs "less important" to make search engine results more pertinent #48671
steveklabnik
referenced this issue
Sep 24, 2018
Closed
Allow rustdoc to generate noindex meta tags for a library #41882
This comment has been minimized.
This comment has been minimized.
|
Seems we already have https://doc.rust-lang.org/1.29.0/, https://doc.rust-lang.org/1.28.0/, ... The only missing part here is having a small header on each docs, which can be implemented as a small JavaScript file. How we can update the JavaScript file and probably https://doc.rust-lang.org/index.html to list all releases? We may be able to generate them from rust-lang/rust's nightly (assuming that the latest nightly includes all stable releases), or have a separate repository. |
This comment has been minimized.
This comment has been minimized.
|
I made a small demo to show how it would look. The version picker itself doesn't work still. The main purpose of the demo is discussing about the look & feel first. http://rust-pull-request.s3-website-us-east-1.amazonaws.com/44687/std/
|
This comment has been minimized.
This comment has been minimized.
|
Hey @kzys , thanks for poking at this! What exactly does
mean? How is it inserted by JS? |
This comment has been minimized.
This comment has been minimized.
|
I meant, having all versions links on rustdoc's HTML files would not work, since we want to have links to older docs to newer docs (and vice versa, of course). We would not want to update all docs on every release.
So, the implementation would need
1. a JSON file that lists all releases (like thanks.rust-lang.org)
2. a small JavaScript to read the JSON file, construct a drop-down.
3. include the JavaScript file from rustdoc's HTML to show the dropdown if
the location is docs.rust-lang.org
Not sure sure where would be the best place to generate 1. 2 and 3 could be implemented as a part of rustdoc.
|
This comment has been minimized.
This comment has been minimized.
|
Right, so the issue here is:
We have already produced the HTML for those old releases, and they can't change. So this approach would work going forward, but wouldn't work for releases previous to that. |
This comment has been minimized.
This comment has been minimized.
|
I see. Would it be able to edit the generated docs to include the
JavaScript file? That's not ideal though.
Another option is having a menu item to say "for older releases, please see
..." that links to a static page which lists all releases, but the version
picker is needed for especially older releases.
|
This comment has been minimized.
This comment has been minimized.
Yeah, we have a hard constraint on not being able to do this.
The issue with that is that it doesn't solve one of the primary motivations for doing this: people seeing older versions and not realizing they're out of date. |
This comment has been minimized.
This comment has been minimized.
|
If changing the old docs is not possible, the remaining options are;
Would you mind if I ask the reason of not changing the old docs? I agree we shouldn't do that daily/monthly basis, but what if the change is only once? |
This comment has been minimized.
This comment has been minimized.
|
Reproducibility is important, and so releases are immutable.
I’m starting to think the server side idea is the best option...
… On Oct 5, 2018, at 11:45 AM, Kazuyoshi Kato ***@***.***> wrote:
If changing the old docs is not possible, the remaining options are;
Dynamically replace docs's certain parts via the http server (like https://httpd.apache.org/docs/2.4/mod/mod_substitute.html or http://nginx.org/en/docs/http/ngx_http_sub_module.html), not so sure what we are using though.
frame/iframe
Would you mind if I ask the reason of not changing the old docs? I agree we shouldn't do that daily/monthly basis, but what if the change is only once?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
This comment has been minimized.
This comment has been minimized.
|
Thanks! That make sense. Does doc.rust-lang.org use S3 + CloudFront according to the HTTP headers? Not so sure since the old issues sometimes mentioned "rewriting". On CloudFront, we may be able to use Lambda@Edge instead of spinning up a http server. (Disclaimer - I work for Amazon, but not AWS) |
This comment has been minimized.
This comment has been minimized.
Yep!
That is an intriguing idea! |
This comment has been minimized.
This comment has been minimized.
|
FWIW, I think fixing this by including an empty just file from some common location or path that we can update later (e.g. rust-lang.org/doc-1.23.0.js) would be good. The other side of this is I think changing old HTML files uniformly isn't a bad thing: for one thing it's cheaper than any other solution from a monetary perspective and I don't quite see why it would pose too large a problem. We're not changing static.r-l.o artifacts which I think are far more critical to keep constant vs. docs.r-l.o artifacts... |
This comment has been minimized.
This comment has been minimized.
Oh? I thought they were identical. If this is not the case, then I feel like there's more wiggle room. |
This comment has been minimized.
This comment has been minimized.
|
Yes, the docs are served from a different bucket in s3, I'm fairly sure, and if they weren't, we could "easily" start doing so. |
This comment has been minimized.
This comment has been minimized.
|
Okay, then maybe that is the path forward, then. |
This comment has been minimized.
This comment has been minimized.
|
Is it easy to have a file inside the bucket, like
docs.rust-lang.org/common/footer.js ?
If so, we can create the file first, reference from the nigltly docs by
changing rustdoc, and replace all old docs later to include the file.
In addition to that, if we have a specific update script for the bucket, we
probably don't have to change rustdoc.
|
steveklabnik
referenced this issue
Oct 31, 2018
Open
No link from doc.rust-lang.org to www.rust-lang.org #30838
This comment has been minimized.
This comment has been minimized.
dustinknopoff
commented
Dec 28, 2018
•
|
I'd like to take a stab at this. I'm a little unclear as to where to start from. I was thinking @kzys way of injecting some JS in to the existing versions would be best. I'd also like to suggest doing something like one of the two mockups above on the version badge on doc.rust-lang and/or on the actual documentation as well. |
kzys
added a commit
to kzys/blog
that referenced
this issue
Jan 2, 2019
This comment has been minimized.
This comment has been minimized.
|
Thanks @dustinknopoff! I'm working on an actual prototype based on the mock. You can try that by copy-and-paste the below JavaScript from browser's console.
The script only supports doc.rust-lang.org's landing page such as https://doc.rust-lang.org/1.31.0/ so far. My thoughts;
|
steveklabnik
referenced this issue
Feb 5, 2019
Closed
The book dead links have gotten so bad that the real book isn't even in search results #1800
This comment has been minimized.
This comment has been minimized.
|
For the people subscribed to this issue: @GuillaumeGomez made a crack at it in #58603, though it may be different than what was being planned here. |
This comment has been minimized.
This comment has been minimized.
|
Completely forgot about this one actually. :-. |

steveklabnik commentedSep 18, 2017
This is a tracking issue for the RFC 1826 (rust-lang/rfcs#1826).
Steps:
Unresolved questions:
No official ones, but there will undoubtedly be tweaks during implementation.
NB: a prototype is at https://rust-docs.herokuapp.com, source here: https://github.com/steveklabnik/rust-docs This can serve as a starting point for discussing said details, but does not literally have to be the basis of implementation.