Methode zum Erstellen von HTML-Templates für Webserver, die statische Inhalte hosten

Ich habe in der Vergangenheit eine Ruby on Rails-Webanwendung erstellt. Bei Verwendung von RoR gab es eine Standard-"Vorlage", die für jede Seite verwendet wurde, und der Inhalt, der in die "Vorlage" eingefügt wurde, wurde vollständig auf der Serverseite verarbeitet. Zum Beispiel habe ich eine Standard-Kopf- und Fußzeile definiert, und wenn eine Anfrage für eine bestimmte Seite gestellt wurde, wurde der Inhalt dieser Seite zwischen Kopf- und Fußzeile eingefügt und dann dem Client bereitgestellt.

Derzeit verwende ich Firebase als Back-End-Datenbank, Echtzeit-Update-Engine (Pub/Sub) und Tool zum Hosten einer anderen Web-App. Das Firebase-Hosting stellt einfach statische HTML/JS-Dateien bereit, und die Clients führen (im Gegensatz zu RoR) die gesamte schwere Arbeit für die Authentifizierung, DOM-Manipulation basierend auf dem Benutzer usw. durch.

In dieser App habe ich eine Standard-Kopf- und Fußzeile, die auf jeder Seite verwendet wird, aber mein Problem ist, dass jede Änderung an der Kopf-/Fußzeile manuell auf jeder Seite vorgenommen werden muss.

Meine Frage ist also, gibt es eine Standardmethode (oder vielleicht ein Tool), mit der man im Wesentlichen in einer Vorlagenart bauen und dann automatisch in die separaten HTML-Dateien "kompilieren" kann, die ich dann Firebase hosten lassen könnte? Ich möchte nicht unbedingt so etwas wie AngularJS verwenden, obwohl ich denke, dass es das Problem von Natur aus anspricht.

Eine App mit wenigen Seiten ist einfach zu verwalten, aber wenn die App wächst, werden die Dinge schnell haarig und die Gewährleistung der Konsistenz wird zu einer mühsamen Aufgabe.

Die Frage: Statischer Site-Generator mit GUI ist meiner Meinung nach nahe an dem, was ich frage, aber nicht ganz dasselbe. Ich suche kein Tool zum Generieren einer statischen Site, sondern ein Tool zum Bearbeiten von HTML auf Vorlagenbasis (und nicht unbedingt mit einer glatten GUI, ich dachte eher an eine textbasierte Lösung wie eine Art Plugin für Notepad++ ). Jekyll wurde als Antwort auf die verknüpfte Frage empfohlen und scheint eine potenziell gute Lösung zu sein, aber ich dachte, ich würde sehen, ob es andere gibt.

"Ich suche kein Tool zum Generieren einer statischen Website, sondern ein Tool zum Bearbeiten von HTML auf Vorlagenbasis": Können Sie erläutern, wo Sie hier die Unterschiede sehen? … Wenn ich Ihren Fall richtig verstehe, möchten Sie HTML-Vorlagen erstellen/bearbeiten und diese Vorlagen verwenden, um mehrere statische Seiten (die eine Website bilden) zu generieren … genau das tun Statische-Site-Generatoren, nicht wahr?
Nachdem ich zurückgekommen bin und meine Frage und Ihren Kommentar noch einmal gelesen habe, denke ich, dass diese beiden dasselbe sind. Zu der Zeit dachte ich, dass ein statischer Site-Generator versuchen würde, auch das gesamte Webserver-Zeug zu integrieren, wobei ich nur wollte, dass die statischen HTML-Dateien selbst gehostet werden. Aber noch einmal, ja, ich denke, jetzt sind die beiden dasselbe ...

Antworten (1)

Ich denke, ein statischer Site-Generator ist das, was Sie brauchen.

Sie sind typischerweise (aber nicht notwendigerweise) Befehlszeilentools:

  1. Sie legen Vorlagen- und Inhaltsdateien in bestimmten Ordnern ab.
  2. Sie führen das Tool aus.
  3. Sie erhalten die statischen HTML-Dateien.

Sie können jetzt einfach alle generierten HTML-Dateien nehmen und hochladen.

Es gibt so viele Lösungen (sehen Sie sich zum Beispiel die Listen auf http://staticsitegenerators.net/ und https://www.staticgen.com/ an, um sich ein Bild zu machen), dass es schwierig ist, eine spezifische Empfehlung zu geben, ohne genau zu spezifizieren, was du erwartest davon.

Beliebte Beispiele sind Jekyll , Pelican , Middleman und Hexo . Ich mag Hugo , hauptsächlich wegen seines großartigen eingebauten Testservers mit Live-Reload-Unterstützung ( siehe auch meine Frage ), aber ich denke, das spielt für Sie keine Rolle.
Wenn Sie also der Meinung sind, dass ein Static-Site-Generator eine Lösung für Ihren Fall sein könnte, können Sie gerne eine neue Frage erstellen (getaggt mit ), wo Sie explizit auflisten, welche Funktionen Sie benötigen, zum Beispiel: Soll es eine bestimmte Template-Engine verwenden? In welchem ​​Format (z. B. Markdown) möchten Sie die Inhalte schreiben? Welche Art von URL-Design sollte verwendet werden? Muss es nur HTML-Dateien generieren? Soll es einen Feed erstellen? Haben Sie unterschiedliche „Content-Typen“? Sollte es das generierte HTML minimieren? usw.