Skip to content

Commit 8ddb34e

Browse files
Fix [Sphinx] [Automation] Issue -> PR conversion of hyperlinks | Closes #221 (#226)
* Fix: Normalize Markdown links and formatting - Convert inline-code links like [`text`](url) to standard [text](url) - Correct mixed bold/code formatting: - **`code`** → `code` - `**code**` → `code` This prevents Markdown parser errors in issue bodies and ensures consistent formatting. * Fix: address CI failure by updating snapshot-ci.yml * Fix: address CI failure by updating Pandoc installation * Remove parts requested by @plaindocs Pandoc installation is only needed for PR #228, so it has been removed from this branch.
1 parent bef616e commit 8ddb34e

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

scripts/auto-pr-helper.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,34 @@
2121
def md_to_rst(markdown: str) -> str:
2222
return convert(markdown)
2323

24+
def normalize_md(issue_body: str) -> str:
25+
"""
26+
Fix links and mixed bold/code that confuse Markdown parser
27+
"""
28+
# Fix links with inline-code: [`link`](url) => [link](url)
29+
issue_body = re.sub(
30+
r"\[\s*`([^`]+)`\s*\]\(([^)]+)\)",
31+
r"[\1](\2)",
32+
issue_body
33+
)
34+
35+
# Fix mixed bold/code formatting
36+
# **`code`** => `code`
37+
issue_body = re.sub(
38+
r"\*\*`([^`]+)`\*\*",
39+
r"`\1`",
40+
issue_body
41+
)
42+
43+
# `**code**` => `code`
44+
issue_body = re.sub(
45+
r"`\*\*([^`]+)\*\*`",
46+
r"`\1`",
47+
issue_body
48+
)
49+
50+
return issue_body
51+
2452

2553
def extract_form_fields(issue_body: str) -> dict:
2654
"""
@@ -139,7 +167,10 @@ def format_code_block(code: str, lang: str = "rust") -> str:
139167

140168
issue_number = json_issue["number"]
141169
issue_title = json_issue["title"]
170+
142171
issue_body = json_issue["body"]
172+
issue_body = normalize_md(issue_body)
173+
143174
fields = extract_form_fields(issue_body)
144175
chapter = fields["chapter"]
145176
content = guideline_template(fields)

0 commit comments

Comments
 (0)