Toaster - vse gre v kompostnik. Filtrirajte in uživajte

Zgodi se, da je ruski vir vprašanj in odgovorov o temah IT zelo priljubljen v CIS - Toaster. Vendar mu je nekaj manjkalo, ko sem ga začel spoznavati od blizu. Rezultat tega je bila izboljšava v obliki razširitve brskalnika. Spoznaj me.

Ključne funkcije:

  • Naslov: Toaster Comfort.
  • Statistika uporabnikov: odstotek vprašanj z rešitvami; karma iz Habra; povzetek iz profila - vse to je na Toasterjevem seznamu vprašanj.
  • Obvestila: v realnem času na spletnem mestu, na ikoni, plus potisna obvestila, veliko nastavitev, spletno mesto mora biti odprto (wiki).
  • Filtri: pogoji, ki temeljijo na formulah: vprašanja lahko skrijete, jih pobarvate in tudi prikažete obvestila - vse to je prilagodljivo konfigurirano v obliki logičnih pogojev (wiki).
  • Vmesnik: manjše izboljšave, kot je prikaz točnih datumov ali prikaz statusa naročnine na seznamu vprašanj.
  • Habr vmesnik: manjše izboljšave (izbirno), na primer zamiki v komentarjih.
  • Odprtokodno: Lahko ga predelate zase, če res želite (viri).
  • Prost: Licenca MIT.
  • Poraba pomnilnika: 30-50MB, odvisno od možnosti in intenzivnosti uporabe Toasterja
  • Velikost: 93 KB za v0.8.1 (razpakirana, ne pomanjšana koda).
  • Ogrodje: manjka, čist JS (minimalizem).
  • Kakovost kode: povprečje, mešanica stilov, velike funkcije, umazani triki, malo komentarjev.
  • Dovoljenja: toster.ru, habr.com, notifications, storage, unlimitedStorage

Sprva sem razširitev naredil zase z enim samim namenom: prikazati odstotek uporabnikovih vprašanj, pri katerih se je potrudil klikniti gumb »Označi kot rešitev«. Nato se je postopoma dodajalo najprej eno in potem še eno, dokler orodje ni zraslo v pošast sto kilobajtov. Kljub temu se je načelo »neuporabe nepotrebnega« držalo do konca.

Ena glavnih funkcij je zdaj uporaba formul v nastavitvah. Z njimi lahko počnete skoraj vse, karkoli želite obvladati svojo pozornost. Glavna stvar je vedeti, kaj si želite. Skrivanje, spreminjanje barv in obvestila so trije glavni vidiki, na katere morate biti pozorni pri delu s spletnim mestom. Filtriranje vsega je ključnega pomena za udobje.

Primer prilagodljivega pravila, ki vam bo omogočilo prejemanje obvestil o določeni temi:

!tag("Блокирование рекламы") && !contains(t,"реклам") && contains(t,"блокиров") && !tag("HTACCESS") || containsWord(t,"ркн") || contains(t,"роскомнадзор") || contains(t,"роскомпозор") || contains(t,"государств") || contains(t,"запрещен") || contains(t,"запрещён") || contains(t,"пиратск") || containsWord(t,"обход") || containsWord(t,"ростелеком") || containsWord(t,"яровой") || containsWord(t,"рф") && tag("Компьютерные сети") = notify

Takoj bom rekel, da funkcije eval() ni bilo mogoče uporabiti. Tako se ne boste zabavali. Zato sem moral napisati svojo berglo v 5 KB kode z uporabo obratni poljski zapis. Lahko bi rekli, da je to zelo kastriran JS, tako glede funkcij kot sintakse.

Nedavno je bila objava o Toster podaljšek. Za primerjavo, TE ima lepši vmesnik in nekatere funkcije, ki jih Toster Comfort nima. Vendar moja razširitev poudarja porabo virov. Vendar vas nihče ne moti, da uporabljate obe razširitvi; ne smeta biti v nasprotju.

V dobrem smislu je treba TC ponovno napisati iz nič, saj je delo mogoče pospešiti vsaj dvakrat in delo s predpomnilnikom - 10-krat, z opustitvijo localStorage in JSON.stringify() in spreminjanjem nekaterih arhitekturnih rešitev. Ampak nisem jaz tisti, ki moram narediti ta podvig. In sem oboževalec načela "če deluje, se ga ne dotikaj". Medtem ko sem na dopustu, se aktivno ukvarjam s problemi in PR-om, vendar ne na račun minimalizma. Hvala za vašo pozornost!

Vir: www.habr.com

Dodaj komentar