From 0ccce3185691679423dd3830370e8375edd3724b Mon Sep 17 00:00:00 2001 From: PythonWoods-Dev Date: Mon, 8 Jun 2026 20:59:01 +0200 Subject: [PATCH] docs: release v0.10.3 D.I.A. routing and governance upgrade Signed-off-by: PythonWoods-Dev --- .bumpversion.toml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 10 ++++ .github/workflows/compliance.yml | 48 +++++++++++++++++++ CONTRIBUTING.it.md | 12 +++++ CONTRIBUTING.md | 12 +++++ README.it.md | 2 +- README.md | 2 +- RELEASE.md | 8 ++-- developers/how-to/contribute/index.mdx | 4 ++ .../how-to/contribute/pull-requests.mdx | 18 ++----- docs/how-to/configure-ci-cd.mdx | 14 +++--- .../z1xx-links/z102-anchor-missing.mdx | 4 ++ .../z1xx-links/z104-file-not-found.mdx | 4 ++ .../z5xx-content/z503-snippet-error.mdx | 4 ++ docusaurus.config.ts | 4 +- i18n/en/code.json | 2 +- i18n/it/code.json | 2 +- .../current.json | 2 +- .../current/how-to/configure-ci-cd.mdx | 14 +++--- .../z1xx-links/z102-anchor-missing.mdx | 4 ++ .../z1xx-links/z104-file-not-found.mdx | 4 ++ .../z5xx-content/z503-snippet-error.mdx | 4 ++ package-lock.json | 4 +- package.json | 2 +- src/components/Homepage/Features.tsx | 2 +- src/components/Homepage/Hero.tsx | 2 +- static/assets/brand/zenzic-brand-system.html | 4 +- 27 files changed, 147 insertions(+), 47 deletions(-) create mode 100644 .github/workflows/compliance.yml diff --git a/.bumpversion.toml b/.bumpversion.toml index 2b15e45..a0cac14 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 [tool.bumpversion] -current_version = "0.10.1" +current_version = "0.10.3" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)" serialize = ["{major}.{minor}.{patch}"] diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index fd7b58e..e79aae3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -51,6 +51,16 @@ Every PR touching `docs/`, `blog/`, `src/`, or `i18n/` must satisfy all that app --- +## Enterprise governance compliance + +- [ ] This PR addresses an approved Issue #___ and complies with the **Issue-First Policy**. +- [ ] Every commit in this PR is **cryptographically signed** (GPG/SSH/S/MIME) and shows as "Verified" on GitHub. +- [ ] Every commit has a valid **Developer Certificate of Origin (DCO)** sign-off (`Signed-off-by:` via `git commit -s`). +- [ ] I have verified and can architecturally justify every single line of code proposed in this PR (**No AI Slop**). +- [ ] All commit messages comply with the **Conventional Commits** specification. + +--- + ## Notes for reviewers diff --git a/.github/workflows/compliance.yml b/.github/workflows/compliance.yml new file mode 100644 index 0000000..963099f --- /dev/null +++ b/.github/workflows/compliance.yml @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: 2026 PythonWoods +# SPDX-License-Identifier: Apache-2.0 + +name: Zenzic Doc Compliance + +on: + pull_request: + types: [opened, edited, synchronize, reopened] + +permissions: + contents: read + pull-requests: read + +jobs: + pr-title: + name: Lint PR Title + runs-on: ubuntu-latest + steps: + - name: Validate PR Title + uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + dco: + name: Check DCO + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + + - name: Verify Signed-off-by + run: | + BASE_SHA="${{ github.event.pull_request.base.sha }}" + HEAD_SHA="${{ github.event.pull_request.head.sha }}" + + echo "Checking commits between $BASE_SHA and $HEAD_SHA" + + # Check each commit in the range + git log --no-merges --format='%H' "$BASE_SHA..$HEAD_SHA" | while read -r commit_sha; do + commit_msg=$(git log -1 --format='%B' "$commit_sha") + if ! echo "$commit_msg" | grep -q "^Signed-off-by:"; then + echo "::error::Commit $commit_sha is missing 'Signed-off-by:' sign-off." + exit 1 + fi + done + echo "All commits have valid DCO sign-offs." diff --git a/CONTRIBUTING.it.md b/CONTRIBUTING.it.md index e0068ef..7b7b7c7 100644 --- a/CONTRIBUTING.it.md +++ b/CONTRIBUTING.it.md @@ -12,6 +12,18 @@ programmatori Python. Se vuoi contribuire al motore Zenzic, consulta il --- +## Policy di Governance Enterprise e Contributo + +Per garantire la sicurezza, l'integrità architetturale e la conformità legale di Zenzic, tutti i contributi devono aderire alle seguenti linee guida di Governance Enterprise: + +1. **Issue-First Policy (Prima le Issue)**: Nessuna Pull Request sarà presa in carico, revisionata o discussa se non preceduta da una Issue corrispondente discussa e approvata dai maintainer. Collega sempre l'Issue approvata nella descrizione della tua PR. +2. **Firma Crittografica Obbligatoria**: Tutti i commit devono essere firmati crittograficamente tramite chiavi GPG, SSH o S/MIME (mostrati come "Verified" su GitHub). I commit non firmati verranno respinti automaticamente dal gate di merge. +3. **Clausola "No AI Slop"**: Applichiamo una policy severa contro il codice generato da intelligenza artificiale non verificato. I contributor devono comprendere appieno, saper spiegare e giustificare dal punto di vista architetturale ogni singola riga di codice proposta nella PR. La proposta di codice non compreso porterà al rifiuto immediato del contributo. +4. **Developer Certificate of Origin (DCO)**: Tutti i commit devono includere la riga `Signed-off-by:` (usando `git commit -s`) per certificare la conformità con la DCO. +5. **Conventional Commits**: I messaggi di commit devono seguire rigorosamente la specifica Conventional Commits (es. `feat: add block anchor support (#123)`). + +--- + ## Prerequisiti | Strumento | Versione | Installazione | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b353187..8114c97 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,6 +12,18 @@ programmers. If you want to contribute to the Zenzic engine itself, see the --- +## Enterprise Governance & Contribution Policy + +To maintain the security, architectural integrity, and legal compliance of Zenzic, all contributions must adhere to the following Enterprise Governance guidelines: + +1. **Issue-First Policy**: No Pull Request will be reviewed, merged, or discussed unless it is preceded by a corresponding Issue that has been formally discussed and approved by the maintainers. Always link the approved Issue in your PR description. +2. **Mandatory Cryptographic Commit Signatures**: Every commit must be cryptographically signed using GPG, SSH, or S/MIME keypairs (appearing as "Verified" on GitHub). Unsigned commits will be rejected by the merge gates. +3. **No AI Slop Clause**: We enforce a strict policy against unverified AI-generated code. Contributors must fully understand, explain, and architecturally justify every single line of code proposed in a PR. Proposing code that you cannot explain will lead to immediate rejection of the contribution. +4. **Developer Certificate of Origin (DCO)**: All commits must include a `Signed-off-by:` line (using `git commit -s`) to certify compliance with the DCO. +5. **Conventional Commits**: Commit messages must strictly follow the Conventional Commits specification (e.g., `feat: add block anchor support (#123)`). + +--- + ## Prerequisites | Tool | Version | Install | diff --git a/README.it.md b/README.it.md index dd10b4f..67f12a7 100644 --- a/README.it.md +++ b/README.it.md @@ -23,7 +23,7 @@ SPDX-License-Identifier: Apache-2.0 [![REUSE 3.x compliant](https://img.shields.io/badge/REUSE-3.x%20compliant-0d9488?style=flat-square)](https://reuse.software/) [![License](https://img.shields.io/badge/license-Apache--2.0-0d9488?style=flat-square)](LICENSE) [![Documentation: Diátaxis](https://img.shields.io/badge/Docs-Di%C3%A1taxis-brightgreen?style=flat-square)](https://diataxis.fr/) -[![Zenzic](https://img.shields.io/badge/Zenzic-v0.10.1-blue?style=flat-square)](https://github.com/PythonWoods/zenzic) +[![Zenzic](https://img.shields.io/badge/Zenzic-v0.10.3-blue?style=flat-square)](https://github.com/PythonWoods/zenzic) --- diff --git a/README.md b/README.md index b0e937d..eb27d02 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ SPDX-License-Identifier: Apache-2.0 [![REUSE 3.x compliant](https://img.shields.io/badge/REUSE-3.x%20compliant-0d9488?style=flat-square)](https://reuse.software/) [![License](https://img.shields.io/badge/license-Apache--2.0-0d9488?style=flat-square)](LICENSE) [![Documentation: Diátaxis](https://img.shields.io/badge/Docs-Di%C3%A1taxis-brightgreen?style=flat-square)](https://diataxis.fr/) -[![Zenzic](https://img.shields.io/badge/Zenzic-v0.10.1-blue?style=flat-square)](https://github.com/PythonWoods/zenzic) +[![Zenzic](https://img.shields.io/badge/Zenzic-v0.10.3-blue?style=flat-square)](https://github.com/PythonWoods/zenzic) --- diff --git a/RELEASE.md b/RELEASE.md index e60929a..d537c8c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -8,9 +8,9 @@ | Field | Value | | :------- | :--------- | -| Version | v0.10.1 | +| Version | v0.10.3 | | Codename | Magnetite | -| Date | 2026-06-07 | +| Date | 2026-06-08 | | Status | Stable | ## Release Checklist @@ -47,11 +47,11 @@ git checkout main git pull origin main # 3. Tag the main branch and push -git tag v0.10.1 +git tag v0.10.3 git push origin main --tags ``` -- [ ] Create GitHub Release from the tag, using the `## v0.10.1` CHANGELOG section as the release body. +- [ ] Create GitHub Release from the tag, using the `## v0.10.3` CHANGELOG section as the release body. ## Changelog Reference diff --git a/developers/how-to/contribute/index.mdx b/developers/how-to/contribute/index.mdx index 765a558..4d36696 100644 --- a/developers/how-to/contribute/index.mdx +++ b/developers/how-to/contribute/index.mdx @@ -86,6 +86,10 @@ In this section, we guide you through our processes. [request a change]: request-a-change.mdx [make a pull request]: pull-requests.mdx +## Issue-First Policy + +To maintain a healthy codebase and optimize maintainer resources, Zenzic enforces a strict **Issue-First Policy**. No Pull Request will be reviewed, merged, or discussed unless it is preceded by a corresponding Issue that has been formally discussed and approved by the maintainers. Always link the approved Issue in your PR description. + ## Checklist Before interacting within the project, please take a moment to consider the diff --git a/developers/how-to/contribute/pull-requests.mdx b/developers/how-to/contribute/pull-requests.mdx index b373be3..2b680de 100644 --- a/developers/how-to/contribute/pull-requests.mdx +++ b/developers/how-to/contribute/pull-requests.mdx @@ -115,13 +115,9 @@ The `zenzic` binary in your activated virtual environment is what you want — not `uvx`, which would download the published PyPI version. ::: -## Before you start +## Issue-First Policy -Before you start work on a pull request (PR), we need you to open an issue and -discuss it with us so we know what you are working on and so we can agree on the -approach to take. This prevents you from spending time on a feature that may not -align with the project's goals. You then reference the issue number in your PR -to link back to our discussion. +To optimize resources and ensure contributions align with the architectural goals of the project, Zenzic enforces a strict **Issue-First Policy**. No Pull Request will be reviewed, merged, or discussed unless it is preceded by a corresponding Issue that has been formally discussed and approved by the maintainers. Always link the approved Issue in your PR description. ## CI/CD & Draft PRs @@ -226,15 +222,9 @@ For binary files, generated assets, or formats with no comment syntax, add an entry to `REUSE.toml` at the repository root instead of adding inline headers. The pre-commit hook validates both inline headers and `REUSE.toml` entries. -## Use of Generative AI +## Use of Generative AI (No AI Slop) -AI-assisted coding can be useful, but the unreflected inclusion of AI-generated -code can also do great harm. By signing off on commits, you attest that you have -either written all the code yourself or have thoroughly reviewed and fully -understood any generated code. - -Code contributions that contain obviously AI-generated code that you cannot -fully explain to us will be rejected. +We enforce a strict policy against unverified AI-generated code ("No AI Slop"). AI-assisted coding can be useful, but contributors must thoroughly understand, explain, and architecturally justify every single line of code proposed in a PR. Proposing code that you cannot explain will lead to immediate rejection of the contribution. ## Commit message standards diff --git a/docs/how-to/configure-ci-cd.mdx b/docs/how-to/configure-ci-cd.mdx index 69a997b..6c103d2 100644 --- a/docs/how-to/configure-ci-cd.mdx +++ b/docs/how-to/configure-ci-cd.mdx @@ -199,7 +199,7 @@ jobs: uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" # pin to a stable release + version: "0.10.3" # pin to a stable release format: sarif # emit SARIF for Code Scanning upload-sarif: "true" fail-on-error: "true" @@ -254,7 +254,7 @@ Slack notifications without re-parsing the SARIF file: id: zenzic uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" - name: Post finding count @@ -271,7 +271,7 @@ By setting `ci: "true"`, the action natively injects the `--ci` flag under the h - name: Zenzic Progressive Gate uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" ci: "true" # Native inline PR annotations (no SARIF required) only: "Z101,Z201" # Gate ONLY fails on broken links and leaked secrets fail-on-error: "true" @@ -320,7 +320,7 @@ jobs: - name: Run Zenzic and save baseline uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" format: json # triggers .zenzic-score.json snapshot upload-sarif: "false" @@ -352,7 +352,7 @@ jobs: uses: PythonWoods/zenzic-action@ id: zenzic with: - version: "0.10.1" + version: "0.10.3" format: sarif upload-sarif: "true" diff-base: ".zenzic-baseline/.zenzic-score.json" @@ -400,7 +400,7 @@ jobs: - name: Sovereign Audit (suppressions bypassed) uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" format: sarif upload-sarif: "true" audit: "true" # bypass all zenzic:ignore and per_file_ignores @@ -419,7 +419,7 @@ The `guard-scan: "true"` input runs `zenzic guard scan` as a standalone step **b - name: Run Zenzic Documentation Quality Gate uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" guard-scan: "true" # zenzic guard scan runs before check all format: sarif upload-sarif: "true" diff --git a/docs/tutorials/examples/z1xx-links/z102-anchor-missing.mdx b/docs/tutorials/examples/z1xx-links/z102-anchor-missing.mdx index 2a824be..c50e063 100644 --- a/docs/tutorials/examples/z1xx-links/z102-anchor-missing.mdx +++ b/docs/tutorials/examples/z1xx-links/z102-anchor-missing.mdx @@ -97,6 +97,10 @@ This error or warning is raised by Zenzic when a markdown link contains a fragme Exit code 1 halts the CI/CD pipeline. Resolve the issue by adding the missing header to the target document, ensuring its slugified name matches the fragment, or updating the link to target a valid header. +## Explicit Anchors & Attribute Lists + +Zenzic natively supports explicit block-level anchors (such as `{#id}`) and handles markdown attribute lists (e.g., `{ data-toc-label="Overview" }`) attached to headings. When compiling the header registry, Zenzic strips these attribute lists before slugifying heading text, preventing false-positive `Z102` errors. + ## See Also - [z101 — Broken Links](z101-broken-links) — the file-level variant: the target file itself does not exist. diff --git a/docs/tutorials/examples/z1xx-links/z104-file-not-found.mdx b/docs/tutorials/examples/z1xx-links/z104-file-not-found.mdx index 8d88922..1134772 100644 --- a/docs/tutorials/examples/z1xx-links/z104-file-not-found.mdx +++ b/docs/tutorials/examples/z1xx-links/z104-file-not-found.mdx @@ -85,6 +85,10 @@ filesystem entry: + For the complete API specification, see the [API Reference](api/index.md). ``` +## Footnotes Parsing Behavior + +Footnote definitions (such as `[^1]: footnote text`) are parsed and recognized correctly by Zenzic's link parser. Zenzic automatically ignores footnotes during the link verification process, preventing them from being mistakenly validated as filesystem links, thereby avoiding false-positive `Z104` errors. + ## See Also - [Z101 — Broken Links](z101-broken-links) — routing-level link integrity. diff --git a/docs/tutorials/examples/z5xx-content/z503-snippet-error.mdx b/docs/tutorials/examples/z5xx-content/z503-snippet-error.mdx index 1d74045..77c141f 100644 --- a/docs/tutorials/examples/z5xx-content/z503-snippet-error.mdx +++ b/docs/tutorials/examples/z5xx-content/z503-snippet-error.mdx @@ -58,6 +58,10 @@ This error or warning is raised by Zenzic when a fenced code block has syntax er Exit code 1. Fix the syntax error in the Python code block to ensure it is valid Python code. +## Custom YAML Tags Support + +The YAML validator used by Zenzic's Snippet Guard natively registers and supports standard PyYAML custom tags (such as `!!python/name:` or `!!python/object/apply:`) as well as unregistered custom tags (such as `!ENV` or `!file`) commonly used in MkDocs configuration files. This ensures that valid YAML files incorporating these structures are parsed successfully without throwing false-positive `Z503` exceptions. + ## See Also - [Checks Reference](../../../reference/checks) — full rule specification. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index c7c1f40..7243027 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -75,7 +75,7 @@ const config: Config = { lastVersion: 'current', versions: { current: { - label: '0.10.1', + label: '0.10.3', badge: false, banner: 'none', }, @@ -239,7 +239,7 @@ const config: Config = { ], }, ], - copyright: `© ${new Date().getFullYear()} PythonWoods · Zenzic v0.10.1 · Engineered with precision by PythonWoods in Italy 🇮🇹`, + copyright: `© ${new Date().getFullYear()} PythonWoods · Zenzic v0.10.3 · Engineered with precision by PythonWoods in Italy 🇮🇹`, }, prism: { theme: prismThemes.github, diff --git a/i18n/en/code.json b/i18n/en/code.json index 1e70a44..5c5e791 100644 --- a/i18n/en/code.json +++ b/i18n/en/code.json @@ -43,7 +43,7 @@ "message": "Brand obsolescence" }, "homepage.hero.badge": { - "message": "v0.10.1", + "message": "v0.10.3", "description": "Wait release version badge" }, "enterprise.section.sub": { diff --git a/i18n/it/code.json b/i18n/it/code.json index 5f87851..1953216 100644 --- a/i18n/it/code.json +++ b/i18n/it/code.json @@ -379,7 +379,7 @@ "message": "Marchio obsoleto" }, "homepage.hero.badge": { - "message": "v0.10.1", + "message": "v0.10.3", "description": "Wait release version badge" }, "homepage.hero.title": { diff --git a/i18n/it/docusaurus-plugin-content-docs/current.json b/i18n/it/docusaurus-plugin-content-docs/current.json index 6fbe79c..07f17f3 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current.json +++ b/i18n/it/docusaurus-plugin-content-docs/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "0.10.1", + "message": "0.10.3", "description": "The label for version current" }, "sidebar.tutorialSidebar.category.User Guide": { diff --git a/i18n/it/docusaurus-plugin-content-docs/current/how-to/configure-ci-cd.mdx b/i18n/it/docusaurus-plugin-content-docs/current/how-to/configure-ci-cd.mdx index c20fa79..bebb959 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/how-to/configure-ci-cd.mdx +++ b/i18n/it/docusaurus-plugin-content-docs/current/how-to/configure-ci-cd.mdx @@ -199,7 +199,7 @@ jobs: uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" # fissa a una release stabile + version: "0.10.3" # fissa a una release stabile format: sarif # emetti SARIF per Code Scanning upload-sarif: "true" fail-on-error: "true" @@ -254,7 +254,7 @@ o notifiche Slack senza dover rileggere il file SARIF: id: zenzic uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" - name: Mostra conteggio finding @@ -271,7 +271,7 @@ Impostando `ci: "true"`, l'action inietta nativamente il flag `--ci` sotto il co - name: Zenzic Progressive Gate uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" ci: "true" # Annotazioni PR native (non richiede SARIF) only: "Z101,Z201" # Il Gate fallisce SOLO per link rotti e segreti esposti fail-on-error: "true" @@ -320,7 +320,7 @@ jobs: - name: Esegui Zenzic e salva il baseline uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" format: json # genera lo snapshot .zenzic-score.json upload-sarif: "false" @@ -352,7 +352,7 @@ jobs: uses: PythonWoods/zenzic-action@ id: zenzic with: - version: "0.10.1" + version: "0.10.3" format: sarif upload-sarif: "true" diff-base: ".zenzic-baseline/.zenzic-score.json" @@ -400,7 +400,7 @@ jobs: - name: Sovereign Audit (soppressioni bypassate) uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" format: sarif upload-sarif: "true" audit: "true" # bypassa tutti i zenzic:ignore e per_file_ignores @@ -419,7 +419,7 @@ L'input `guard-scan: "true"` esegue `zenzic guard scan` come step standalone **p - name: Run Zenzic Documentation Quality Gate uses: PythonWoods/zenzic-action@ with: - version: "0.10.1" + version: "0.10.3" guard-scan: "true" # zenzic guard scan viene eseguito prima di check all format: sarif upload-sarif: "true" diff --git a/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z102-anchor-missing.mdx b/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z102-anchor-missing.mdx index 374f995..6d43f75 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z102-anchor-missing.mdx +++ b/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z102-anchor-missing.mdx @@ -110,6 +110,10 @@ Poi riesegui: uvx zenzic check links # → exit 0, nessun finding ``` +## Ancore Esplicite e Attribute List + +Zenzic supporta nativamente le ancore esplicite a livello di blocco (come `{#id}`) e gestisce le liste di attributi markdown (es. `{ data-toc-label="Overview" }`) collegate alle intestazioni. Durante la compilazione del registro intestazioni, Zenzic rimuove queste attribute list prima di slugificare il testo del titolo, prevenendo falsi positivi per il codice `Z102`. + ## Vedi Anche - [z101 — Link Rotti](z101-broken-links) — variante a livello di file: il file di destinazione non esiste. diff --git a/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z104-file-not-found.mdx b/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z104-file-not-found.mdx index f83bd3f..ac0d36f 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z104-file-not-found.mdx +++ b/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z1xx-links/z104-file-not-found.mdx @@ -85,6 +85,10 @@ file system mancante: + For the complete API specification, see the [API Reference](api/index.md). ``` +## Comportamento del Parser per le Note a Piè di Pagina + +Le definizioni delle note a piè di pagina (come `[^1]: testo della nota`) vengono analizzate e riconosciute correttamente dal parser dei link di Zenzic. Zenzic ignora automaticamente le note a piè di pagina durante il processo di verifica dei link, impedendo che vengano erroneamente validate come link del filesystem, evitando così errori `Z104` falsi positivi. + ## Vedi Anche - [Z101 — Link Rotti](z101-broken-links) — integrità dei link a livello di routing. diff --git a/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z5xx-content/z503-snippet-error.mdx b/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z5xx-content/z503-snippet-error.mdx index ffe9fb5..7518ea6 100644 --- a/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z5xx-content/z503-snippet-error.mdx +++ b/i18n/it/docusaurus-plugin-content-docs/current/tutorials/examples/z5xx-content/z503-snippet-error.mdx @@ -58,6 +58,10 @@ Questo errore o avviso viene generato da Zenzic quando un blocco di codice conti Risolvi il problema come riportato da Zenzic. +## Supporto per i Tag Custom YAML + +Il validatore YAML utilizzato dallo Snippet Guard di Zenzic registra e supporta nativamente sia i tag personalizzati standard di PyYAML (come `!!python/name:` o `!!python/object/apply:`) sia i tag personalizzati non registrati (come `!ENV` o `!file`) comunemente usati nei file di configurazione di MkDocs. Ciò garantisce che i file YAML validi che incorporano queste strutture vengano analizzati con successo senza generare eccezioni `Z503` false positive. + ## Vedi Anche - [Riferimento Controlli](../../../reference/checks) — specifica completa della regola. diff --git a/package-lock.json b/package-lock.json index 1eba93b..78d0b34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "zenzic-doc", - "version": "0.10.1", + "version": "0.10.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "zenzic-doc", - "version": "0.10.1", + "version": "0.10.3", "dependencies": { "@docusaurus/core": "3.10.1", "@docusaurus/faster": "3.10.1", diff --git a/package.json b/package.json index 247198a..fa61f1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenzic-doc", - "version": "0.10.1", + "version": "0.10.3", "private": true, "scripts": { "docusaurus": "docusaurus", diff --git a/src/components/Homepage/Features.tsx b/src/components/Homepage/Features.tsx index e4e0e77..323c6e0 100644 --- a/src/components/Homepage/Features.tsx +++ b/src/components/Homepage/Features.tsx @@ -18,7 +18,7 @@ function TerminalPreview(): React.JSX.Element { - zenzic check all · v0.10.1 + zenzic check all · v0.10.3 {/* Output body */} diff --git a/src/components/Homepage/Hero.tsx b/src/components/Homepage/Hero.tsx index e092d64..1394cab 100644 --- a/src/components/Homepage/Hero.tsx +++ b/src/components/Homepage/Hero.tsx @@ -39,7 +39,7 @@ export default function Hero(): React.JSX.Element {
- v0.10.1 + v0.10.3

diff --git a/static/assets/brand/zenzic-brand-system.html b/static/assets/brand/zenzic-brand-system.html index a85f4ff..8fd4183 100644 --- a/static/assets/brand/zenzic-brand-system.html +++ b/static/assets/brand/zenzic-brand-system.html @@ -549,7 +549,7 @@

Code / UI · JetBrains Mono

-

Markdown static analyzer & credential scanner
uvx zenzic check all ./docs
v0.10.1 · exit 0

+

Markdown static analyzer & credential scanner
uvx zenzic check all ./docs
v0.10.3 · exit 0

@@ -711,7 +711,7 @@

CLI Output — Color Mapping

- ▮ ZENZIC v0.10.1
+ ▮ ZENZIC v0.10.3
✨ All statically-detectable links, credentials, and references verified.
⚠ WARNING docs/guide.md:14
✗ ERROR docs/api.md:88