Automatic escaping of Jinja templates, ReqIF improvements, HTML2PDF improvements, passthrough command deprecated
LatestThis release includes several important improvements. Thanks to @haxtibal for implementing and testing many of the implemented changes.
-
Fixed multiple issues related to the handling of the UID field's format and accepted characters, both on its own and when used as part of LINK and ANCHOR tags. [@haxtibal]
-
Implemented a more consistent and unified approach to escaping Jinja templates. With this change, the Jinja templates that StrictDoc uses for rendering content are now automatically escaped, except for a few known edge cases that have been handled separately. For more details, see the "HTML Escaping" section of the Design Document, which describes the rationale and approach taken. [@haxtibal]
-
Extended the HTML2PDF feature to support the
--generate-bundle-document
option, which allows generating a single PDF document from all documents in an SDoc documentation tree. -
Additionally, a project configuration option was added to specify a custom path to the ChromeDriver used by the HTML2PDF printer. [@haxtibal]
-
Enhanced the SDoc-ReqIF-SDoc roundtrip to include relation roles such as Refines, Implements, etc. These roles are now recognized in both directions. This feature was requested by a single user and requires further testing.
-
Deprecated the passthrough command. All passthrough functionality has been moved to the export command under the option
--formats=sdoc
. Users are encouraged to switch to the export command, as using passthrough will now trigger a deprecation warning. [@haxtibal] -
Fixed a bug related to editing custom (non-requirement) nodes and adding links between them, based on a report by @elfman2.
-
The Python 3.7 support was removed. The lowest Python baseline will now be 3.8 for some time.
What's Changed
- Extend UID regex and use it in SDocNode by @haxtibal in #1902
- backend/sdoc: SDocNode: Make MID a normal SDocField by @stanislaw in #1903
- Add parentheses to UID regex by @haxtibal in #1904
- LINKs: Fix link to anchor in other sdoc by @haxtibal in #1906
- rst: Fix link followed by non-ws/punctuation by @haxtibal in #1908
- rst: Render links and anchors in node fields by @haxtibal in #1909
- views: Support custom views for passthrough by @haxtibal in #1910
- links: Consistent anchor id whitespace replacement by @haxtibal in #1917
- export: HTML2PDF: render bundle document by @stanislaw in #1915
- Code climate: get_included_document -> get_including_document by @stanislaw in #1919
- Code climate: fix several issues related to new Ruff checks by @stanislaw in #1922
- Code climate: document_iterator: add SDocAnyNode type hint by @stanislaw in #1923
- Code climate: remove unused render_free_text() by @stanislaw in #1924
- Code climate: markup_renderer: remove unused code by @stanislaw in #1926
- Code climate: markup_renderer: fix all mypy issues by @stanislaw in #1927
- Use Jinja2 autoescaping by @haxtibal in #1921
- Fix html escaping of source line marks by @haxtibal in #1929
- backend/reqif: relation roles export/import roundtrip by @stanislaw in #1930
- Bump version to 0.0.59a1 by @stanislaw in #1931
- Fix e2e test by using new chrome headless mode by @haxtibal in #1934
- HTML2PDF: System chromedriver for PDF export by @haxtibal in #1932
- Mark more special HTML in templates as safe by @haxtibal in #1936
- Move passthrough commands to export --formats sdoc by @haxtibal in #1937
- UI: edit node: fix a case when editing a custom node by @stanislaw in #1939
- docs: update the release notes by @stanislaw in #1940
- Code climate: SDocNode: requirement_type -> node_type by @stanislaw in #1941
- CI: drop Python 3.7 and 3.8 by @stanislaw in #1944
- tests/integration: HTML escaping: add assertions for project index and traceability matrix by @stanislaw in #1943
- tasks: remove assert on the path to chromedriver by @stanislaw in #1945
- Drop Python 3.7 support by @stanislaw in #1946
- Bump version to 0.0.59, regenerate Read the Docs by @stanislaw in #1947
Full Changelog: 0.0.58...0.0.59