Commit Graph
200 Commits
Author SHA1 Message Date
Timothée Mazzucotelli 68e0c9845b fix: support pymdownx blocks in markdown-exec (#871)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-08-19 16:11:56 +02:00
Timothée Mazzucotelli aece054f2c chore: format code with ruff
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-08-19 16:10:59 +02:00
Timothée Mazzucotelli e6c56cef60 refactor: report invalid autorefs under invalid_links validation setting
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-08-18 17:08:20 +02:00
Martin Donath 9973ac981b fix: regression reporting unresolved references (#866)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-08-17 18:33:03 +02:00
Martin Donath b53048ed66 refactor: revert code blocks to TOML 1.0 (#860)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-08-15 12:21:33 +02:00
squidfunk 91d9d5031e fix: ignore surrounding whitespace in inline link targets (#861)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-08-14 18:45:43 +02:00
squidfunk 6774d6159c fix: invalid code span detection in reference extractor
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-08-14 18:36:52 +02:00
Martin Donath bb2cbee9e8 fix: defaults for mike incorrectly set
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-08-13 14:37:29 +02:00
Timothée Mazzucotelli db4f8ef5dc fix: avoid unresolved reference false-positive for autorefs
This commit fixes validation reporting false unresolved-reference errors for Markdown links that are successfully resolved by autorefs. Validation now runs after pages render, so it uses the autorefs results from the current build state and emits one complete issue report for that state.

**Validation implementation summary:**

- Page rendering now returns the identifiers that autorefs resolved, alongside rendered output.
- Validation combines those resolutions with the source-page references and anchors; a reference resolved by autorefs is no longer reported as unresolved.
- The workflow tracks a generation for page content and navigation, so it waits for matching render results from every page before creating issues. This prevents validation from using stale render data or printing duplicate reports during incremental updates.
- Reference collection now follows the configured documentation directory, and tests cover reporting after rendering and a subsequent clean rebuild.

Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-08-13 12:11:48 +00:00
94ceb078d1 refactor: update zensical.toml to TOML 1.1 syntax
Signed-off-by: alexvoss <alex@corealization.com>
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
Co-authored-by: alexvoss <alex@corealization.com>
Co-authored-by: squidfunk <martin.donath@squidfunk.com>
Co-authored-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-08-04 15:37:19 +02:00
Timothée Mazzucotelli 6227f4e52f feature: support strict configuration option (#840)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-08-04 12:03:32 +02:00
Timothée Mazzucotelli ec69accd9d fix: cache objects.inv to persist it across cached rebuilds (#815)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-10 10:53:50 +00:00
Martin Donath b340e4d0b2 Merge pull request #797 from zensical/refactor/cherry-pick-useful-bits-from-rust-config-refactor
refactor: cherry pick useful bits from rust config refactor
2026-07-07 18:02:24 +02:00
Timothée Mazzucotelli 63c9dd3db5 fix: avoid registering same extension twice (as plugin and extension)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 17:46:50 +02:00
Timothée Mazzucotelli 25ba4c7fa4 fix: enable autorefs when mkdocstrings extension is enabled
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 17:46:04 +02:00
Timothée Mazzucotelli ad57e7e180 chore: upgrade actions/checkout in bootstrapped workflow
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 17:10:00 +02:00
Timothée Mazzucotelli 81596c18f4 fix: fix relative/scoped cross-refs support for mkdocstrings-python (#796)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 14:32:37 +00:00
Timothée Mazzucotelli bf084fc3c6 chore: add configuration testing
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 15:42:43 +02:00
Timothée Mazzucotelli 781305a401 fix: support theme being just a string
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 15:42:30 +02:00
Timothée Mazzucotelli c33d65b0f8 fix: support enabled option in autorefs, glightbox and macros extensions
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 15:41:55 +02:00
Timothée Mazzucotelli 71c976cd96 refactor: allow configuring mkdocstrings as a Markdown extension
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-07 14:44:30 +02:00
Martin Donath b2eaab3bd3 chore: shim for markdown-exec not executing
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-07-05 17:19:45 +02:00
Timothée Mazzucotelli 05856add19 feature: support markdown-exec plugin
Since markdown-exec is not a proper Markdown extension but just a collection of custom superfences for the pymdownx.superfences extension, we cannot directly parametrize it to disable a few things that Zensical doesn't need (compared to MkDocs). We can't make it a proper extension because it modifies the configuration of superfences, hence requiring to run before it in all cases, order which we cannot guarantee since users could enable it themselves as a Markdown extension and after superfences.

To instruct markdown-exec that it runs through Zensical, we set a global variable in its top-level module. This requires that a new version of markdown-exec is published to take it into account when deciding whether to inject assets when rendering Pyodide fences, that Zensical provides natively (contrary to MkDocs).

Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-05 17:00:58 +02:00
Timothée Mazzucotelli 35c8e3637f fix: fix check for appending iframe-worker polyfill (#785)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-04 13:41:02 +00:00
Timothée Mazzucotelli 7158eab75a fix: catch misconfiguration of site_dir and docs_dir (#780)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-07-03 11:56:58 +02:00
squidfunk 61b6d05b68 fix: preserve small tags in generated search index
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-21 20:24:47 +02:00
Martin Donath e4a370f28d refactor: change several validation defaults to false (#758)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-21 15:58:05 +02:00
Timothée Mazzucotelli 909f97368c fix: don't crash on invalid URLs in HTML (#755)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-06-19 11:03:49 +00:00
Timothée Mazzucotelli e6b55fe6c6 fix: strip images from toc labels (#749)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-06-13 10:24:19 +00:00
Timothée Mazzucotelli 8d9536adf8 fix: revert "fix: brackets in indented code blocks recognized as unresolved link references (#700)" (#735)
This reverts commit c40f649f7b, as it was causing more issues with reference-style links, for example https://github.com/zensical/zensical/issues/735. Proper fixes will land later.

Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-06-05 13:31:56 +00:00
squidfunk fe04446967 chore: make ruff happy
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-04 19:16:03 +02:00
squidfunk eb7211503c fix: ignore Markdown comments [//]: ... during link validation
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-04 19:07:40 +02:00
squidfunk a4866d0fa6 chore: make ruff happy
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-04 19:03:03 +02:00
squidfunk c40f649f7b fix: brackets in indented code blocks recognized as unresolved link references (#700)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-04 18:59:54 +02:00
squidfunk 93cc869978 fix: snippet markers recognized as unresolved link references (#700)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-06-04 18:38:01 +02:00
Timothée Mazzucotelli db1f19c4ae fix: provide conf attribute in macros' env object
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-05-25 09:16:54 +00:00
squidfunk d7ccbe66a8 fix: anchors with escaped chars not matched during link validation (#703)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-22 09:39:16 +02:00
squidfunk 8b7e29e672 fix: empty footnote ref classified as link ref (#702)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-22 09:18:13 +02:00
squidfunk 1e873a397c fix: ignore links in code after literal dollar during link validation (#691)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-19 11:26:26 +02:00
squidfunk 7be40c6ceb fix: ignore GitHub-style callouts during link validation (#688)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-19 10:58:20 +02:00
squidfunk 85c3b1e321 fix: ignore [TOC] marker during link validation (#686)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-19 10:44:45 +02:00
Martin Donath 7a5d97abe0 Merge pull request #680 from zensical/fix/validation-edge-cases
harden link validation
2026-05-15 11:27:35 +02:00
squidfunk 4355dad3ce fix: harden link validation for files with CRLF line endings
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-15 11:23:45 +02:00
squidfunk a418c6bd3c fix: link validation doesn't ignore fenced code blocks when \r is present
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-15 11:05:07 +02:00
squidfunk b31dd1472c fix: $ at end of line breaks link validation (#659)
fix: `$` at end of line breaks link validation

Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-15 10:41:12 +02:00
Timothée Mazzucotelli 17c67a2f62 fix: remove abbreviations from table of contents (#669)
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-05-14 11:30:12 +00:00
Timothée Mazzucotelli 6eb2f4d942 fix: reserve theme name zensical
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-05-14 11:29:53 +00:00
Martin Donath 820755463d fix: don't consider [] and [][] link references (#663)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-12 09:51:22 +02:00
Martin Donath c338b270b5 fix: two backticks with no closing run trip up link parser (#663) (#665)
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
2026-05-12 09:43:32 +02:00
Timothée Mazzucotelli 5ef9ee4ee3 chore: use beautifulsoup and lxml to check HTML in tests
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr>
2026-05-10 17:50:03 +00:00