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