Move some MkDocs responsibilities around (#5542)

## Summary

Note that I've also changed from `mkdocs serve` to `mkdocs serve -f
mkdocs.generated.yml` to be clearer that this is a generated file.
This commit is contained in:
Charlie Marsh 2023-07-05 18:06:01 -04:00 committed by GitHub
parent cdb9fda3b8
commit ea270da289
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 19 additions and 25 deletions

View File

@ -271,4 +271,4 @@ jobs:
- name: "Check docs formatting" - name: "Check docs formatting"
run: python scripts/check_docs_formatted.py run: python scripts/check_docs_formatted.py
- name: "Build docs" - name: "Build docs"
run: mkdocs build --strict run: mkdocs build --strict -f mkdocs.generated.yml

View File

@ -26,7 +26,7 @@ jobs:
run: | run: |
python scripts/transform_readme.py --target mkdocs python scripts/transform_readme.py --target mkdocs
python scripts/generate_mkdocs.py python scripts/generate_mkdocs.py
mkdocs build --strict mkdocs build --strict -f mkdocs.generated.yml
- name: "Deploy to Cloudflare Pages" - name: "Deploy to Cloudflare Pages"
if: ${{ env.CF_API_TOKEN_EXISTS == 'true' }} if: ${{ env.CF_API_TOKEN_EXISTS == 'true' }}
uses: cloudflare/wrangler-action@2.0.0 uses: cloudflare/wrangler-action@2.0.0

3
.gitignore vendored
View File

@ -1,8 +1,7 @@
# Benchmarking cpython (CONTRIBUTING.md) # Benchmarking cpython (CONTRIBUTING.md)
crates/ruff/resources/test/cpython crates/ruff/resources/test/cpython
# generate_mkdocs.py # generate_mkdocs.py
mkdocs.yml mkdocs.generated.yml
.overrides
# check_ecosystem.py # check_ecosystem.py
ruff-old ruff-old
github_search*.jsonl github_search*.jsonl

View File

@ -256,7 +256,7 @@ To preview any changes to the documentation locally:
1. Run the development server with: 1. Run the development server with:
```shell ```shell
mkdocs serve mkdocs serve -f mkdocs.generated.yml
``` ```
The documentation should then be available locally at The documentation should then be available locally at

View File

@ -34,7 +34,8 @@ An extremely fast Python linter, written in Rust.
- ⚖️ [Near-parity](https://beta.ruff.rs/docs/faq/#how-does-ruff-compare-to-flake8) with the - ⚖️ [Near-parity](https://beta.ruff.rs/docs/faq/#how-does-ruff-compare-to-flake8) with the
built-in Flake8 rule set built-in Flake8 rule set
- 🔌 Native re-implementations of dozens of Flake8 plugins, like flake8-bugbear - 🔌 Native re-implementations of dozens of Flake8 plugins, like flake8-bugbear
- ⌨️ First-party editor integrations for [VS Code](https://github.com/astral-sh/ruff-vscode) and [more](https://github.com/astral-sh/ruff-lsp) - ⌨️ First-party [editor integrations](https://beta.ruff.rs/docs/editor-integrations/) for
[VS Code](https://github.com/astral-sh/ruff-vscode) and [more](https://github.com/astral-sh/ruff-lsp)
- 🌎 Monorepo-friendly, with [hierarchical and cascading configuration](https://beta.ruff.rs/docs/configuration/#pyprojecttoml-discovery) - 🌎 Monorepo-friendly, with [hierarchical and cascading configuration](https://beta.ruff.rs/docs/configuration/#pyprojecttoml-discovery)
Ruff aims to be orders of magnitude faster than alternative tools while integrating more Ruff aims to be orders of magnitude faster than alternative tools while integrating more

View File

@ -0,0 +1 @@
<script src="https://cdn.usefathom.com/script.js" data-site="DUAEBFLB" defer></script>

View File

@ -23,7 +23,7 @@ theme:
toggle: toggle:
icon: material/weather-night icon: material/weather-night
name: Switch to light mode name: Switch to light mode
custom_dir: .overrides custom_dir: docs/.overrides
repo_url: https://github.com/astral-sh/ruff repo_url: https://github.com/astral-sh/ruff
repo_name: ruff repo_name: ruff
site_author: charliermarsh site_author: charliermarsh
@ -50,3 +50,6 @@ plugins:
- search - search
extra_css: extra_css:
- stylesheets/extra.css - stylesheets/extra.css
extra:
analytics:
provider: fathom

View File

@ -32,10 +32,6 @@ SECTIONS: list[Section] = [
Section("Contributing", "contributing.md", generated=True), Section("Contributing", "contributing.md", generated=True),
] ]
FATHOM_SCRIPT: str = (
'<script src="https://cdn.usefathom.com/script.js" data-site="DUAEBFLB" defer>'
"</script>"
)
LINK_REWRITES: dict[str, str] = { LINK_REWRITES: dict[str, str] = {
"https://beta.ruff.rs/docs/": "index.md", "https://beta.ruff.rs/docs/": "index.md",
@ -45,7 +41,6 @@ LINK_REWRITES: dict[str, str] = {
), ),
"https://beta.ruff.rs/docs/contributing/": "contributing.md", "https://beta.ruff.rs/docs/contributing/": "contributing.md",
"https://beta.ruff.rs/docs/editor-integrations/": "editor-integrations.md", "https://beta.ruff.rs/docs/editor-integrations/": "editor-integrations.md",
"https://beta.ruff.rs/docs/faq/": "faq.md",
"https://beta.ruff.rs/docs/faq/#how-does-ruff-compare-to-flake8": ( "https://beta.ruff.rs/docs/faq/#how-does-ruff-compare-to-flake8": (
"faq.md#how-does-ruff-compare-to-flake8" "faq.md#how-does-ruff-compare-to-flake8"
), ),
@ -53,7 +48,6 @@ LINK_REWRITES: dict[str, str] = {
"https://beta.ruff.rs/docs/rules/": "rules.md", "https://beta.ruff.rs/docs/rules/": "rules.md",
"https://beta.ruff.rs/docs/rules/#error-e": "rules.md#error-e", "https://beta.ruff.rs/docs/rules/#error-e": "rules.md#error-e",
"https://beta.ruff.rs/docs/settings/": "settings.md", "https://beta.ruff.rs/docs/settings/": "settings.md",
"https://beta.ruff.rs/docs/usage/": "usage.md",
} }
@ -92,7 +86,13 @@ def main() -> None:
# Rewrite links to the documentation. # Rewrite links to the documentation.
for src, dst in LINK_REWRITES.items(): for src, dst in LINK_REWRITES.items():
content = content.replace(f"({src})", f"({dst})") before = content
after = content.replace(f"({src})", f"({dst})")
if before == after:
msg = f"Unexpected link rewrite in README.md: {src}"
raise ValueError(msg)
content = after
if m := re.search(r"\(https://beta.ruff.rs/docs/.*\)", content): if m := re.search(r"\(https://beta.ruff.rs/docs/.*\)", content):
msg = f"Unexpected absolute link to documentation: {m.group(0)}" msg = f"Unexpected absolute link to documentation: {m.group(0)}"
raise ValueError(msg) raise ValueError(msg)
@ -140,18 +140,8 @@ def main() -> None:
with Path("mkdocs.template.yml").open(encoding="utf8") as fp: with Path("mkdocs.template.yml").open(encoding="utf8") as fp:
config = yaml.safe_load(fp) config = yaml.safe_load(fp)
config["nav"] = [{section.title: section.filename} for section in SECTIONS] config["nav"] = [{section.title: section.filename} for section in SECTIONS]
config["extra"] = {"analytics": {"provider": "fathom"}}
Path(".overrides/partials/integrations/analytics").mkdir( with Path("mkdocs.generated.yml").open("w+") as fp:
parents=True,
exist_ok=True,
)
with Path(".overrides/partials/integrations/analytics/fathom.html").open(
"w+",
) as fp:
fp.write(FATHOM_SCRIPT)
with Path("mkdocs.yml").open("w+") as fp:
yaml.safe_dump(config, fp) yaml.safe_dump(config, fp)