friendsofredaxo.github.io icon indicating copy to clipboard operation
friendsofredaxo.github.io copied to clipboard

Addon: Static Site Generator

Open olien opened this issue 7 years ago • 31 comments

Es wäre cool, wenn REDAXO eine statische HMTL Seite ausspucken könnte...

https://wordpress.org/plugins/static-html-output-plugin/ https://de.wordpress.org/plugins/simply-static/ ( https://www.hardypress.com )

olien avatar Nov 15 '18 11:11 olien

Ein Template?

AWqxKAWERbXo avatar Nov 15 '18 12:11 AWqxKAWERbXo

?

Es wird komplett funktionierendes statisches html ausgespuckt..

olien avatar Nov 15 '18 13:11 olien

Wozu?

AWqxKAWERbXo avatar Nov 15 '18 13:11 AWqxKAWERbXo

Nun. Das bietet einige Vorteile. Einmal, dass es dir erlaubt REDAXO in einer sicheren Umgebung zu belassen, zu der niemand außer dir Zugang hat. Und zweitens, dass deine statische Website wirklich, wirklich schnell sein wird. So richtig schnell!

olien avatar Nov 15 '18 13:11 olien

Für kleinere Seiten bei denen sich nicht oft was ändert auf jeden Fall ideal!

aeberhard avatar Nov 15 '18 16:11 aeberhard

Für kleinere Seiten bei denen sich nicht oft was ändert auf jeden Fall ideal!

hätte ich in solchen seiten dann nicht nur einen static-site-generator? wozu/wann brauch man die kombination mit redaxo?

staabm avatar Nov 15 '18 16:11 staabm

ich habe keinen static-site-generator... den hätte ich ja dann mit redaxo :-)) ich kann mir schon vorstellen, dass ich kleinere seiten mit redaxo baue und dann statisch ausliefere...

olien avatar Nov 16 '18 07:11 olien

ok, du willst also nicht einen anderen static site generator in redaxo einbinden, sondern du willst ein addon bauen, dass ein static site generator ist, verstehe.

wäre es nicht sinnvoll wenn das so in die richtung gehen würde, wie die redaxo-doku: man hat irgendwelche markdown files (ob die jetzt auf github liegen, oder direkt in der redaxo instanz, ist ja erstmal egal)?

staabm avatar Nov 16 '18 09:11 staabm

Gute Idee, Olli, aber du wirst vermutlich mit vielen Einschränkungen zu kämpfen haben. Spontan fallen mir Dinge ein wie das Umbiegen von Asset-Pfaden, Handhabung von URLs, Vorabgenerierung aller Medien, Umgang mit GET/POST-Requests, und so weiter. Vorab müsste bei einer Website sicherlich klar sein, dass sie rein statisch funktionieren könnte (also beispielweise keine Requests schickt), und dann hat dein StaticExport-AddOn sicherlich einige Aufgaben zu erledigen, damit am Ende alles klappt.

schuer avatar Nov 16 '18 11:11 schuer

@staabm Hm. Eigentlich sollöte ne fertige Seite gespeichert werden. @schuer Ja. Mir ist klar, dass das nicht mit dynamischen Daten geht. Ist eher für "statische" Seiten gedacht. Ähnlich wie so ein Tool, welches einfach ne Webseite so speichert wie Sie ausgeliefert (wie z.B.: https://ricks-apps.com/osx/sitesucker/index.html)

War nur so eine Idee als ich die WordPress Plugins gesehen habe.

olien avatar Nov 19 '18 08:11 olien

Statamic hat beispielsweise so einen Static Site Generator (statamic/ssg). Ich würde einbringen, falls es weiterhin Bestreben in dieser Richtung gibt.

nilskoppelmann avatar Mar 01 '21 21:03 nilskoppelmann

Ich versuche, es zu verstehen: Welches Problem soll damit gelöst werden?

AWqxKAWERbXo avatar Mar 01 '21 21:03 AWqxKAWERbXo

Es gibt ein paar Argumente, die gerade bei kleineren primär repräsentativen Seiten greifen:

  • wenig Angriffsfläche nach außen, da kein öffentlich erreichbares CMS
  • hohe Performance, da ausschließlich Static Assets
  • einfachere Skalierbarkeit

Static Sites / SSG haben schon ihre Berechtigung in einigen Anwendungsfällen.

On Mon 1. Mar 2021 at 22:15, Alexander Walther [email protected] wrote:

Ich versuche, es zu verstehen: Welches Problem soll damit gelöst werden?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/FriendsOfREDAXO/friendsofredaxo.github.io/issues/96#issuecomment-788294449, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAW6237VOEEMJPBCVSBFPGLTBP7YZANCNFSM4GD6R3LA .

-- Checkout CRO resources 3tech.de/resources

LinkedIn: linkedin.com/in/nils-koppelmann

nilskoppelmann avatar Mar 01 '21 21:03 nilskoppelmann

Also wir haben schon so einige Webseiten wo sich sehr, sehr selten bis nie etwas ändert. Wenn REDAXO die auf dem Server in einem Ordner "static" werfen könnte hätten wir das beste aus zwei Welten :-) Die Domain zeigt dann einfach auf diesen Ordner. oder? @georgkaser ? (https://www.georgkaser.com/leistungen/webdesign-und-webentwicklung/entwicklung-statischer-websites/)

olien avatar Mar 02 '21 06:03 olien

Ja, ich verwende dafür allerdings Lektor (https://www.getlektor.com/) - sehr zu empfehlen.

georgkaser avatar Mar 02 '21 07:03 georgkaser

Für R4 hatte ich da mal ein Addon https://github.com/aeberhard/realcache

Schnappt sich die Ausgabe (OUTPUT_FILTER) und schreibt das komplette HTML in ein Cache-Verzeichnis. Beim nächsten Aufruf wird direkt dieses HTML ausgespuckt. Geschwindigkeit wie bei statischen Seiten. Bei Änderungen im Backend wurde das Cache-File gelöscht. und noch a bisserl mehr glaube ich :)

Für Seiten die selten geändert werden auf jeden Fall ein Performance-Boost.

aeberhard avatar Mar 02 '21 09:03 aeberhard

https://github.com/aeberhard/realcache GitHub hat deinen Link zerhauen

AWqxKAWERbXo avatar Mar 02 '21 09:03 AWqxKAWERbXo

Ah, Danke Alex!

aeberhard avatar Mar 02 '21 09:03 aeberhard

https://github.com/akrys/redaxo-exportproject

skerbis avatar Feb 22 '22 10:02 skerbis

Unter Windows kann man httrack bemühen. Das kann dann auch URLs passend umschreiben. Sobald irgendwas dynamisches kommt, ist der Ansatz hinfällig.

Allenfalls wenn rewriting im Spiel wäre, wenn der Server selbständig erstmal versucht, die Adresse aufzulösen. Dann müsste es die Möglichkeit geben, bei jeder Artikel-Änderung eine HTML-Datei abzulegen und an jedem Artikel sagen zu können, ob er statisch oder dynamisch sein soll.

Also ziemlich viel redaktioneller Aufwand für die paar Millisekunden.

AWqxKAWERbXo avatar Feb 22 '22 13:02 AWqxKAWERbXo

Es geht hier ja nicht um Millisekunden sondern darum eine statische Seite erzeugen zu können. Nicht umsonst gibt es inzwischen viele Systeme die darauf ausgelegt sind genau das zu tun. Hier ist auch ein Umweg über eine Desktop-Software sicherlich nicht praktikabel. Wenn es REDAXO nicht kann (war ja nie vorgesehen und dafür ist es ja auch nicht gebaut) ist es halt so. Dachte nur, dass es evtl. "einfach" geht und es wäre manchmal sicherlich ein gutes Verkaufsargument :-)

olien avatar Feb 22 '22 13:02 olien

In meinem Fall ist es die Sicherung eines Intranets (YCOM), damit man nach einer Katastrophe (z.B. totaler Netzausfall) noch an die Daten gelangt.

skerbis avatar Feb 22 '22 14:02 skerbis

Indexiert searchit nicht das Frontend und speichert den Inhalt in der DB ab?

Eventuell das AddOn aufbohren, dass der komplette Artikel zusätzlich als Datei abgelegt wird.

tbaddade avatar Feb 22 '22 14:02 tbaddade

@tbaddade soweit mir bekannt ist, macht searchIt es ohne Templates @tyrant88

skerbis avatar Feb 22 '22 15:02 skerbis

@skerbis : Korrekt.

Ich hatte vor etlichen Jahren mal den Fall von Außendienstlern mit Tablets, aber ohne Internetverbindung. Die haben dann eine statische Kopie der Firmen-Website als Infomaterial mitbekommen.

tyrant88 avatar Feb 22 '22 16:02 tyrant88

@tyrant88 das könnte man doch heutzutage preloaden und im Cache lassen, zumindest für dieses Szenario.

An search_its Indexierung dachte ich auch schon.

AWqxKAWERbXo avatar Feb 22 '22 17:02 AWqxKAWERbXo

Mit wget2 kann man relativ leicht eine statische Kopie erzeugen - von daher ist es den Aufwand womöglich nicht wert (obwohl ichs schon geil finden würde, wenn man eine Website praktisch als statische Kopie exportieren kann):

wget2 -r --tries=10 https://www.domain.de/ -o log

Ich hab das jetzt schon bei ein paar Seiten gemacht, man muss fast nix anpassen damit die Seite dann als statische Kopie läuft.

georgkaser avatar Feb 22 '22 17:02 georgkaser

@alxndr-w Es ist doch nicht die Aufgabe eines Caches Inhalte jederzeit offline bereit zustellen.

tyrant88 avatar Feb 22 '22 17:02 tyrant88

@alxndr-w Es ist doch nicht die Aufgabe eines Caches Inhalte jederzeit offline bereit zustellen.

https://entwickler.de/programmierung/offlinemodus-die-achillesferse-der-progressive-web-apps

Sorry, meinte über PWA und Service Worker

AWqxKAWERbXo avatar Feb 22 '22 17:02 AWqxKAWERbXo

Erhöhter Einsatz beim Buzzword Poker? ;-) ;-) ;-)

tyrant88 avatar Feb 22 '22 17:02 tyrant88