pulldown-cmark parses links as Tag::Link variants:
https://docs.rs/pulldown-cmark/0.13.0/pulldown_cmark/enum.Tag.html#variant.Link
These have the same lifetime as the source &str. It should be possible to avoid allocating a String to store URLs. That would make the parser completely zero-copy.
Alternatively, we could use the URL spans instead, if we can figure out how to obtain them.