[~] BACK



~~ 3SB ~~

** SIMPLE STATIC SITE BUILDER **

[COD] | [20230131] | [0] | [0x17]




Bevor es mit dem NixOS Server (HIY I, HIY II) weiter geht, braucht es etwas Reorganisiation der NERDBUDE. Aus diesem Grund ist dieser Post ein klein wenig anders und besonders. Es ist der erste Post der durch den 3SB gebaut wurde. Wenn ihr es nicht auf Mastodon gelesen habt, dann fragt ihr euch mit Sicherheit was denn 3SB sein soll.
Ich fang bei den roots an. Die NERDBUDE basiert auf einzelnen .html files und natürlich den .css und .xml files für styling und feeds, aber die lassen wir einfach mal außen vor. Hier soll es um die .html Struktur gehen. Die ist zugegebenermaßen mehr als chaotisch ist und Struktur wäre wohl auch das falsche Wort. So toll und faszinierend das Chaos ist, es birgt auch zusätzlichen Aufwand und Arbeit und die will sich der gemeine Hacker sparen. Die zusätzliche Arbeit zeigt sich ganz schnell, wenn mal ein Menü-Punkt geändert werden soll oder eine Kleinigkeit im Footer. Wenn alles static ist und auf einzelnen Files basiert, muss der neue Menü-Punkt bspw. händisch in jedem einzelnen File eingefügt werden. Das kostet Zeit - viel Zeit. Also hab ich mich umgeschaut, welche CMS es in freier Wildbahn gibt, dass nur genau das macht und nicht mehr, und musste feststellen, dass keines der CMS sich ausschließlich um die Struktur kümmert. Ich will hier schließlich nicht irgendwelche Themes verbiegen, damit die NERDBUDE aussieht, wie sie aussieht. Ich will das Design das hier gewachsen ist und kein anderes. OK - genug des Rants. Was ich hier schon länger auf der Liste habe ist das eigene CMS und das ist besagtes 3SB

STRUKTUR


Zum Beginn steht natürlich die Überlegung wie die neue Struktur aussehen soll. Die ist nach ein wenig Ausprobieren auch schnell gefunden. Ich werde in Zukunft die einzelnen Parts der NERDBUDE modulasieren. Was heißt das konkret?



Es wird Module geben für die HEAD Daten, für das Menü, für den eigentlichen Post und den Footer. Außerdem werden die Posts separat (mit bereits vorhandener HTML Struktur) abgelegt. Wenn diese Module vorhanden sind, können dann je nach command, dass in 3SB benutzt wird, Posts gebaut werden, Menüs oder Footer geändert werden. Damit ihr euch meine wirren Gedanken besser vorstellen könnt, geh ich hier mal alle Befehle durch und erzähle kurz was im Hintergrund passiert.

3SB >>> init

Der Befehl "init" startet einen neuen Post. Hier werden Post-Title, Post-Subtitle und Release-Date abgefragt. Wenn die drei Parameter vergeben sind, wandert der Post in die Queue an offenen Posts.



3SB >>> status

Der Befehl "status" gibt einen Überblick über die aktuelle Struktur aus. So zum Beispiel die Gesamtzahl der Posts, die noch offnene Posts und etwas mehr.



3SB >>> edit

Jetzt geht es ans Eingemachte, nämlich die Posts auch mit Inhalt zu befüllen. Der Befehl "edit" steht für "edit post". Nach Eingabe des Befehls wird abgefragt welcher Post bearbeitet werden soll. Hierzu wird einfach der Name der unter "show" ausgegeben wird, eingegeben. Daraufhin öffnet sich Vim und der Post kann beliebig bearbeitet werden. Mit ":wq" wird Vim beendet und der post gespeichert.



menu / footer / header

Ähnlich verhält es sich mit den Befehlen "menu", "footer" und "header". Diese drei commands editieren jeweils den Footer, Header und das Menu. Diese Funktion ist die Basis, wenn sich was im Menü, im Footer oder im Header etwas grundlegend ändert und diese Änderung später auf die gesamte Website ausgeweitet werden soll.

build

Damit später alles an der richtige Stelle ist, gibt es "build". Hier werdet ihr wieder abgefragt welcher Post gebaut werden soll. Es wird wieder das Eingabeformat das "show" ausgibt, benutzt. Beim Build des Posts passiert folgendes im Hintergrund. 3SB nimmt sich den Post und merged die "header.html", "menu.html" und die "footer.html" einfach dazu. So ist die statische Seite für den einzelnen Post erstellt. Damit wäre der Post fertig und bereit zum Upload.

deployf / deploym

Diese zwei Optionen rollen die jeweiligen Files auf die gesamte Struktur aus. So ergibt sich der Vorteil, dass wenn ein neuer Menüpunkt auf die Seite soll, nicht händisch durch alle Files durchgegangen werden muss, sondern das ganze mit einem Command erledigt werden kann. Die geänderten Files müssen dann natürlich noch auf den Server geschoben werden und können dann live gehen.

FINAL WORDS

Ich hab Zeit investiert und mich umgeschaut nach CMS Software, die mir nur die Files sortiert und erstellt ohne Datenbank, PHP, Java, JS oder ähnliches im Background und mir zusätzlich das Style komplett überlässt ohne Theming. Kurz und knapp - ich hab nichts gefunden was in die Richtung geht. Deswegen ist der 3SB entstanden. Es ist keine black magic die im Hintergrund läuft und mit Sicherheit auch kein Hochkomplexes Code-Konstrukt, aber es erfüllt seinen Zweck, baut mir die NERDBUDE und spart mir Zeit. Natürlich ist noch Potential da. Vielleicht kommt bald die Möglichkeit, Posts direkt zu übersetzen für die EN Variante, oder Markdown als Postbasis und und und. Die Basis steht auf jedenfall schon mal und auf der kann ich aufbauen. Vielleicht braucht ja wer von euch auch eine kleine einfache Lösung.

Wenn ihr euch das anschauen wollt, gibt's das ganze natürlich auch auf GitHub:
3SB auf GitHub
[~] BACK