diff --git a/docs/strictdoc_04_release_notes.sdoc b/docs/strictdoc_04_release_notes.sdoc index 7b19ec0e9..d437b6cf3 100644 --- a/docs/strictdoc_04_release_notes.sdoc +++ b/docs/strictdoc_04_release_notes.sdoc @@ -47,7 +47,7 @@ This document maintains a record of all changes to StrictDoc since November 2023 [[SECTION]] MID: f53df5a2e9674373a8f52f1a01b5010d -TITLE: Unreleased +TITLE: 0.11.0 (2025-08-26) [TEXT] MID: 177963dca83748d89bfaeb01b3d663a8 diff --git a/docs/strictdoc_21_L2_StrictDoc_Requirements.sdoc b/docs/strictdoc_21_L2_StrictDoc_Requirements.sdoc index 3210243a5..b98f088d0 100644 --- a/docs/strictdoc_21_L2_StrictDoc_Requirements.sdoc +++ b/docs/strictdoc_21_L2_StrictDoc_Requirements.sdoc @@ -1124,7 +1124,7 @@ UID: SDOC-SRS-155 STATUS: Active TITLE: Content search STATEMENT: >>> -StrictDoc shall provide searching with queries via a search bar. +StrictDoc shall provide searching documentation content with queries via a search bar. <<< RATIONALE: >>> As per the parent requirement, a search bar with query support enables users to interactively find specific content without navigating the entire documentation tree. diff --git a/strictdoc/__init__.py b/strictdoc/__init__.py index 37ab3cd07..9248759de 100644 --- a/strictdoc/__init__.py +++ b/strictdoc/__init__.py @@ -1,6 +1,6 @@ from strictdoc.core.environment import SDocRuntimeEnvironment -__version__ = "0.10.1" +__version__ = "0.11.0" environment = SDocRuntimeEnvironment(__file__) diff --git a/strictdoc/backend/sdoc/models/document.py b/strictdoc/backend/sdoc/models/document.py index ac9d2a883..98c41af76 100644 --- a/strictdoc/backend/sdoc/models/document.py +++ b/strictdoc/backend/sdoc/models/document.py @@ -304,51 +304,48 @@ def build_search_index(self) -> None: document_index = defaultdict(set) map_nodes_by_mid = {} - with measure_performance(f"Build search index: {self.title}"): - from strictdoc.core.document_iterator import ( # noqa: PLC0415 - DocumentCachingIterator, - ) - - document_iterator = DocumentCachingIterator(self) - - for node, _ in document_iterator.all_content( - print_fragments=False, - ): - if not isinstance(node, SDocNode): - continue - - node_dict = {} - - node_dict["MID"] = node.reserved_mid.get_string_value() - map_nodes_by_mid[node.reserved_mid.get_string_value()] = ( - node_dict - ) - - for ( - field_name_, - field_values_, - ) in node.ordered_fields_lookup.items(): - requirement_field: SDocNodeField = field_values_[0] - requirement_field_value = requirement_field.get_text_value() + from strictdoc.core.document_iterator import ( # noqa: PLC0415 + DocumentCachingIterator, + ) - node_dict[field_name_] = requirement_field_value + document_iterator = DocumentCachingIterator(self) - tokens = set(tokenize(requirement_field_value)) - for token in tokens: - if len(token) > 1: - document_index[token].add( - node.reserved_mid.get_string_value() + for node, _ in document_iterator.all_content( + print_fragments=False, + ): + if not isinstance(node, SDocNode): + continue + + node_dict = {} + + node_dict["MID"] = node.reserved_mid.get_string_value() + map_nodes_by_mid[node.reserved_mid.get_string_value()] = node_dict + + for ( + field_name_, + field_values_, + ) in node.ordered_fields_lookup.items(): + requirement_field: SDocNodeField = field_values_[0] + requirement_field_value = requirement_field.get_text_value() + + node_dict[field_name_] = requirement_field_value + + tokens = set(tokenize(requirement_field_value)) + for token in tokens: + if len(token) > 1: + document_index[token].add( + node.reserved_mid.get_string_value() + ) + + for i in range(0, len(token)): + token_incremental = token[: i + 1] + document_index[token_incremental].add( + node.reserved_mid + ) + token_deincremental = token[i:] + document_index[token_deincremental].add( + node.reserved_mid ) - - for i in range(0, len(token)): - token_incremental = token[: i + 1] - document_index[token_incremental].add( - node.reserved_mid - ) - token_deincremental = token[i:] - document_index[token_deincremental].add( - node.reserved_mid - ) self.search_index = SDocDocumentSearchIndex( document_index, map_nodes_by_mid diff --git a/tasks.py b/tasks.py index 063911836..27ccc3698 100644 --- a/tasks.py +++ b/tasks.py @@ -896,7 +896,7 @@ def release(context, test_pypi=False, username=None, password=None): context, ToxEnvironment.RELEASE, f""" - twine upload dist/strictdoc-*.tar.gz + twine upload dist/strictdoc-*.tar.gz dist/strictdoc-*.whl {repository_argument_or_none} {user_password} """,