WordPress vs generatoare statice

Continuarea discuției de aici.

Îs curios câți sunt programatori și nu se jenează măcar un pic să ruleze mizeria aia are are constant găuri de securitate :slight_smile:

Pentru ăștialalți care nu prea au treabă cu programarea este o chestie faină: https://www.getlektor.com/

Cred că mai sunt și ceva servicii, tot pe idea aia de blog static.

2 Likes

Pentru că mă simt cu musca pe căciulă:

  1. Cunoști vreun caz în care WordPress a fost hacked fără să fie implicat vreun plugin (sau vreo temă)?
  • Ai vreo alternativă câtuși de puțin decentă?
  • Presupun că știi că un blog constă din două părți: articolul propriu-zis și discuțiile. Cum tratezi problema asta într-un blog static fără a depinde de JS și servicii externe?

@iamntz nu ai de ce sa te simti cu musca pe caciula :slight_smile: , eu am dezvoltat o solutie pe WP tocmai pentru ca nu aveam o alta alternativa (am mai explicat pe undeva intr-un topic situatia). Pur si simplu nu prea ai alte variante, sa fim seriosi nu toata lumea se pricepe sa lucreze in Jekyll, stie markdown sau mai stiu eu ce. De Wordpress a auzit si mama.

  1. nu prea exista, asa e.
  2. niciuna (eu folosesc Textpattern pentru blogul personal doar prin prisma faptului ca am o mare experienta in TXP si e mult mai light in materie de resurse)
  3. pentru discutii ai variantele FB comments sau Disqus. Ambele sunt variante proaste, FB dis cauza de privacy, este blocat in multe locuri (si tari) iar Disqus … e un steaming pile of horseshit pe care nu l-as recomanda decat dusmanilor. Un sistem de blogging care salveaza discutiile in fisiere json statice? Ma gandisem la ceva in genul asta pentru Tinambo, dar nu sunt sigur daca e fezabil asa ceva.

Mi se pare mai interesant ca sunt developeri (unii de pe Devforum chiar) care au conturi (presupun ca de administrare) pe unele din blogurile respective, si cu toate astea … sunt ne-updatate. Nu dau nume, nu e cazul.

Ce scuza poti avea in situatia asta? Ok, Elena Udrea nu se pricepe, dar X care este un developer cu nn (dubla cifra) ani de experienta si ii administreaza site-ul (presupun) ce scuza are? (doar un exemplu, se pare ca EU isi administreaza singura blogul).

Pai acuma n-am vrut să fiu rău dar nu m-am putut abține :slight_smile:

Am folosit wordpress.com - e mizerabil, ca și funcționalitate. De vulnerabilități nici nu vreau să știu. Am trecut de la wp.com la GitHub - getpelican/pelican: Static site generator that supports Markdown and reST syntax. Powered by Python. - are tooluri de migrare și tot ce vrei. N-am avut probleme cu el la customizări. Sigur, la unii nu le place dar este https://www.getlektor.com/ https://getnikola.com/ și multe altele.

Da, pentru comentarii folosesc disqus, nu mi se pare așa rău - și ăla știe să migreze de pe WP.

Ce nu-ți place la el mai exact? E încet și destul de întortochiat la migrat dar în rest?

Oh… Poți detalia?

Presupun că ai sărit partea asta?

Pai na, e găndit să le facă bani, deci trebe să plătești la toate nimicurile. Dacă vrei ceva mai special, ciuciu, n-ai voie cu JavaScript.

Te referi la migrări? Nu le-am sărit, a mers. Gen ăsta - alea cu gri îs importate.

Cum adaugi comentarii pe un „blog” static? Dar vreau un sistem care nu are nevoie de JS și/sau de un serviciu extern (gen Disqus)? Nu vreau cu JS pentru că mi s-a întâmplat de N ori să nu se încarce JS-ul din cauza unui adblock prea agresiv, nu vreau Disqus din același motiv PLUS chestii de privacy.

Ah! Am recitit ce ai zis. Tu vorbești de WordPress.com (SaaS), nu de WordPress ca produs selfhosted :slight_smile:

Păi… casa lor, regulile lor.

Făcând o comparație și mergând pe aceeași idee, putem spune că mașinile Renault nu sunt bune doar pentru că taximetristul cu care am venit acasă azi conducea aiurea?


NB: nu spun că un site static nu are și el utilitatea lui, dar nu e potrivit pentru un blog.

Shameless plug si total offtopic, dar https://github.com/voxspace/tinambo ? Accept pull requesturi pentru un sistem static de comentarii.

Păi da, îs de acord cu tine cu adblockul. Dar nu vreau să întrețin un sistem de comentarii - spam, stocare și alte dureri. Dacă vrei să participi adaugi exceptii in uBlock/adBlock/ceofi.

Gândește-te așa: nici forumul ăsta nu merge fară JavaScript :smile:

Dar no, dacă ți musai, uite un exemplu cu comentarii prin Isso – a commenting server similar to Disqus (cred) - un fel de self-hosted disqus.

Cu ce e diferit un sistem care re-re-re-re-re-regenearză o pagină când adaugi un comentariu față de generarea unei pagini în WordPress? Nu ți se pare că e ușor asemănător cu un sistem de caching?

Apoi, cum poți considera am astfel de set-up rezonabil de setat/utilizat? Pe WordPress intru în admin → scriu ceva → publish. În afară de scris, toată operațiunea durează cât? Cinci secunde? Zece? Toate petrecute în browser.

Pe un blog static ce faci?

  1. dacă prestezi de la mai multe PC-uri, git pull
  • deschizi editorul și scrii;
  • commit & push;
  • aștepți să se compileze (nu știu dacă e așa la toate, dar la ce am folosit eu, durata de compilare crește direct proporțional cu mărimea site-ului; dacă scrii des, în câțiva ani ajungi să pierzi minute bune la build…);
  • dacă ești pe un host shared, intră și FTP-ul în schemă.

Probabil mai sunt și alți pași pe care i-am omis (a trecut ceva de când am avut contact cu astea).

Iar ție ți se pare WordPress o mizerie cu găuri de securitate, fără a putea argumenta în alt fel decât în baza experienței tale avute în curtea lor?


Corect, dar:

  1. dacă nu ai JS activat poți vedea subiectele, poți vedea comentariile, poti naviga în site.
  • comentarii cu JS pe un site static înseamnă… exact, nici un comentariu.
  • intrând pe un asemenea forum, te aștepți să fie nevoie de JS. Chiar @voxspace zicea că folosește noscript. Ce zici, este mai dispus să activeze JS pe un forum sau pe un blog? Fără să-l cunosc, cred că știu deja răspunsul :slight_smile:

@iamntz Ma cunosti atat de bine :slight_smile:

Problema cu noscript si Disqus e simpla: ca sa ai acces la comentarii pe un site (sa zicem digisport.ro), trebuie sa faci niste pasi:

  1. astepti sa se incarce pagina.
  2. click noscript, temporarily allow digisport.ro.
  3. astepti sa se reincarce pagina.
  4. click noscript, temporarily allow disqus.com.
  5. astepti sa se reincarce pagina.
  6. click noscript, temporarily allow disquscdn.com.

Pasii nu-i poti sari, pentru ca nefiind deblocat digisport.ro, nu iti apare disqus.com in lista noscript, si la fel, daca nu deblochezi disqus.com, nu iti apare disquscdn.com. Sau poti sa dai “temporarily allow all this page”, caz in care all hell breaks loose. Toti pasii astia 6 dureaza cel putin cateva secunde, si sa fim seriosi, nimic nu e atat de important incat sa treci prin tot rahatul asta de fiecare data. Si nu, nu vreau sa whitelistez Disqus pentru ca e o porcarie pe care nu o vreau activa mereu (imi ingreuneaza extrem de mult navigarea, prefer totul simplu si la botul calului).

In cazul devforum e simplu, “Allow devforum.ro” si s-a rezolvat, google analytics e blacklisted deci nu ma deranjeaza, iar ProfitShare … scuze @iamntz :slight_smile:

Ontopic, personal nu am nimic nici cu Wordpress, nici cu bloggerii respectivi. Folosesc Wordpress, il recomand pentru cei care nu au cunostintele necesare sa lucreze cu altceva, totul e ok; ma asigur ca cei pe care ii ajut sa isi instaleze/sa lucreze cu Wordpress inteleg ce presupune asta: update-uri OBLIGATORII, nu iti instala pluginuri de care nu ai nevoie/nu a auzit nimeni, si cel mai important, renunti la blog? Take it down sau il pui read only.

2 Likes

Sua poti folosi un panou de control, ca la wordpress, prin care sa adaugi paginile necesare. Index-ul poate fi luat dintr-un json, un articol din propriul json, iar comentariile, lafel, din json-un propriu. Astfel ai index.html (sau .php sau ce vrei), articles/article-name.json si comments/article-name.json, pe langa admin.html / admin.php/etc.

Heck, admin.html poate folosi AJAX si un mini API prin admin.php (cu parola prin GET) ca sa actualizezi sau sa JSON-urile existente ori sa creezi JSON-uri noi.
Si, astfel, doar panoul de control foloseste JS, iar restul facanduse prin server-side.

Articolele si comentariile le poti avea stocate encryptate (base64, de exemplu, ori urlencoded ca sa economisesti spatiu pe disk) si in loc sa te feresti si de SQL injection si de XSS, ai nevoie sa te feresti doar de XSS. Astfel impacam si lupul si oaia…

Ai vreun exemplu de astfel de panou de control sau vorbești teoretic?

Probabil doar tu înțelegi ce ai vrut să spui aici (și în restul comentariului, de fapt…)

Nu am un exemplu practic, dar as putea sa incerc sa fac un astfel de site.
Ma refeream ca poti tine comentariile stocate urlencoded, in json, ca sa nu ai probleme la scrierea lor in json. Gen daca ai un apostrof intr-un comentariu, sa nu faca intreaga lista de comentarii inutilizabile.

<?php
    $a = "a 'b' \"c\" d";
    echo $a."<br/>".urlencode($a)."<br/>".rawurlencode($a);
?>
a 'b' "c" d
a+%27b%27+%22c%22+d
a%20%27b%27%20%22c%22%20d

Daca ai scrie ca plain text, ai distrige structura, din cauza acelor "" (ghilimele) sau ' (apostrofuri).

Unul dintre noi doi habar n-are despre ce vorbește. Cin’ să fie oare?

3 Likes

Eu, cel mai probabil.

In fine, ce vroiam sa zic era: Poti avea site static, care sa fie generat dinamic, prin internediul unui script server-side. Nu e nevoie de git, ci se poate automatiza totul, prin intermediul programarii server-side.

Edit: Ok, teoretic nu ar mai fi complet static, ci doar partial, dar mai securizat decat un wordpress sau poate chiar un script care accepta useri si parole.

intreb si eu de curiozitate, de ce ai vrea sa faci toate astea? care-i logica?

1 Like

Reduci resursele consumate. Spre exemplu, chiar SmashingMagazine ofera un exemplu, in care au testat homepage-ul normal vs homepage-ul descarcat cu httrack si au observascaderea consumului de resurse server-side, precum si imbunatatirea timpului necesar pentru incarcarea site-ului.

Dar asta poate fi una din situatiile in care produsul nu este nevoie neaparat sa fie scalabil. Practic, dai la schimb spatiu pe disk, pentru timp de incarcare, resurse folosite, securitate sporita, precum si necesitatea de a re-scrie index-ul (homepage-ului plus al categoriilor din care face parte) la fiecare publicare sau editare de articol.