Canonicalize markdown link paths (#29119)

hrou0003 created

Closes #28657

Release Notes:

- Fixed markdown preview not canonicalizing file paths

Change summary

crates/markdown_preview/Cargo.toml               | 1 +
crates/markdown_preview/src/markdown_renderer.rs | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)

Detailed changes

crates/markdown_preview/Cargo.toml 🔗

@@ -31,6 +31,7 @@ ui.workspace = true
 util.workspace = true
 workspace.workspace = true
 workspace-hack.workspace = true
+fs.workspace = true
 
 [dev-dependencies]
 editor = { workspace = true, features = ["test-support"] }

crates/markdown_preview/src/markdown_renderer.rs 🔗

@@ -4,6 +4,7 @@ use crate::markdown_elements::{
     ParsedMarkdownHeading, ParsedMarkdownListItem, ParsedMarkdownListItemType, ParsedMarkdownTable,
     ParsedMarkdownTableAlignment, ParsedMarkdownTableRow,
 };
+use fs::normalize_path;
 use gpui::{
     AbsoluteLength, AnyElement, App, AppContext as _, ClipboardItem, Context, DefiniteLength, Div,
     Element, ElementId, Entity, HighlightStyle, Hsla, ImageSource, InteractiveText, IntoElement,
@@ -680,7 +681,7 @@ fn render_markdown_text(parsed_new: &MarkdownParagraph, cx: &mut RenderContext)
                                         _ = workspace.update(cx, |workspace, cx| {
                                             workspace
                                                 .open_abs_path(
-                                                    path.clone(),
+                                                    normalize_path(path.clone().as_path()),
                                                     OpenOptions {
                                                         visible: Some(OpenVisible::None),
                                                         ..Default::default()