forked from lix-project/lix
add path based redirects
up to now, those were managed outside of this repo, which as unsurprisingly a real hassle to deal with if one wanted to prevent URLs from breaking when moving pages around. this change removes a large part of the friction involved in moving content in the Nix manual. possible next steps for further automation: - check for content that moved and warn if it's not reachable from links that were valid prior to a change - create redirect rules automatically based on this information (cherry picked from commit 2b7016cc56d12e67de9f1f25b18311866a26a5fe)
This commit is contained in:
parent
05b7e2dc57
commit
8fb477a6e7
2 changed files with 35 additions and 3 deletions
30
doc/manual/_redirects
Normal file
30
doc/manual/_redirects
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# redirect rules for paths (server-side) to prevent link rot.
|
||||||
|
# see ./redirects.js for redirects based on URL fragments (client-side)
|
||||||
|
#
|
||||||
|
# concrete user story this supports:
|
||||||
|
# - user finds URL to the manual for Nix x.y
|
||||||
|
# - Nix x.z (z > y) is the most recent release
|
||||||
|
# - updating the version in the URL will show the right thing
|
||||||
|
#
|
||||||
|
# format documentation:
|
||||||
|
# - https://docs.netlify.com/routing/redirects/#syntax-for-the-redirects-file
|
||||||
|
# - https://docs.netlify.com/routing/redirects/redirect-options/
|
||||||
|
#
|
||||||
|
# conventions:
|
||||||
|
# - always force (<CODE>!) since this allows re-using file names
|
||||||
|
# - group related paths to ease readability
|
||||||
|
# - always append new redirects to the end of the file
|
||||||
|
# - redirects that should have been there but are missing can be inserted where they belong
|
||||||
|
|
||||||
|
/expressions/expression-language /language/ 301!
|
||||||
|
/expressions/language-values /language/values 301!
|
||||||
|
/expressions/language-constructs /language/constructs 301!
|
||||||
|
/expressions/language-operators /language/operators 301!
|
||||||
|
/expressions/* /language/:splat 301!
|
||||||
|
|
||||||
|
/package-management/basic-package-mgmt /command-ref/nix-env 301!
|
||||||
|
|
||||||
|
/package-management/channels* /command-ref/nix-channel 301!
|
||||||
|
|
||||||
|
/package-management/s3-substituter* /command-ref/new-cli/nix3-help-stores#s3-binary-cache-store 301!
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
// redirect rules for anchors ensure backwards compatibility of URLs.
|
// redirect rules for URL fragments (client-side) to prevent link rot.
|
||||||
// this must be done on the client side, as web servers do not see the anchor part of the URL.
|
// this must be done on the client side, as web servers do not see the fragment part of the URL.
|
||||||
|
// it will only work with JavaScript enabled in the browser, but this is the best we can do here.
|
||||||
|
// see ./_redirects for path redirects (client-side)
|
||||||
|
|
||||||
// redirections are declared as follows:
|
// redirects are declared as follows:
|
||||||
// each entry has as its key a path matching the requested URL path, relative to the mdBook document root.
|
// each entry has as its key a path matching the requested URL path, relative to the mdBook document root.
|
||||||
//
|
//
|
||||||
// IMPORTANT: it must specify the full path with file name and suffix
|
// IMPORTANT: it must specify the full path with file name and suffix
|
||||||
|
|
Loading…
Reference in a new issue