Prăjitor de pâine — totul în compostor. Filtrează și bucură-te

Așa s-a întâmplat că în CSI este destul de popular un resursă de întrebări și răspunsuri în domeniul IT — Toster. Totuși, îi lipsea ceva atunci când am început să mă familiarizez serios cu el. Aceasta a dus la îmbunătățiri sub formă de extensie de browser. Întâmpinați.

Caracteristici cheie:

  • Denumire: Toster Comfort.
  • Statistici utilizatori: procentul întrebărilor cu soluție; karma de pe Habr; un rezumat din profil — toate acestea se regăsesc în lista de întrebări a Toster.
  • Notificări: în timp real pe site, pe pictogramă, plus notificări push, multe setări, site-ul trebuie să fie deschis (wiki).
  • Filtre: condiții bazate pe formulare: se pot ascunde întrebări, colorați-le și, de asemenea, afișați notificări — toate acestea pot fi configurate flexibil sub formă de condiții logice (wiki).
  • Interfață: îmbunătățiri minore, de exemplu, afișarea datelor exacte sau a stării abonamentului în lista de întrebări.
  • Interfața Habr: îmbunătățiri minore (opțional), de exemplu, linii pentru indentările din comentarii.
  • Open source: poate fi modificată după bunul plac, dacă este foarte dorit (sursa).
  • Gratuit: Licența MIT.
  • Consum de memorie: 30-50MB, în funcție de opțiuni și intensitatea utilizării Toster
  • Dimensiune: 93KB pentru v0.8.1 (cod unpacked, ne-minimizat).
  • Cadru: lipsă, JS curat (minimalism).
  • Calitatea codului: medie, amestec de stiluri, funcții mari, tehnici murdare, puține comentarii.
  • Permisiuni: toster.ru, habr.com, notificări, stocare, storage nelimitat

Inițial, extensia a fost creată pentru mine cu un singur scop: de a arăta procentul întrebărilor utilizatorului în care a avut bună voință să apese butonul „Marcat ca soluție”. Apoi, treptat, s-au adăugat diverse dorințe, până când instrumentul a crescut într-un monstru de o sută de kilobyte. Cu toate acestea, principiul „a nu folosi nimic în plus” a fost respectat până la capăt.

Una dintre funcțiile principale acum este utilizarea formularelor în setări. Cu acestea se pot face practic orice dorințe legate de gestionarea atenției. Principalul lucru este să știi ce dorești. Ascunderea, schimbarea culorii și notificările — acestea sunt cele trei aspecte principale ale atenției atunci când lucrezi cu site-ul. Filtrarea totului și a tuturor — cheia confortului.

Exemplu de regulă flexibilă care va permite primirea notificărilor pe un anumit subiect:

!tag("Blocarea reclamelor") && !contains(t,"reclam") && contains(t,"blocări") && !tag("HTACCESS") || containsWord(t,"rkn") || contains(t,"roskomnadzor") || contains(t,"roskompozor") || contains(t,"stat") || contains(t,"interzis") || contains(t,"interzis") || contains(t,"pirat") || containsWord(t,"o ocol") || containsWord(t,"rostelecom") || containsWord(t,"Yarovoi") || containsWord(t,"rf") && tag("Rețelele de calculatoare") = notify

Voi spune imediat că funcția eval() nu putea fi folosită. Așadar, nu ai prea multe opțiuni. Așa că a trebuit să scriu un workaround de 5 KB, folosind notarea poloneză inversă. Acesta, poate fi spus, este un JS sever foarte restricționat, atât în funcții, cât și în sintaxă.

Recent a fost o postare despre Extensia Toster. Comparativ, TE are o interfață mai plăcută și câteva funcții care nu există în Toster Comfort. Cu toate acestea, extensia mea pune accent pe consumul de resurse. Totuși, nimeni nu împiedică utilizarea ambelor extensii, ele nu ar trebui să interfereze.

Din păcate, TC ar trebui rescris de la zero, deoarece munca poate fi accelerată de cel puțin două ori, iar munca cu cache-ul — de 10 ori, renunțând la localStorage și JSON.stringify() și schimbând unele decizii arhitecturale. Dar această ispravă nu mai este de făcut de mine. Eu sunt un susținător al principiului „funcționează — nu atinge”. Până atunci, în vacanță, primesc activ probleme și PR-uri, dar nu în detrimentul minimalismului. Vă mulțumesc pentru atenție!

Sursă: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster