Merge branch 'linkify-0.5.2' into 'develop'
Upgrade Linkify to v0.5.2 Closes #2376, #2386, and #2485 See merge request pleroma/pleroma!3605
This commit is contained in:
commit
ecdc81b37a
@ -31,6 +31,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- Handle Reject for already-accepted Follows properly
|
- Handle Reject for already-accepted Follows properly
|
||||||
- Display OpenGraph data on alternative notice routes.
|
- Display OpenGraph data on alternative notice routes.
|
||||||
- Fix replies count for remote replies
|
- Fix replies count for remote replies
|
||||||
|
- Fixed hashtags disappearing from the end of lines when Markdown is enabled
|
||||||
- ChatAPI: Add link headers
|
- ChatAPI: Add link headers
|
||||||
- Limited number of search results to 40 to prevent DoS attacks
|
- Limited number of search results to 40 to prevent DoS attacks
|
||||||
- ActivityPub: fixed federation of attachment dimensions
|
- ActivityPub: fixed federation of attachment dimensions
|
||||||
|
2
mix.exs
2
mix.exs
@ -157,7 +157,7 @@ defmodule Pleroma.Mixfile do
|
|||||||
{:floki, "~> 0.27"},
|
{:floki, "~> 0.27"},
|
||||||
{:timex, "~> 3.6"},
|
{:timex, "~> 3.6"},
|
||||||
{:ueberauth, "~> 0.4"},
|
{:ueberauth, "~> 0.4"},
|
||||||
{:linkify, "~> 0.5.1"},
|
{:linkify, "~> 0.5.2"},
|
||||||
{:http_signatures, "~> 0.1.1"},
|
{:http_signatures, "~> 0.1.1"},
|
||||||
{:telemetry, "~> 0.3"},
|
{:telemetry, "~> 0.3"},
|
||||||
{:poolboy, "~> 1.5"},
|
{:poolboy, "~> 1.5"},
|
||||||
|
2
mix.lock
2
mix.lock
@ -69,7 +69,7 @@
|
|||||||
"jose": {:hex, :jose, "1.11.1", "59da64010c69aad6cde2f5b9248b896b84472e99bd18f246085b7b9fe435dcdb", [:mix, :rebar3], [], "hexpm", "078f6c9fb3cd2f4cfafc972c814261a7d1e8d2b3685c0a76eb87e158efff1ac5"},
|
"jose": {:hex, :jose, "1.11.1", "59da64010c69aad6cde2f5b9248b896b84472e99bd18f246085b7b9fe435dcdb", [:mix, :rebar3], [], "hexpm", "078f6c9fb3cd2f4cfafc972c814261a7d1e8d2b3685c0a76eb87e158efff1ac5"},
|
||||||
"jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"},
|
"jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"},
|
||||||
"libring": {:hex, :libring, "1.4.0", "41246ba2f3fbc76b3971f6bce83119dfec1eee17e977a48d8a9cfaaf58c2a8d6", [:mix], [], "hexpm"},
|
"libring": {:hex, :libring, "1.4.0", "41246ba2f3fbc76b3971f6bce83119dfec1eee17e977a48d8a9cfaaf58c2a8d6", [:mix], [], "hexpm"},
|
||||||
"linkify": {:hex, :linkify, "0.5.1", "6dc415cbc948b2f6ecec7cb226aab7ba9d3a1815bb501ae33e042334d707ecee", [:mix], [], "hexpm", "a3128c7e22fada4aa7214009501d8131e1fa3faf2f0a68b33dba379dc84ff944"},
|
"linkify": {:hex, :linkify, "0.5.2", "fb66be139fdf1656ecb31f78a93592724d1b78d960a1b3598bd661013ea0e3c7", [:mix], [], "hexpm", "8d71ac690218d8952c90cbeb63cb8cc33738bb230d8a56d487d9447f2a5eab86"},
|
||||||
"majic": {:hex, :majic, "1.0.0", "37e50648db5f5c2ff0c9fb46454d034d11596c03683807b9fb3850676ffdaab3", [:make, :mix], [{:elixir_make, "~> 0.6.1", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "7905858f76650d49695f14ea55cd9aaaee0c6654fa391671d4cf305c275a0a9e"},
|
"majic": {:hex, :majic, "1.0.0", "37e50648db5f5c2ff0c9fb46454d034d11596c03683807b9fb3850676ffdaab3", [:make, :mix], [{:elixir_make, "~> 0.6.1", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "7905858f76650d49695f14ea55cd9aaaee0c6654fa391671d4cf305c275a0a9e"},
|
||||||
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
|
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
|
||||||
"makeup_elixir": {:hex, :makeup_elixir, "0.14.1", "4f0e96847c63c17841d42c08107405a005a2680eb9c7ccadfd757bd31dabccfb", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f2438b1a80eaec9ede832b5c41cd4f373b38fd7aa33e3b22d9db79e640cbde11"},
|
"makeup_elixir": {:hex, :makeup_elixir, "0.14.1", "4f0e96847c63c17841d42c08107405a005a2680eb9c7ccadfd757bd31dabccfb", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f2438b1a80eaec9ede832b5c41cd4f373b38fd7aa33e3b22d9db79e640cbde11"},
|
||||||
|
@ -270,6 +270,34 @@ defmodule Pleroma.FormatterTest do
|
|||||||
|
|
||||||
assert {^expected_text, ^expected_mentions, []} = Formatter.linkify(text)
|
assert {^expected_text, ^expected_mentions, []} = Formatter.linkify(text)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "correctly parses mentions in html" do
|
||||||
|
text = "<p>@lain hello</p>"
|
||||||
|
lain = insert(:user, %{nickname: "lain"})
|
||||||
|
|
||||||
|
{text, mentions, []} = Formatter.linkify(text)
|
||||||
|
|
||||||
|
assert length(mentions) == 1
|
||||||
|
|
||||||
|
expected_text =
|
||||||
|
~s(<p><span class="h-card"><a class="u-url mention" data-user="#{lain.id}" href="#{lain.ap_id}" rel="ugc">@<span>lain</span></a></span> hello</p>)
|
||||||
|
|
||||||
|
assert expected_text == text
|
||||||
|
end
|
||||||
|
|
||||||
|
test "correctly parses mentions on the last line of html" do
|
||||||
|
text = "<p>Hello</p><p>@lain</p>"
|
||||||
|
lain = insert(:user, %{nickname: "lain"})
|
||||||
|
|
||||||
|
{text, mentions, []} = Formatter.linkify(text)
|
||||||
|
|
||||||
|
assert length(mentions) == 1
|
||||||
|
|
||||||
|
expected_text =
|
||||||
|
~s(<p>Hello</p><p><span class="h-card"><a class="u-url mention" data-user="#{lain.id}" href="#{lain.ap_id}" rel="ugc">@<span>lain</span></a></span></p>)
|
||||||
|
|
||||||
|
assert expected_text == text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe ".parse_tags" do
|
describe ".parse_tags" do
|
||||||
@ -285,6 +313,57 @@ defmodule Pleroma.FormatterTest do
|
|||||||
|
|
||||||
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "parses tags in html" do
|
||||||
|
text = "<p>This is a #test</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#test", "test"}
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses mulitple tags in html" do
|
||||||
|
text = "<p>#tag1 #tag2 #tag3 #tag4</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#tag1", "tag1"},
|
||||||
|
{"#tag2", "tag2"},
|
||||||
|
{"#tag3", "tag3"},
|
||||||
|
{"#tag4", "tag4"}
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses tags on the last line of html" do
|
||||||
|
text = "<p>This is a</p><p>#test</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#test", "test"}
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses mulitple tags on mulitple lines in html" do
|
||||||
|
text =
|
||||||
|
"<p>testing...</p><p>#tag1 #tag2 #tag3 #tag4</p><p>paragraph</p><p>#tag5 #tag6 #tag7 #tag8</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#tag1", "tag1"},
|
||||||
|
{"#tag2", "tag2"},
|
||||||
|
{"#tag3", "tag3"},
|
||||||
|
{"#tag4", "tag4"},
|
||||||
|
{"#tag5", "tag5"},
|
||||||
|
{"#tag6", "tag6"},
|
||||||
|
{"#tag7", "tag7"},
|
||||||
|
{"#tag8", "tag8"}
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
test "it escapes HTML in plain text" do
|
test "it escapes HTML in plain text" do
|
||||||
|
Loading…
Reference in New Issue
Block a user