[−][src]Function parse_hyperlinks::parser::take_link
pub fn take_link(input: &str) -> IResult<&str, (&str, Link<'_>)>
Consumes the input until it finds a Markdown, RestructuredText, Asciidoc or
HTML formatted inline link (Text2Dest), reference link (Text2Label),
link reference definition (Label2Dest) or reference alias (Label2Label).
The parser consumes the finding and returns
Ok((remaining_input, (skipped_input, Link))) or some error.
Basic usage
use parse_hyperlinks::parser::Link; use parse_hyperlinks::parser::take_link; use std::borrow::Cow; let i = r#"foo [a]: b 'c' .. _d: e ---[f](g 'h')---`i <j>`__--- ---[k][l]--- ---<a href="m" title="n">o</a>--- ---`p <q>`_--- "#; let (i, r) = take_link(i).unwrap(); assert_eq!(r.0, "foo\n"); assert_eq!(r.1, Link::Label2Dest(Cow::from("a"), Cow::from("b"), Cow::from("c"))); let (i, r) = take_link(i).unwrap(); assert_eq!(r.1, Link::Label2Dest(Cow::from("d"), Cow::from("e"), Cow::from(""))); let (i, r) = take_link(i).unwrap(); assert_eq!(r.1, Link::Text2Dest(Cow::from("f"), Cow::from("g"), Cow::from("h"))); let (i, r) = take_link(i).unwrap(); assert_eq!(r.1, Link::Text2Dest(Cow::from("i"), Cow::from("j"), Cow::from(""))); let (i, r) = take_link(i).unwrap(); assert_eq!(r.1, Link::Text2Label(Cow::from("k"), Cow::from("l"))); let (i, r) = take_link(i).unwrap(); assert_eq!(r.0, "---\n---"); assert_eq!(r.1, Link::Text2Dest(Cow::from("o"), Cow::from("m"), Cow::from("n"))); let (i, r) = take_link(i).unwrap(); assert_eq!(r.0, "---\n---"); assert_eq!(r.1, Link::TextLabel2Dest(Cow::from("p"), Cow::from("q"), Cow::from("")));