Skip to content

1.11.0

Latest

Choose a tag to compare

@jaapio jaapio released this 06 Oct 20:13
· 36 commits to main since this release
b3a8332

What's Changed

This is one of the biggest releases we have since the release of v1.0.0. It contains a ton of improvements to bring the project even closer to what sphinx and other RST renderers support. This release contains 3 performance improvements provided by a new contributor (@javiereguiluz). Those improvements do cut down the rendering for larger projects with a lot of pages with another ~20% of time. Thanks a lot for providing those fixes.

New directive structure

When we started this project the first goal was to have a php based RST parser that was fast and extendable. But now the project is being used in more projects we also see that our own documentation and validation becomes more important. Maintaining documentation for all directives values, options with their supported types is quite a task. Given we built this project with a small team, we needed a solution to generate documentation. This is why we introduced a new way of registering directives using php attributes. The existing directives are partly migrated and more changes will follow to improve this new system. #1373

This new system will also bring us closer to an option to provide validation for options and directive values, which will drastically improve the feedback we can give to documentation authors.

Related PRs:

  • First iteration on option attributes by @jaapio in #1231
  • [TASK] Migrate 7 trivial directives to the #[Directive] attribute model by @linawolf in #1379
  • [FEATURE] Give DirectiveNode logger info, migrate logging directives by @linawolf in #1383
  • [FEATURE] Give #[Directive] a rawContent option, migrate RawDirective by @linawolf in #1382
  • [TASK] Rename DirectiveRule::parseDirectiveContent() to parseDirectiveValue() by @linawolf in #1391
  • [TASK] Migrate MathDirective now that raw content is available by @linawolf in #1386
  • [TASK] Apply directive options generically for migrated directives by @linawolf in #1388
  • Add compiler context to directives by @jaapio in #1404
  • [TASK] Typed directive values by @linawolf in #1392

Other changes

New packages

New features

  • [FEATURE] Support selecting an alternate template per document by @linawolf in #1364
  • [FEATURE] Support :version-removed: directive by @linawolf in #1367
  • Asset management by @wouterj in #1362
  • [FEATURE] Support index generation (genindex) by @linawolf in #1358
  • [FEATURE] Support text language and direction (lang/dir) in ReST by @linawolf in #1393

Improvements

  • Treat explicit markup lines as non-titles in RST parser by @lacatoire in #1335
  • [FEATURE] Support marker based partial include in literalinclude by @CybotTM in #1351
  • [FEATURE] Support :lines: in literalinclude by @CybotTM in #1352
  • [FEATURE] Support :sourcecode: as an alias for code-block by @linawolf in #1369
  • [FEATURE] Support Sphinx 9.0's version-added/version-changed/version-deprecated directive names by @linawolf in #1368
  • Fall back to the target reference when a label has no title by @CybotTM in #1395
  • Free shadow trees right after each transformer pass by @javiereguiluz in #1417
  • Resolve pre-renderers once in PreNodeRendererFactory by @javiereguiluz in #1416
  • Cache the relative URL check in AbstractUrlGenerator by @javiereguiluz in #1415
  • [TASK] Deduplicate identical log messages, with a configurable granularity by @linawolf in #1390
  • [BUGFIX] Report absolute line numbers in parser warnings by @linawolf in #1402
  • [BUGFIX] Keep rendering when an interlink inventory cannot be loaded by @linawolf in #1414
  • [FEATURE] Introduce new code highlight default by @jaapio in #1410

Bugfixes

  • [BUGFIX] Render a code block without a language instead of aborting the run by @CybotTM in #1353
  • [BUGFIX] Skip symbolic links instead of aborting the file listing by @CybotTM in #1338
  • [BUGFIX] Keep navigation menu in toctree order when mixing internal and external entries by @CybotTM in #1344
  • [BUGFIX] Split fragment before .rst extension check in RST references by @linawolf in #1374
  • [BUGFIX] Resolve cross-page fragment links in markdown by @linawolf in #1372
  • [BUGFIX] Read project version from the DOM so "0.10" is not coerced to 0.1 by @CybotTM in #1345

Maintenance

New Contributors

Full Changelog: 1.10.2...1.11.0