Redirect from rule codes to rule pages in docs (#8636)

## Summary

This adds redirects from, e.g., `https://docs.astral.sh/ruff/rules/F401`
to `https://docs.astral.sh/ruff/rules/unused-import`, which are
generated automatically when creating the documentation. Though we want
to move towards human-readable names eventually, I think this is a nice
and user-friendly change (and doesn't require any fancy infrastructure,
since the redirects are handled via a plugin and added client-side).

Closes #4710.
This commit is contained in:
Charlie Marsh 2023-11-12 14:47:10 -08:00 committed by GitHub
parent cbd9157bbf
commit 02946e7b0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 4 deletions

View file

@ -2,6 +2,7 @@
from __future__ import annotations
import argparse
import json
import re
import shutil
import subprocess
@ -138,9 +139,37 @@ def main() -> None:
f.write(clean_file_content(file_content, title))
# Add the nav section to mkdocs.yml.
with Path("mkdocs.template.yml").open(encoding="utf8") as fp:
config = yaml.safe_load(fp)
# Add the redirect section to mkdocs.yml.
rules = json.loads(
subprocess.check_output(
[
"cargo",
"run",
"-p",
"ruff_cli",
"--",
"rule",
"--all",
"--output-format",
"json",
],
),
)
config["plugins"].append(
{
"redirects": {
"redirect_maps": {
f'rules/{rule["code"]}.md': f'rules/{rule["name"]}.md'
for rule in rules
},
},
},
)
# Add the nav section to mkdocs.yml.
config["nav"] = [{section.title: section.filename} for section in SECTIONS]
with Path("mkdocs.generated.yml").open("w+") as fp: