Hej! Dało by radę sprawić, by forum i strona działały poprawnie pod SeaMonkey? Obecnie to jakaś kaszanka, a jakiś czas temu śmigało dobrze.
Zobaczy w konsoli przeglądarki jaki jest komunikat błędu? Na 100% przeglądarka nie obsługuje jakiegoś JavaScript.
Pewnie tak, pytanie, czy jesteście wstanie wyciąć ten JS dla tej przeglądarki by było to czytelne?
Widzę że problem leży w bibliotece zewnętrznej. Być może jest to związane z nowym edytorem, ale nie jestem pewien na 100%. Jak wejdziesz na stronę https://danon.github.io/4play.demo/ to również masz ten błąd?
Tak, też się sypie.
@Adam Boduch: tak, edytor używa regexpow do matchowania usernameów. Pewnie ta przeglądarka się czymś różni kapkę od standardu. Albo też ja coś zepsułem.
Już ściągam ten Sead Monkey i się przyjrzę.
@pieczarek dzięki za dobre zgłoszenie.
@TomRiddle: To ja dziękuję za zainteresowanie i chęć wsparcia tego muzeum, które jednak służy mi od lat.
No własnie, pytanie jaka to wersja przeglądarki? Bo wygląda na jakąś starszą i zapewne niektóre rzeczy mogą tam być niewspierane.
Adam Boduch napisał(a):
No własnie, pytanie jaka to wersja przeglądarki? Bo wygląda na jakąś starszą i zapewne niektóre rzeczy mogą tam być niewspierane.
Najnowsza SeaMonkey to 2.53.10, i ona tak wygląda właśnie. Ale zabawne, bo też jest na chromium.
Pytanie jaką ma @pieczarek
Wersja świeża jak bułeczki ;) Miałem 2.53.11, ale zrobiłem downgrade do 2.53.10 i nadal jest ten problem. O ile się nie mylę to bazuje to na Firefoxie bo to przedłużenie Mozilla Suite.
"Under the hood, SeaMonkey uses much of the same Mozilla Firefox source code" - no czyli Firefox, ale oni bazują na wersji ESR.
pieczarek napisał(a):
"Under the hood, SeaMonkey uses much of the same Mozilla Firefox source code" - no czyli Firefox, ale oni bazują na wersji ESR.
No to jest spora szansa że na tym FireFox'ie o którym mówisz też nie będzie działać, prawda? Móglbyś to jakoś sprawdzić?
Przyczyna znaleziona. Opisywane zachowanie jest najpewniej przez ten kawałek kodu:
/[\p{Pc}|\p{Pd}|\p{Pe}|\p{Pf}|\p{Pi}|\p{Po}|\p{Ps}]/u;
Jest to regexp służący do rozpoznawania punktuacji. Nie jest napisany przeze mnie ani przez edytor, ani nawet przez bibliotekę CodeMirror, tylko przez jedną z jej zależności, parser markdownu.
Wyjaśnienie
Otóż parsowanie regexpów w przeglądarkach działa dwojako, są one najczęściej parsowane przez silnik JS'a, i SyntaxError
leci przy parsowaniu samego JS'a (compile time), a nie przy uruchamianiu, dlatego niektóre przeglądarki nie są w stanie go złapać. Inne środowiska, jak np node.js
rzuca wyjątek w runtime, i dlatego teraz np nie jestem w stanie napisać testu jednostkowego pod ten błąd, bo on na node'zie się nigdy nie zdarzy.
@pieczarek: Uruchom sobie taki kod w swojej SeaMonkey:
try {
/\pL/u;
}
catch (e) {
console.log("catch", e);
}
I zobaczysz że go nie złapie :) To samo można by zobaczyć na Chrome, tylko że chrome wspiera \p
w Unicode, więc wyjątek nigdy nie leci.
To co możemy zaproponować na teraz to:
- @pieczarek: tokeny
\p
są wspierane od Ecma2018, czyli już całkiem długo. Może mógłbyś się zainteresować przeglądarką które je wspiera? Wtedy problem zniknie. Zrób prosty test, wpisz w konsoli taki kod/\pL/u;
. Jeśli nie poleci wyjątek, wszystko gra :) - Możemy złożyć PR'a do parsera Markdown, z prośbą o zapis regexpa nie tak
/\p/
tylko taknew RegExp('\\p')
, wtedy parsowanie będzie w runtime, i Twoja przeglądarka złapie wyjątek. Możliwe że merge pójdzie szybko, i za kilka dni/tydzień już będzie działać.
PS: Issue w parserze złożone. Czekamy na odpowiedź.
@pieczarek: Nie wiem co oprócz tego możemy zrobić; po jeśli Twoja przeglądarka faktycznie parsuje regexpy razem z JS'em w compieltime'ie, to jakiego zaawansowanego try
/catch
a byśmy nie napisali w coyote, to Twoja przeglądarka i tak nie złapie tego wyjątku :/
Jal bede przy PC to sprawdzę. Dzięki
Niestety podany try-catch też wali takim wyjątkiem SyntaxError: invalid identity escape in regular expression Szkoda, że w profilu nie można wybierać edytora. Może zagadnę ekipę od przeglądarki, by zaczęli to wspierać.
pieczarek napisał(a):
Niestety podany try-catch też wali takim wyjątkiem SyntaxError: invalid identity escape in regular expression
No, czyli tak jak myślałem. Twoja przeglądarka nie łapie wyjątków należycie.
Szkoda, że w profilu nie można wybierać edytora.
Dlatego że korzystasz z przeglądarki która nie wspiera ecma2018? no szkoda.
Może zagadnę ekipę od przeglądarki, by zaczęli to wspierać.
Ogarnąłem już issue do parsera markdown, i mam już odpowiedź od autorów. Powinni wypuścić wersję na dniach, i wtedy my szybko cyk; i będzie Ci działało normalnie forum.
@pieczarek: Wrzuciłem wersję 1.9.6
z zaktualizowanym parserem. Wejdź proszę na https://danon.github.io/4play.demo/ i zobacz czy biblioteka już dla Ciebie działa.
Nadal nie działa, ale teraz inne problemy są:
@pieczarek:
Jasność widzę, jasność !
Okej, na 99% zależność się nie napisała, tzn zaktualizowałem wersję parsera ale (chędożony) npm
i tak zainstalował tą która code mirror ma.
Dam update dzisiaj.
@pieczarek: Weszła poprawka z edytorem 1.9.7
. Daj znać czy teraz Ci działa forum.
No teraz elegancko działa. Dzięki!
pieczarek napisał(a):
No teraz elegancko działa. Dzięki!
Mówiłem że dwa dni i naprawimy ;)
PS: @pieczarek a tak serio gościu, to czemu używasz takiej przeglądarki? Czemu nie Chrome, Edge albo FireFox?
Lepsze jest wrogiem dobrego ;) Używam tego od ponad dekady. Kiedyś to był wygodny pakiet - przeglądarka, klient maila, kalendarz CalDAV/CarDAV, klient IRC, Usenet, RSS. Bazuje to na FF, ale wygląda klasycznie - czyli tak jak za czasów kiedy jeszcze projektowali interfejsy z głową. Można też szybko pochować wszystkie panele, nie marnuje miejsca na odstępy i pustą przestrzeń. Używałem też Vivaldiego, ale gość lubi wejść na 100% CPU ostatnio i tak mieli... nie wiem, bitcoiny czy Etherium... ale trzeba ubijać mu wszystkie procesy. Jak coś działa... no właśnie ;)
@pieczarek: Poza tym edytor dobrze działa na SeaMonkey?
@TomRiddle: raczej tak, nie widzę innych anomalii.