google/comprehensive-rust

404 page breaks translations

開放

#2,022 建立於 2024年4月22日

 (3 則留言) (0 個反應) (0 位負責人)Rust (2,009 個分叉)batch import
buggood first issue

倉庫指標

星標
 (32,954 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

When you call mdbook build, you automatically get a 404.html page in the root of the output directory.

Since we run mdbook build for each translation, we end up with a structure like

/404.html
/da/404.html
/de/404.html
...

The root 404.html page is automatically used by GitHub Pages when a page cannot be found. Note that the URL doesn't change: the content of 404.html is simply returned to the browser.

Now, this doesn't work well with our translations: you end up with the English 404.html regardless of which translation you're currently viewing. We should fix this so that people get the correct version. The output.html.input-404 setting is for that.

Simply setting this is not enough: GitHub Pages doesn't know anything about the translation sub-directories, so it will continue to show people the root 404.html page. I think we can fix this by injecting a bit of JavaScript into the 404.md file which mdbook build uses to generate the 404.html page.

貢獻者指南