Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/strictdoc_04_release_notes.sdoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/strictdoc_21_L2_StrictDoc_Requirements.sdoc
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion strictdoc/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from strictdoc.core.environment import SDocRuntimeEnvironment

__version__ = "0.10.1"
__version__ = "0.11.0"


environment = SDocRuntimeEnvironment(__file__)
81 changes: 39 additions & 42 deletions strictdoc/backend/sdoc/models/document.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}
""",
Expand Down
Loading