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.
When you call
mdbook build, you automatically get a404.htmlpage in the root of the output directory.Since we run
mdbook buildfor each translation, we end up with a structure likeThe root
404.htmlpage is automatically used by GitHub Pages when a page cannot be found. Note that the URL doesn't change: the content of404.htmlis simply returned to the browser.Now, this doesn't work well with our translations: you end up with the English
404.htmlregardless of which translation you're currently viewing. We should fix this so that people get the correct version. Theoutput.html.input-404setting 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.htmlpage. I think we can fix this by injecting a bit of JavaScript into the404.mdfile whichmdbook builduses to generate the404.htmlpage.