Commit graph

69 commits

Author SHA1 Message Date
Mark Felder
26fa3bffeb Try to make intelligent decisions when deciding if parens should be stripped before linking
This logic is torture and needs some rework.

Rules:

- Always strip leading (, as it can't be part of a URL
- Short circuit to only strip leading if no trailing
- If valid email address when trailing ) stripped, we can strip trailing )
- If not even a valid URL without trailing ), short circuit to only strip leading
- If query parameters detected, strip trailing. It should have been encoded as %29.
- If there isn't a / the trailing ) can't be part of the URL, strip trailing.
- If there isn't at least one ( in the URI.path, only strip leading. Assume ) is not part of the URL.
- If we have an equal count of ( and ) chars with the leading ( already stripped, only strip leading
2021-01-26 18:30:35 -06:00
Lain Soykaf
e0fd2e7620 LinkifyTest: Add test for short IPv4 bug. 2020-12-22 14:17:13 +01:00
Mark Felder
713b986fa5 Only support IPv4 for the moment 2020-12-21 11:32:05 -06:00
Mark Felder
26fec6cff1 Fix invalid IPv4 linking; optimize
thx @href !
2020-12-19 13:20:11 -06:00
Haelwenn
9b86e5e5e4 Merge branch 'features/hostname_validation' into 'master'
Add .onion in the default TLDs, Validate IPv6, IDN compatibility in email and mentions

See merge request pleroma/elixir-libraries/linkify!29
2020-11-19 20:42:20 +00:00
Mark Felder
9925f4514e Add .onion domain tests 2020-11-19 19:49:21 +00:00
Mark Felder
5573fe6d97 Test IDN and punycode domains in mentions 2020-11-19 19:30:20 +00:00
Mark Felder
3ce2c34709 Fix linking URLs/domains with trailing punctuation 2020-11-19 18:55:17 +00:00
Mark Felder
17126aa662 Move tests under correct group, add test for URLs with IPv4 for domain 2020-11-19 18:29:41 +00:00
Mark Felder
31d41920ed Fix test group name 2020-11-19 18:25:54 +00:00
Mark Felder
c14ac019af Add IDN and punycode domain test 2020-11-19 18:13:55 +00:00
Haelwenn (lanodan) Monnier
649fc9125d parser: Validate IPv6, IDN compatibility in email and mentions 2020-11-19 17:42:34 +00:00
Haelwenn (lanodan) Monnier
26f5310379 parser: Add onion as an extra TLD 2020-11-19 17:42:34 +00:00
Justin Tormey
d84ca4d0b7 Fix formatting in test 2020-11-19 09:48:28 -06:00
Justin Tormey
8713d4141a Add handle_href option for href pre-processing 2020-11-19 09:40:47 -06:00
Mark Felder
372879c8d4 Verify trailing periods as sentence punctuation do not link 2020-11-18 17:41:12 +00:00
Mark Felder
b87be206a7 Support URLs with FQDNs (trailing period on the tld) 2020-11-18 17:24:44 +00:00
Sergey Suprunenko
2a050e1cbe
Ignore non-word chars in the beginning of mentions 2020-11-16 23:03:24 +01:00
Sergey Suprunenko
e16136f709
Do not parse mention if there is something before it 2020-11-10 21:24:50 +01:00
Sergey Suprunenko
7005cda9e4
Handle punctuation marks and new lines 2020-10-06 21:49:00 +02:00
Sergey Suprunenko
74afaca73b
Handle punctuation marks and angle bracket in the end of a link 2020-10-06 21:43:35 +02:00
Sergey Suprunenko
e5a8cf2b08
Do not parse html links inside html tags 2020-10-06 21:43:04 +02:00
Sergey Suprunenko
69902de571
Handle hashtags followed by skipped html tags 2020-08-31 20:48:04 +02:00
Justin Tormey
1d52bfeb81 Fix formatting 2020-07-27 12:46:26 -05:00
Justin Tormey
b1f6c04eef Add parser support for iodata and safe iodata 2020-07-27 12:42:51 -05:00
Alex Gleason
7c6cff9f8c
Don't parse mentions inside links
Fixes: https://git.pleroma.social/pleroma/pleroma/-/issues/1656
2020-06-30 16:29:32 -05:00
Egor Kislitsyn
14b8f39160 Disable strip_prefix by default 2019-07-11 20:08:30 +07:00
Egor Kislitsyn
66f5165655 Do not add class, target and rel attributes by default 2019-06-27 15:32:07 +07:00
Egor Kislitsyn
2690f2b680 Rename to Linkify 2019-06-24 17:57:31 +07:00
Egor Kislitsyn
093d2344d2 Refactor parser
Refactor parser
2019-06-21 20:09:52 +07:00
Egor Kislitsyn
529014c8f4 Drop phone links support 2019-06-21 19:05:47 +07:00
Egor Kislitsyn
150d9f222f Remove scheme setting 2019-06-21 18:09:52 +07:00
Egor Kislitsyn
6242cebdf9 Use double quotes in HTML attributes 2019-06-21 17:24:30 +07:00
Egor Kislitsyn
f081e6b553 Remove markdown links support 2019-06-21 17:12:11 +07:00
rinpatch
70cbfdc84e Extend email? to utilize validate_tld 2019-06-18 13:25:44 +03:00
rinpatch
c19c7afa5b Refactor url?/2 to use opts 2019-06-18 12:57:31 +03:00
rinpatch
c8026cd16c Add an option to disable TLD validation
Added `validate_tld` option, which can be set to false to disable tld
validation and to :no_scheme to disable tld validation when a scheme is
present

Closes #8
2019-06-17 23:06:31 +03:00
Egor Kislitsyn
cef4fe335c Improve parsing links inside parentheses and some refactoring 2019-06-12 15:27:18 +07:00
Egor Kislitsyn
0e6869c9ea Fix tld validation 2019-05-01 14:48:04 +07:00
Egor Kislitsyn
7394548119 test coverage 100%! 🎉 2019-04-09 15:03:39 +07:00
Egor Kislitsyn
55636e8593 fix links inside nested html 2019-04-09 14:32:30 +07:00
Egor Kislitsyn
a6e8755863 do not link inside <pre> and <code> 2019-04-09 13:45:55 +07:00
Egor Kislitsyn
02d7cb1eba fix test 2019-04-09 13:20:48 +07:00
Egor Kislitsyn
4949c02cb6 fix parsing inside HTML tags 2019-04-09 13:08:13 +07:00
Egor Kislitsyn
50882b427a support Telugu and probably other Asian scripts (#3) 2019-04-03 18:53:35 +07:00
Egor Kislitsyn
e862ee9d21 improve parsing (#2) 2019-04-03 18:05:11 +07:00
Egor Kislitsyn
df6f5dcab6 fix credo warnings 2019-04-03 14:57:06 +07:00
Haelwenn (lanodan) Monnier
4dae1eadd5
AutoLinker.BuilderTest: Add forgotten assert on format_mention/3 2019-03-01 22:53:53 +01:00
Haelwenn (lanodan) Monnier
bdd98ee731
AutoLinker.BuilderTest: Do not pass overridden href to create_link/2 2019-02-27 18:33:06 +01:00
Haelwenn (lanodan) Monnier
204ad610e3
AutoLinker.BuilderTest: Match (strange) behaviour 2019-02-27 18:25:14 +01:00