Further improve proposed pattern for Redirector

This patch further improves the proposed pattern for the Redirector
extension. In contrast to the old pattern, …

* … it will redirect the URL https://medium.com.
* … it will *not* redirect URLs with top-level domains like mediumXcom.
  (This point is purely theoretical, but it makes the regular expression
  more correct and consistent.)
* … it will *not* redirect URLs like https://link.medium.com/AXEtCilplkb
  which Scribe currently cannot handle. These are shortened URLs that
  users get when they use the Twitter button on Medium to share a post.

In order to implement the last point (not matching link.medium.com), the
pattern uses negative lookbehind. This feature of regular expressions is
supported by all recent browsers for which Redirector is available
(Firefox, Chrome, Edge, Opera)[^1], including the current version of
Firefox ESR (Extended Stability Release).

[^1]: https://caniuse.com/js-regexp-lookbehind
This commit is contained in:
Martin Puppe 2021-10-15 10:10:20 +02:00 committed by Edward Loveall
parent 472b0092c8
commit 56b6d546db
No known key found for this signature in database
GPG key ID: A7606DFEC2BA731F

View file

@ -53,13 +53,13 @@ class Home::IndexPage < MainLayout
end end
li do li do
strong "Include pattern: " strong "Include pattern: "
code "^https?://(?:.*\\.)*medium.com/(.*)$" code "^https?://(?:.*\\.)*(?<!link\\.)medium\\.com(/.*)?$"
end end
li do li do
strong "Redirect to: " strong "Redirect to: "
code "https://" code "https://"
code app_domain code app_domain
code "/$1" code "$1"
end end
li do li do
strong "Pattern type: " strong "Pattern type: "