From b15d45e56f868bad0635741541ec5aa7e7a39ef7 Mon Sep 17 00:00:00 2001 From: Maximilian Pollak Date: Fri, 22 Nov 2024 09:48:12 +0100 Subject: [PATCH 1/2] Allow for multiple regex matches --- sphinx_needs/utils.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/sphinx_needs/utils.py b/sphinx_needs/utils.py index ab5d9ab07..811510e96 100644 --- a/sphinx_needs/utils.py +++ b/sphinx_needs/utils.py @@ -457,25 +457,24 @@ def match_string_link( try: link_name = None link_url = None - link_conf = matching_link_confs[ - 0 - ] # We only handle the first matching string_link - match = link_conf["regex_compiled"].search(data) - if match: - render_content = match.groupdict() - link_url = link_conf["url_template"].render( - **render_content, **render_context - ) - link_name = link_conf["name_template"].render( - **render_content, **render_context - ) + link_conf = matching_link_confs + for lc in link_conf: + match = lc["regex_compiled"].search(data) + if match: + render_content = match.groupdict() + link_url = lc["url_template"].render( + **render_content, **render_context + ) + link_name = lc["name_template"].render( + **render_content, **render_context + ) - # if no string_link match was made, we handle it as normal string value - ref_item = ( - nodes.reference(link_name, link_name, refuri=link_url) - if link_name - else nodes.Text(text_item) - ) + # if no string_link match was made, we handle it as normal string value + ref_item = ( + nodes.reference(link_name, link_name, refuri=link_url) + if link_name + else nodes.Text(text_item) + ) except Exception as e: log_warning( From 25a770a590b468e863e1f1753f3f5ba37fca0502 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 08:50:49 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- sphinx_needs/utils.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sphinx_needs/utils.py b/sphinx_needs/utils.py index 811510e96..8ffcb9599 100644 --- a/sphinx_needs/utils.py +++ b/sphinx_needs/utils.py @@ -462,9 +462,7 @@ def match_string_link( match = lc["regex_compiled"].search(data) if match: render_content = match.groupdict() - link_url = lc["url_template"].render( - **render_content, **render_context - ) + link_url = lc["url_template"].render(**render_content, **render_context) link_name = lc["name_template"].render( **render_content, **render_context )