Fix error-index redirect to work with back button.
This commit is contained in:
parent
e94fab69d0
commit
f2ad85a930
@ -98,8 +98,7 @@ fn add_rust_attribute_on_codeblock(explanation: &str) -> String {
|
||||
|
||||
fn render_html(output_path: &Path) -> Result<(), Box<dyn Error>> {
|
||||
let mut introduction = format!(
|
||||
"<script src='redirect.js'></script>
|
||||
# Rust error codes index
|
||||
"# Rust error codes index
|
||||
|
||||
This page lists all the error codes emitted by the Rust compiler.
|
||||
|
||||
@ -149,7 +148,12 @@ This page lists all the error codes emitted by the Rust compiler.
|
||||
book.book.sections.push(BookItem::Chapter(chapter));
|
||||
book.build()?;
|
||||
|
||||
// We can't put this content into another file, otherwise `mbdbook` will also put it into the
|
||||
// The error-index used to be generated manually (without mdbook), and the
|
||||
// index was located at the top level. Now that it is generated with
|
||||
// mdbook, error-index.html has moved to error_codes/error-index.html.
|
||||
// This adds a redirect so that old links go to the new location.
|
||||
//
|
||||
// We can't put this content into another file, otherwise `mdbook` will also put it into the
|
||||
// output directory, making a duplicate.
|
||||
fs::write(
|
||||
output_path.join("error-index.html"),
|
||||
@ -163,7 +167,6 @@ This page lists all the error codes emitted by the Rust compiler.
|
||||
</head>
|
||||
<body>
|
||||
<div>If you are not automatically redirected to the error code index, please <a id="index-link" href="./error_codes/error-index.html">here</a>.
|
||||
<script>document.getElementById("index-link").click()</script>
|
||||
</body>
|
||||
</html>"#,
|
||||
)?;
|
||||
|
@ -3,14 +3,10 @@
|
||||
let code = window.location.hash.replace(/^#/, '');
|
||||
// We have to make sure this pattern matches to avoid inadvertently creating an
|
||||
// open redirect.
|
||||
if (!/^E[0-9]+$/.test(code)) {
|
||||
if (/^E[0-9]+$/.test(code)) {
|
||||
window.location.replace('./error_codes/' + code + '.html');
|
||||
return;
|
||||
}
|
||||
if (window.location.pathname.indexOf("/error_codes/") !== -1) {
|
||||
// We're not at the top level, so we don't prepend with "./error_codes/".
|
||||
window.location = './' + code + '.html';
|
||||
} else {
|
||||
window.location = './error_codes/' + code + '.html';
|
||||
}
|
||||
}
|
||||
window.location.replace('./error_codes/error-index.html');
|
||||
})()
|
||||
|
Loading…
x
Reference in New Issue
Block a user