Skip to content

Commit

Permalink
Bug fix: Prevent fully defined links [name](link) from being refo…
Browse files Browse the repository at this point in the history
…rmatted (#10442)

## Summary

Currently fully define markdown links which include ticks are being
reformatted by

https://github.com/astral-sh/ruff/blob/861998612300520f2c18dbc7b8a6226300ceb508/crates/ruff_dev/src/generate_docs.rs#L105-L114

```[`name`](link)``` -> ```[`name`][name](link)```

For example: https://docs.astral.sh/ruff/rules/typed-argument-default-in-stub/

This PR excludes the open parentheses from the regex, so that these types of links won't be reformatted.

## Test Plan

Extended the regression test.
  • Loading branch information
augustelalande committed Mar 18, 2024
1 parent 2edd617 commit 91e8141
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions crates/ruff_dev/src/generate_docs.rs
Expand Up @@ -102,16 +102,15 @@ fn process_documentation(documentation: &str, out: &mut String, rule_name: &str)
// a non-CommonMark-compliant Markdown parser, which doesn't support code
// tags in link definitions
// (see https://github.com/Python-Markdown/markdown/issues/280).
let documentation = Regex::new(r"\[`([^`]*?)`]($|[^\[])").unwrap().replace_all(
documentation,
|caps: &Captures| {
let documentation = Regex::new(r"\[`([^`]*?)`]($|[^\[\(])")
.unwrap()
.replace_all(documentation, |caps: &Captures| {
format!(
"[`{option}`][{option}]{sep}",
option = &caps[1],
sep = &caps[2]
)
},
);
});

for line in documentation.split_inclusive('\n') {
if line.starts_with("## ") {
Expand Down Expand Up @@ -159,7 +158,7 @@ mod tests {
process_documentation(
"
See also [`lint.mccabe.max-complexity`] and [`lint.task-tags`].
Something [`else`][other].
Something [`else`][other]. Some [link](https://example.com).
## Options
Expand All @@ -174,7 +173,7 @@ Something [`else`][other].
output,
"
See also [`lint.mccabe.max-complexity`][lint.mccabe.max-complexity] and [`lint.task-tags`][lint.task-tags].
Something [`else`][other].
Something [`else`][other]. Some [link](https://example.com).
## Options
Expand Down

0 comments on commit 91e8141

Please sign in to comment.