Remove ENABLE_MATH option from pulldown_cmark to fix links which contain dollar sign (#22647)
spotikhanov
created
This pr closes #21466 issue by disabling math in pulldown_cmark Parser.
The dollar sign symbol is used in pulldown_cmark Math extension, see
"Math in links" section for more details:
https://pulldown-cmark.github.io/pulldown-cmark/specs/math.html
I've tried another approach at first, without disabling math extension:
```
let iterator = TextMergeWithOffset::new(Parser::new_ext(text, options));
```
instead of current implementation
```
Parser::new_ext(text, options).into_offset_iter()
```
This way pulldown_cmark merges consecutive text events and this helps to
correctly parse links from plain text:
https://svelte.dev/docs/svelte/$state
But in this case the dollar sign still breaks markdown links:
\[https://svelte.dev/docs/svelte/$state](https://svelte.dev/docs/svelte/$state)
So in the end I disabled the math extension, it fixes both link formats.
See markdown/examples/markdown.rs to reproduce.
Release Notes:
- N/A
@@ -51,6 +51,12 @@ Links are created using the format [http://zed.dev](https://zed.dev).
They can also be detected automatically, for example https://zed.dev/blog.
+They may contain dollar signs:
+
+[https://svelte.dev/docs/svelte/$state](https://svelte.dev/docs/svelte/$state)
+
+https://svelte.dev/docs/svelte/$state
+
## Images
Images are like links, but with an exclamation mark `!` in front.