# gfm-autolinks [crates.io](https://crates.io/crates/gfm-autolinks) A GitHub-flavored Markdown autolink matcher: . ## Usage The `match_start` function matches from the start of the string, and returns `None` or the generated autolink, and the number of characters matched. ```rust use gfm_autolinks::match_start; match_start("foo") // returns None match_start("http://example.com more") // returns Some(("http://example.com", 18)) match_start("www.example.com more") // returns Some(("http://www.example.com", 15)) match_start("me@hotmail.com more") // returns Some(("mailto:me@hotmail.com", 14)) ``` The `match_index` function matches from a given index, and also returns `None` or the generated autolink, and the number of characters matched. If the index is not 0, it will also apply the rule, that the autolink must be preceded by a whitespace character or one of `* _ ~ (`. Invalid index will return `None`. ```rust use gfm_autolinks::match_index; match_index("foo", 10) // returns None match_index(" www.example.com", 1) // returns Some(("http://www.example.com", 18)) match_index("]www.example.com", 1) // returns None ``` Note, no HTML escaping is performed, e.g. ```rust use gfm_autolinks::match_start; match_start("http://example.com?foo=bar&baz=qux") // returns Some(("http://example.com?foo=bar&baz=qux", 34)) ``` ## Acknowledgements Originally adapted from [comrak](https://github.com/kivikakk/comrak/blob/main/src/parser/autolink.rs).