I am using the markdown viewer to display some markdown text in my application.
The following link will render properly: Google
The following link will not render at all: Arch Linux
The underlying issue is in the file `src/iced_widget/markdown.rs`, which has the following url scheme filter:
pulldown_cmark::Tag::Link { dest_url, .. } if !metadata => {
match Url::parse(&dest_url) {
Ok(url)
if url.scheme() == "http"
|| url.scheme() == "https" =>
{
link = Some(url);
}
_ => {}
}
None
}
I would expect any url to be rendered as link. The decision on whether this is a valid link or not should be done by the event handler, so by the using application, not by the library itself. In my case, I would like to implement a custom protocol (card://).
To implement this, one would only need to remove the match guard (if url.schemeā¦).
There is probably a reason, why this was installed in the first place, so I am interested in the motivation behind this default behavior.
Another possibility would be to have a vector allowed_url_schemes, which can be set by the user.