Repository navigation
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
- [TASK] Declare psr/log in the packages that use it by @CybotTM in #1354
- [TASK] Declare the direct dependencies each package uses by @CybotTM in #1356
- [TASK] Stop
make docsoutput from being root-owned and untracked by @linawolf in #1359 - Upgrade to phpstan 2 by @jaapio in #1366
- [TASK] Remove dependency on gajus/dindent by @linawolf in #1370
- Support PHPUnit 12 alongside 10.5 by @linawolf in #1371
- [DOC] Use the actual theme attribute name in the extension example by @linawolf in #1376
- [TASK] Ignore deptrac's local analysis cache by @linawolf in #1384
- [TASK] Keep html-inline-md independent of the commonmark version by @linawolf in #1400
- Bump doctrine lexer by @jaapio in #1407
- Architecture tests by @jaapio in #1409
New Contributors
- @javiereguiluz made their first contribution in #1417
Full Changelog: 1.10.2...1.11.0