Timothée Mazzucotelli
7372e5bb76
fix: support pymdownx blocks in markdown exec ( #871 )
...
We use `markdown_exec.markdown_config.save()` to store the user configuration, so that markdown-exec's inner Markdown instances can render contents with the exact same configuration. Before, it would fallback to `md.registeredExtensions`, which isn't reliable.
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr >
2026-08-19 14:36:25 +00: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
Timothée Mazzucotelli
65931820ba
chore: incorporate autorefs
...
Signed-off-by: Timothée Mazzucotelli <dev@pawamoy.fr >
2026-05-10 15:20:44 +00:00