Prevent dropping ellipsis URL

pull/585/head
TAKAHASHI Shuuji 2023-05-24 17:09:47 +09:00
rodzic 68dc2dc9ed
commit 3fda94d439
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: F15C887632129F5E
3 zmienionych plików z 26 dodań i 2 usunięć

Wyświetl plik

@ -169,7 +169,7 @@ class FediverseHtmlParser(HTMLParser):
if looks_like_link:
content = content.split("://", 1)[1]
if (looks_like_link and len(content) > 30) or has_ellipsis:
return f'<a href="{html.escape(href)}" rel="nofollow" class="ellipsis" title="{html.escape(content)}">{html.escape(content[:30])}</a>'
return f'<a href="{html.escape(href)}" rel="nofollow" class="ellipsis" title="{html.escape(content)}"><span class="ellipsis">{html.escape(content[:30])}</span><span class="invisible">{html.escape(content[30:])}</span></a>'
else:
return f'<a href="{html.escape(href)}" rel="nofollow">{html.escape(content)}</a>'

Wyświetl plik

@ -394,7 +394,7 @@ img.emoji {
vertical-align: baseline;
}
.ellipsis::after {
span.ellipsis::after {
content: "…";
}
@ -1485,6 +1485,10 @@ form .post {
margin: 12px 0 4px 0;
}
.post .content p a .invisible {
display: none;
}
.post .attachments {
padding-top: 4px;
display: grid;

Wyświetl plik

@ -155,3 +155,23 @@ def test_question_format(api_client, remote_identity):
],
"emojis": [],
}
@pytest.mark.django_db
def test_content_link(api_client, identity, remote_identity):
"""
Ensures mentions work, and only have one link around them.
"""
# Make a local post and check it
response = api_client.post(
"/api/v1/statuses",
data={
"status": "Takahē - return to the wild - https://www.youtube.com/watch?v=IG423K3pmQI",
},
).json()
# temp fix
assert (
response["content"]
== '<p>Takahē - return to the wild - <a href="https://www.youtube.com/watch?v=IG423K3pmQI" rel="nofollow" class="ellipsis" title="www.youtube.com/watch?v=IG423K3pmQI"><span class="ellipsis">www.youtube.com/watch?v=IG423K</span><span class="invisible">3pmQI</span></a></p>'
)