|
25 | 25 | import re |
26 | 26 | import cfdoc_qa as qa |
27 | 27 |
|
| 28 | +JIRA_BASE_URL = "https://northerntech.atlassian.net/browse/" |
| 29 | +# Pattern to match Jira ticket references (ENT-1234, CFE-4567, etc.) |
| 30 | +JIRA_TICKET_PATTERN = re.compile(r"\b(ENT|CFE)-(\d+)\b") |
| 31 | + |
28 | 32 |
|
29 | 33 | def run(config): |
30 | 34 | markdown_files = config["markdown_files"] |
@@ -115,6 +119,13 @@ def headerToAnchor(header): |
115 | 119 | return anchor |
116 | 120 |
|
117 | 121 |
|
| 122 | +def convertJiraTicketsToLinks(line): |
| 123 | + """Convert Jira ticket references (ENT-1234, CFE-4567) to markdown links.""" |
| 124 | + return JIRA_TICKET_PATTERN.sub( |
| 125 | + lambda m: "[%s](%s%s)" % (m[0], JIRA_BASE_URL, m[0]), line |
| 126 | + ) |
| 127 | + |
| 128 | + |
118 | 129 | def parseMarkdownForAnchors(file_name, config): |
119 | 130 | in_file = open(file_name, "r") |
120 | 131 | lines = in_file.readlines() |
@@ -305,6 +316,14 @@ def applyLinkMap(file_name, config): |
305 | 316 | else: |
306 | 317 | break |
307 | 318 | new_line += markdown_line |
| 319 | + |
| 320 | + # Convert Jira ticket references to links (only outside code blocks) |
| 321 | + if not in_pre: |
| 322 | + original_line = new_line |
| 323 | + new_line = convertJiraTicketsToLinks(new_line) |
| 324 | + if new_line != original_line: |
| 325 | + write_changes = True |
| 326 | + |
308 | 327 | new_lines.append(new_line) |
309 | 328 | previous_empty = markdown_line.lstrip() == "" |
310 | 329 |
|
|
0 commit comments