Toaster – minden komposzttá. Szűrd és élvezd

A posztok halmozódásával a közelmúltban egyre népszerűbbé vált a cseh IT témájú Q&A platform. Toaster. Mégis, hiányzott valami, amikor alaposabban megismertem. Ez vezetett a böngészőbővítmény fejlesztéséhez. Üdvözöljük.

Kulcsfontosságú jellemzők:

  • Név: Toster Comfort.
  • Felhasználói statisztikák: a kérdések megoldásának aránya; karma a Habron; összegzés a profilból – mindez a Toster kérdések listájában megtalálható.
  • Értesítések: valós időben az oldalon, az ikonon, plusz push értesítések, sok beállítás, az oldalnak nyitva kell lennie (wiki).
  • Szűrők: kondíciók képletek alapján: lehetőség kérdések elrejtésére, színkódolásra és értesítések megjelenítésére – mindez rugalmasan beállítható logikai feltételek formájában (wiki).
  • Felület: apróbb fejlesztések, mint például pontos dátumok megjelenítése vagy az előfizetés állapotának megjelenítése a kérdések listájában.
  • Habro interfész: apróbb fejlesztések (választható), például vonalak a kommentek behúzásához.
  • Nyílt forráskód: átalakítható igény szerint, ha nagyon szükséges (forráskódokat).
  • Ingyenes: MIT Licenc.
  • Memóriafogyasztás: 30-50MB, a beállításoktól és a Toster használatának intenzitásától függően.
  • Méret: 93KB a v0.8.1-hez (kibővített, nem minimalizált kód).
  • Keretrendszer: nincs, tiszta JS (minimalizmus).
  • A kód minősége: közepes, stílusok keveredése, nagy funkciók, koszos technikák, kevés komment.
  • Engedélyek: toster.ru, habr.com, értesítések, tárolás, korlátlan tárolás.

Eredetileg a bővítményt magamnak készítettem egyetlen céllal: megmutatni a felhasználó kérdéseinek megoldásainak arányát, ahol rákattintott a "Megoldásként jelöl" gombra. Aztán fokozatosan jöttek az újabb és újabb igények, míg az eszköz nem nőtt egy számos kilobájt méretű szörnyszülötté. Ennek ellenére a "ne használj semmit feleslegesen" elvét a végéig betartottuk.

Az egyik legfontosabb funkció most a képletek használata a beállításokban. Ezek segítségével szinte bármit meg lehet valósítani, bármilyen igényt a figyelem irányításában. Tudni kell, mit akarunk. Az elrejtés, a színváltoztatás és az értesítések – ezek a három fő szempont a webhely használata során. Minden és minden szűrése – a kényelem kulcsa.

Rugalmas szabály példa, amely lehetővé teszi, hogy értesítéseket kapjunk egy bizonyos témában:

!tag("Hirdetés blokkolása") && !contains(t,"hirdetés") && contains(t,"blokkolás") && !tag("HTACCESS") || containsWord(t,"rkn") || contains(t,"roszkomnadzor") || contains(t,"roszkompozor") || contains(t,"állam") || contains(t,"tiltott") || contains(t,"tiltott") || contains(t,"kalóz") || containsWord(t,"kijátszás") || containsWord(t,"rosztelekom") || containsWord(t,"jarovoj") || containsWord(t,"rf") && tag("Számítógépes hálózatok") = notify

Azonnal mondom, hogy az eval() függvény használata tilos. Így nem lehet túl sokat játszadozni. Ezért kénytelen voltam megírni a saját kis trükkömet 5 KB kóddal, használva fordított lengyel notáció. Ez egy nagyon korlátozott JS, mind a funkciók, mind a szintaxis szempontjából.

Nemrég volt egy bejegyzés a Toster Extension. Ha összehasonlítjuk, a TE-nek kellemesebb felülete van, és van néhány olyan funkciója, ami a Toster Comfortban nincs. Azonban az én kiterjesztésem a forrásfelhasználásra helyezi a hangsúlyt. Mindazonáltal senki sem akadályoz meg abban, hogy mindkét kiterjesztést használja, nem kellene konfliktusba kerülniük.

Valójában a TC-t újra kellene írni, mert legalább a munkáját meg lehetne duplázni, és a cache kezelését legalább tízszer gyorsabbá lehetne tenni, lemondva a localStorage-ról és a JSON.stringify()-ról, valamint néhány architektúrával kapcsolatos döntés megváltoztatásával. De ezt a feladatot már nem nekem kell elvégezni. Én a "ha működik, ne nyúlj hozzá" elv híve vagyok. Jelenleg szabadságon vagyok, aktívan fogadom a problémákat és PR-t, de nem a minimalizmus rovására. Köszönöm a figyelmet!

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster