Wzmianka użytkownika przez znak @ zakończona wielokropkiem nie wyświetla się

1

Problem

Dziś, po napisaniu tego komentarza -> Bezsensowne znaki drogowe i dziwne rozwiązania, zauważyłem, że nie wyświetla mi się poprawnie. Ucięło pewną liczbę ostatnich znaków (dokładniej nazwę użytkownika i znak – U+2026). Zrobiłem parę zrzutów ekranu w celu dokumentacji:

  • Tak komentarz wyglądał, gdy go dodawałem oraz, po dodaniu, edytowałem:

    screenshot-20200210144627.png

  • Tak wyglądał zaakceptowany:

    screenshot-20200210144609.png

  • Po normalnym odświeżeniu strony – tak samo:

    screenshot-20200210144658.png

  • Po odświeżeniu z przeładowaniem pamięci podręcznej – tak samo:

    screenshot-20200210144741.png

  • W trybie prywatnym, niezalogowany – tak samo:

    screenshot-20200210144911.png

  • Po ponownym zalogowaniu się – tak samo:

    screenshot-20200210145415.png

  • Po uruchomieniu przeglądarki ponownie i zalogowaniu się:

    Nie zdążyłem zobaczyć, bo @cerrato edytował komentarz – po czym już zaczął się on dobrze wyświetlać.

Cer napisał, że problem leży w tym, że dałem znak (Horizontal Ellipsis, U+2026) po nazwie użytkownika (dokładnie tak: @somekind…), a nie trzy kropki (jak jest teraz po jego zmianie).

Po przetestowaniu zauważyłem, że chodzi o to, że wzmianka użytkownika przez znak @ zakończona znakiem U+2026 nie są wyświetlane. Dzieje się tak zarówno w komentarzach na forum, jak i w postach. Nazwa użytkownika wraz z wielokropkiem pokazuje się jednak tak w edycji komentarza, jak i w edycji posta (szybkiej oraz normalnej). Wzmianka musi być oddzielona spacją od poprzedzającego wyrazu, czyli nie tak: Coś@cerrato… (wtedy w ogóle nie będzie poprawnej wzmianki), tylko tak: Coś @cerrato….

Działanie aktualne

Wzmianka użytkownika przez znak @ wraz z wpisanym bezpośrednio po niej znakiem U+2026 nie jest wyświetlana ani w postach, ani w komentarzach na forum.

Działanie oczekiwane

Wzmianka użytkownika przez znak @ wraz z wpisanym bezpośrednio po niej znakiem U+2026 jest wyświetlana zarówno w postach, jak i w komentarzach na forum.

Kroki do odtworzenia

  1. Napisać komentarz lub post zawierający w treści ciąg: @{nazwaużytkownika}…, gdzie @{nazwaużytkownika} to dowolna nazwa użytkownika poprzedzona znakiem @, a to znak U+2026 (czyli wielokropek, a nie trzy kropki).

Środowisko

  • przeglądarka: Firefox 72.0.2 (64-bit) na Linuxa

UPDATE: Dodaję zrzut ekranu, jak to wygląda u mnie w przypadku postów (to jest post https://4programmers.net/Forum/Coyote/Test/335900-test?p=1653214#id1653214):

screenshot-20200210153616.png

Normalnie nie można dodać postów "bez treści", a tutaj jak widać – wygląda, jakby treści nie było. Wpisałem do niego ciąg @Silv….


UPDATE2: Jak @Wibowit zauważył w tym wątku, jeśli umieści się nazwę użytkownika we wzmiance w nawiasach klamrowych – o tak: @{Silv}… – to wyświetla się normalnie. Problem leży więc najwidoczniej w interpretacji nazwy użytkownika zakończonej wielokropkiem (i innymi znakami?), a nie w interpretacji całej wzmianki zakończonej wielokropkiem.

0

@Silv… vs. @Silv... vs. @Silv vs. @NieistniejacaNazwaUzytkownika
SOA#1 - u mnie działa
#2 i #3 linkuje poprawnie, #1 i #4 nie linkuje, bo nie ma takich użytkowników (wielokropek nie jest uznawany przez parser za znak przestankowy i traktowany jest jak część nazwy użytkownika)

0

Dziwne. Jak ja wpisuję @Silv…, to nie działa. O tak działa: <początek> @Silv… <koniec>

Czyżby to zależało od tego, jaki użytkownik to pisze?


UPDATE: A jednak tu działa! Hm…

1

@{Silv}… @Silv
działa :]

2

@Silv: po to istnieją klamry, aby dało się wymusić parsowanie nicków. Klamry te służą przede wszystkim do oznaczania wieloczłonowych nicków – np. @{Adam Boduch} – ale można ich używać w każdym innym przypadku, gdy parser ich ”nie zauważy”.

0

@furious programming: zdaję sobie sprawę. Niemniej to nieintuicyjne dla mnie, jak jest teraz.

4

To ja mam pomysł jak to naprawić.
Dodać do każdego pola tekstowego walidację i zakazać znaków innych niż ASCII i polskie diakrytyczne. Nigdy więcej WTF w konsekwencji UTF. Przy okazji wietnamscy spamerzy przestaną się rejestrować.

2

Spawdziłem to. Niestety parsowanie linków oparte jest o bibliotekę markdowna którą używamy. Niestety ma ona trochę bugów i kiepsko sobie radzi z unicode. Trzeba po prostu niestety ją wywalić, bo nie jest zbyt aktywnie rozwijana.

3

To zostało poprawione w nowej wersji. Wkrótce będzie na produkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1