Skip to content

Latest commit

 

History

History
121 lines (100 loc) · 4.66 KB

CHANGELOG.md

File metadata and controls

121 lines (100 loc) · 4.66 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog. This project adheres to Semantic Versioning, with the exception that 0.x versions can break between minor versions.

0.10.0 - 2023-06-24

Added

  • New option url_can_bi_iri that can be used to disable international domain parsing (still enabled by default). This is useful for parsing ASCII only URLs out of non-ASCII text even if there's no spaces before/after the URL (#49)

Changed

  • Don't require valid hostname for file:// URLs to allow for relative paths used in the wild (#58)
  • Support URIs with empty path but with query, e.g. foo://bar?a=b (#59)
  • Require IPv4 addresses to have 4 numeric parts. This means things like 1.0 are no longer recognized as domains (#46)

0.9.0 - 2022-07-11

Changed

  • More strict parsing of hostname (authority) part of URLs. Applies to emails, plain domains URLs (e.g. example.com/foo) and URLs with schemes where a host is expected (e.g. https).

    This fixes a few problems that have been reported over time, namely:

    • https://www.example..com is no longer parsed as an URL (#41)
    • [email protected] is no longer parsed as an email address (#29)
    • https://*.example.org is no longer parsed as an URL (#38)

    It's a tricky change and hopefully this solves some problems while not introducing too many new ones. If anything unexpectedly changed for you, please let us know!

0.8.1 - 2022-04-14

Changed

  • Skip parsing very short strings for URLs as a performance optimization

0.8.0 - 2021-11-26

Added

  • New option url_must_have_scheme on LinkFinder that can be set to false to allow URLs without scheme/protocol such as example.com. Note that there is no allowlist for top-level domains, if you want that you will have to implement it yourself.

Changed

  • Bump MSRV (minimum supported Rust version) to 1.46

0.7.0 - 2021-05-18

Changed

  • URLs that have a quote character like ' or " before them will stop when that quote character is encountered, e.g. in "https://example.org/",", the URL will not include any quotes. Before, it would run until the end because the quotes after the slash were an even number. (#20)
  • Bump MSRV (minimum supported Rust version) to 1.41

0.6.0 - 2021-04-09

Changed

  • Stop URLs when encountering |. Consistent with RFC and will hopefully not cause problems with real URLs.

0.5.0 - 2021-02-13

Changed

  • Treat * as a delimiter like . or ,, which means they can be part of an URL but not at the end.

0.4.0 - 2019-08-05

Changed

  • Stop URLs when encountering ". This is consistent with RFC 3986, and it seems unlikely that a user would have an unescaped " in an URL anyway, as browsers escape it when copying an URL with it.
  • Stop URLs at ` characters too, same as < and >
  • Bump MSRV (minimum supported Rust version) to 1.31 (2018 edition)

0.3.1 - 2018-02-04

Changed

  • Bump memchr dependency to 2 (for wasm support)

0.3.0 - 2018-01-25

Added

  • New API to iterate over both plain text and link spans using the spans method. This is useful for iterating over all parts of the input, not just the detected links. Thanks @srijs!

0.2.0 - 2017-09-18

Changed

  • Don't autolink if authority is only "end" characters, e.g. like http://. or http://"

0.1.2 - 2017-06-09

Fixed

  • Fix html_root_url attribute

0.1.1 - 2017-06-08

Added

  • More docs
  • Add Debug impls for Links and LinkFinder

0.1.0 - 2017-05-13

Added

Initial release of linkify, a Rust library to find links such as URLs and email addresses in plain text, handling surrounding punctuation correctly.