Toaster – gjithçka nĂ« kompostor. Filtroni dhe shijoni

NjĂ« situatĂ« e tillĂ« Ă«shtĂ« krijuar, qĂ« nĂ« CIS Ă«shtĂ« mjaft popullor njĂ« burim Q&A nĂ« fushĂ«n e IT-sĂ« — Tosteri. MegjithatĂ«, i mungonte diçka, kur fillova ta njoh mĂ« afĂ«r. Kjo u shndĂ«rrua nĂ« njĂ« pĂ«rmirĂ«sim nĂ« formĂ«n e njĂ« shtese pĂ«r shfletuesin. MirĂ« se vini.

Karakteristikat kryesore:

  • Emri: Toster Comfort.
  • Statistika e pĂ«rdoruesve: pjesa e pyetjeve me zgjidhje; karma nga Habr; pĂ«rmbledhje nga profili — gjithçka ndodhet nĂ« listĂ«n e pyetjeve tĂ« Toster.
  • Njoftimet: nĂ« kohĂ« reale nĂ« faqe, nĂ« ikonĂ«, plus njoftime push, shumĂ« ĐœĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž, faqa duhet tĂ« jetĂ« e hapur (wiki).
  • Filtrat: kushtet mbi baza formula: mund tĂ« fshihet pyetje, t'i jepet ngjyra, si dhe tĂ« tregohen njoftimet — gjithçka Ă«shtĂ« fleksibĂ«l dhe konfigurohet nĂ« formĂ«n e kushteve logjike (wiki).
  • Interfejsi: pĂ«rmirĂ«sime tĂ« vogla, siç janĂ« shfaqja e datave tĂ« sakta ose shfaqja e statusit tĂ« abonimit nĂ« listĂ«n e pyetjeve.
  • Interfaci i Habr: pĂ«rmirĂ«sime tĂ« vogla (opionale), siç janĂ« linjat pĂ«r margjinat nĂ« komente.
  • Open source: mund ta rregulloni sipas dĂ«shirĂ«s, nĂ«se dĂ«shiron (burimet e kodit).
  • FalĂ«: Licenca MIT.
  • Konsumimi i memories: 30-50MB, varĂ«sisht nga opsionet dhe intensiteti i pĂ«rdorimit tĂ« Toster.
  • MadhĂ«sia: 93KB pĂ«r v0.8.1 (kod i shkrirĂ«, i pa minimizuar).
  • Korniza: mungon, JS i pastĂ«r (minimalizmi).
  • CilĂ«sia e kodit: mesatare, pĂ«rzierje stilesh, funksione tĂ« mĂ«dha, truka tĂ« pista, pak komente.
  • Lejet: toster.ru, habr.com, notifications, storage, unlimitedStorage

Fillimisht, shtesën e bëra për veten time me një qëllim të vetëm: të tregoj përqindjen e pyetjeve të përdoruesit, për të cilat ai u kishte dhënë zgjidhje. Më pas, ngadalë u shtuan disa dëshira, derisa mjeti u rrit në një monster me njëqind kilobajtë. Megjithatë, parimi "mos përdor asgjë tepër" u mbajt deri në fund.

NjĂ« nga funksionet kryesore tani Ă«shtĂ« pĂ«rdorimi i formulave nĂ« cilĂ«sime. Me to mund tĂ« bĂ«ni pothuajse gjithçka, çdo dĂ«shirĂ« pĂ«r menaxhimin e vĂ«mendjes tuaj. E rĂ«ndĂ«sishme Ă«shtĂ« tĂ« dini se çfarĂ« dĂ«shiron. Fshihja, ndryshimi i ngjyrĂ«s dhe njoftimet — kĂ«to janĂ« tre aspektet kryesore tĂ« vĂ«mendjes gjatĂ« punĂ«s me faqen. Filtrim i gjithçkaje — çelĂ«si pĂ«r lehtĂ«sinĂ«.

Një shembuj i rregullit fleksibël që do të lejojë të merrni njoftime për një temë të caktuar:

!tag("Bllokimi i reklamave") && !contains(t,"reklam") && contains(t,"bllokim") && !tag("HTACCESS") || containsWord(t,"rkn") || contains(t,"roskomnadzor") || contains(t,"roskompozor") || contains(t,"shtet") || contains(t,"ndaluar") || contains(t,"ndaluar") || contains(t,"pirat") || containsWord(t,"anashkalim") || containsWord(t,"rostelekom") || containsWord(t,"yarov") || containsWord(t,"rf") && tag("Rrjetet kompjuterike") = notify

Të themi se funksioni eval() nuk mund të përdorej. Pra nuk ishte e lehtë. Prandaj, më duhej të shkruaja një zgjidhje alternative me 5KB kod, duke përdorur shkrimin polak të prapave.. Mund ta quaj më një JS shumë të kastruar, si për funksionet ashtu edhe për sintaksën.

Së fundmi kishte një postim për Shtesën e Toster.. Nëse e krahasojmë, TE ka një interfaci më të këndshëm dhe disa funksione që nuk janë në Toster Comfort. Megjithatë, shtesa ime thekson konsumimin e burimeve. Megjithatë, askush nuk e pengon të përdorë të dyja shtesat, ato nuk duhet të konfliktin.

NĂ« mĂ«nyrĂ« tĂ« vĂ«rtetĂ«, TC duhet tĂ« ri-shkruhet nga e para, sepse puna mund tĂ« pĂ«rshpejtohet tĂ« paktĂ«n dyfish, dhe puna me cache – dhjetĂ« herĂ«, duke u hequr nga localStorage dhe JSON.stringify() dhe duke ndryshuar disa vendime arkitekturore. Por ky veprim do tĂ« duhet ta bĂ«j tashmĂ« ndokush tjetĂ«r. UnĂ« jam njĂ« adhurues i parimit "punon – mos e prek". Derisa tĂ« jetĂ« pushim, po pranoj me aktivizĂ«m probleme dhe PR, por jo nĂ« dĂ«m tĂ« minimalizmit. Faleminderit pĂ«r vĂ«mendjen!

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster