{"id":6855,"date":"2012-04-21T05:00:33","date_gmt":"2012-04-21T03:00:33","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=6855"},"modified":"2019-10-09T02:49:10","modified_gmt":"2019-10-09T00:49:10","slug":"die-eigene-homepage-cms-blogkompilierer-und-statisches-xhtml","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2012\/04\/21\/die-eigene-homepage-cms-blogkompilierer-und-statisches-xhtml\/","title":{"rendered":"Die eigene Homepage: CMS, Blogkompilierer und statisches XHTML"},"content":{"rendered":"<p>Ich stand vor der Entscheidung wie ich die Homepage f\u00fcr mein neues <a href=\"http:\/\/linuxiuvat.de\">Spieleserverprojekt<\/a> gestalten sollte. Ich schwankte anfangs zwischen einem dynamischen Portal f\u00fcr freie Spiele und selbst geschriebenen statischen HTML-Seiten. Ich habe mich schlie\u00dflich gegen PHP und Datenbanken entschieden und auf statische Inhalte gesetzt, die zum einen durch <a href=\"http:\/\/steve.org.uk\/Software\/chronicle\">Chronicle<\/a>, einen Blogkompilierer, und zum anderen durch manuell erstelltes XHTML erzeugt werden. Die restlichen Statistiken und Graphen f\u00fcr die einzelnen Spiele werden t\u00e4glich durch das Auswerten von Logdateien und mit Hilfe von <a href=\"http:\/\/munin-monitoring.org\/\">Munin<\/a> dargestellt.<\/p>\n<p>Die Frage bei so einem Projekt ist: Wie viel Interaktion m\u00f6chte man eigentlich haben?<br \/>\n<a href=\"http:\/\/linuxiuvat.de\">Linuxiuvat.de<\/a> ist keine Clan- oder Gildenseite, sondern lediglich das Erscheinungsbild des virtuellen Servers, auf dem einige freie Spiele laufen. Ich \u00fcbernehme hier die klassischen Aufgaben als Serveradmin und Macher der Homepage, kann aber nat\u00fcrlich nicht alle Mitglieder eines Clans ersetzen.<br \/>\nMeiner Meinung nach sind Foren oder sogar ein Wiki nur dann sinnvoll, wenn man gleichzeitig eine Community rund um die Spiele aufbauen will, die das Projekt mit Leben f\u00fcllt. In meinem Fall gibt es nur mich und die Idee irgendwann das Ganze abzuschlie\u00dfen und zum Fazit zu kommen, dass die M\u00f6glichkeiten des vServers ausgesch\u00f6pft sind. Danach m\u00f6chte ich nur noch das Bestehende weiterpflegen, selbst eine Runde spielen und zum n\u00e4chsten Projekt weiterziehen.<br \/>\nVor diesem Hintergrund und der Tatsache, dass der Spieleserver auch ein praktisches Beispiel ist (es macht vor allem Spa\u00df), wie man mit Freier Software, wenig Ressourcen und auch kosteng\u00fcnstig ein Projekt gestalten kann, wollte ich die Interaktion auf das Notwendige und Sinnvolle beschr\u00e4nken.<\/p>\n<h2>Hilfreiche Software<\/h2>\n<p>Es gibt sehr viele M\u00f6glichkeiten die eigene Homepage zu gestalten. Einige Ideen finden sich z.B. bei Debian und Ubuntu mit<\/p>\n<p><code>aptitude search '~sweb'<\/code><\/p>\n<p><code><\/code><br \/>\nIn der Sektion \"Web\" stecken zahlreiche Content-Management-Systeme, Blogsoftware und Hilfsmittel statische Inhalte zu erschaffen. Eigenes Vorwissen, die verwendete Programmiersprache, Performance und verf\u00fcgbare Angebote des Webhosters spielen nat\u00fcrlich eine Rolle. Bei einem eigenen VPS kann man aus dem Vollen sch\u00f6pfen, da es keine technischen Beschr\u00e4nkungen gibt.<\/p>\n<h3>Bekannte Content-Management-Systeme<\/h3>\n<p>Es gibt hervorragende freie CMS darunter die gro\u00dfen <a href=\"http:\/\/www.joomla.org\/\">Joomla<\/a>, <a href=\"http:\/\/drupal.org\/\">Drupal<\/a>, <a href=\"http:\/\/typo3.org\/\">Typo3<\/a>, <a href=\"http:\/\/www.movabletype.org\/\">Movable Type<\/a> und <a href=\"http:\/\/wordpress.org\/\">WordPress<\/a>. Allen ist gemein, dass sie hochentwickelt, stark erweiterbar und vielf\u00e4ltig einsetzbar sind. Vom kleinen Linuxblog bis zur Unternehmenskette mit eigenem Franchise ist alles denkbar. Inhalte und Seitengestaltung sind unabh\u00e4ngig voneinander. Wissen \u00fcber HTML oder Skriptsprachen ist n\u00fctzlich jedoch nicht zwingend notwendig. Jeder kann Dank des umfangreichen Backends Inhalte einstellen und verwalten.<\/p>\n<ul>\n<li><strong>Anforderungen:<\/strong> PHP, MySQL\/PostgreSQL<\/li>\n<li><strong>Vorteile:<\/strong> Dynamische Inhalte, Interaktion mit Benutzern ist einfach, unz\u00e4hlige vorgefertigte Plugins und Themen, gro\u00dfe Gemeinschaft, gute Dokumentation, sehr flexibel<\/li>\n<li><strong>Nachteile:<\/strong> Speicherintensiv, Datenbank und PHP wird ben\u00f6tigt, potentielle Sicherheitsl\u00fccken, komplexe Bedienung, Einarbeitungszeit notwendig<\/li>\n<\/ul>\n<h3>Eher unbekannte Content-Management-Systeme<\/h3>\n<p>Dann gibt es die eher unbekannten CMS, die meist weniger Feature als die gro\u00dfen haben, aber nicht weniger geeignet sind, um kleinere dynamische Projekte zu verwirklichen. Mir fielen insbesondere Zine, <a href=\"http:\/\/www.pylucid.org\">PyLucid<\/a> und <a href=\"http:\/\/www.tdiary.org\/\">TDiary<\/a> auf, da ich ein wenig mit Zine wegen der Programmierung in Python gelieb\u00e4ugelt habe. PyLucid ist ebenfalls in Python geschrieben und benutzt <a href=\"https:\/\/www.djangoproject.com\/\">Django<\/a>, w\u00e4hrend TDiary in Ruby verfasst wurde. Hier sind Japanisch- und Englischkenntnisse von Vorteil. Eine weitere interessante Alternative ist <a href=\"http:\/\/www.webgui.org\">WebGUI<\/a> in Kombination mit Perl und MySQL und <a href=\"http:\/\/dotclear.org\/\">DotClear<\/a>. Leider forderten alle mindestens noch die Installation einer zus\u00e4tzlichen Datenbank.<\/p>\n<ul>\n<li><strong>Anforderungen:<\/strong> Python, Ruby, Perl, MySQL\/PostgreSQL<\/li>\n<li><strong>Vorteile:<\/strong> Dynamische Inhalte, einfache Interaktion mit Benutzern, einige zus\u00e4tzliche Plugins und Themen, flexibel, interessante Programmiersprachen<\/li>\n<li><strong>Nachteile:<\/strong> Relativ speicherintensiv, Datenbank, Python oder Ruby notwendig, potentielle Sicherheitsl\u00fccken, weniger umfangreich als die gro\u00dfen CMS<\/li>\n<\/ul>\n<h3>Die Welt der statischen Webseitengeneratoren<\/h3>\n<p>Ein Trend unter Techies sind sicherlich Webseitengeneratoren wie <a href=\"http:\/\/jekyllrb.com\/\">Jekyll<\/a> f\u00fcr Ruby und <a href=\"http:\/\/ringce.com\/hyde\">Hyde<\/a> f\u00fcr Python, die mit Hilfe von Templates aus Text, <a href=\"http:\/\/markdown.de\/syntax\/\">Markdown<\/a> oder HTML die komplette Seitenstruktur einer Webseite unabh\u00e4ngig vom Inhalt erstellen k\u00f6nnen.<br \/>\nEtwas einfacher aufgebaut, aber nicht weniger effektiv, sind z.B <a href=\"http:\/\/www.owlfish.com\/software\/PubTal\/\">PubTal<\/a> (Python), <a href=\"http:\/\/webgen.rubyforge.org\">WebGen<\/a> (Ruby) und <a href=\"http:\/\/blaze.blackened.cz\/documentation\/\">Blazeblogger<\/a>.<br \/>\nMein Favorit, f\u00fcr den ich mich schlie\u00dflich entschieden habe, war <a href=\"http:\/\/steve.org.uk\/Software\/chronicle\">Chronicle<\/a>, den ich im n\u00e4chsten Beitrag etwas ausf\u00fchrlicher vorstelle.<\/p>\n<h2>Was ist so toll an statischen Blogkompilierern und Webseitengeneratoren?<\/h2>\n<p>Ich habe mich f\u00fcr diesen Typ entschieden, weil ich sie f\u00fcr sicher, leichtgewichtig und effizient halte. Nat\u00fcrlich kann man auch Plugins f\u00fcr ein CMS benutzen, die den dynamischen Inhalt in statischen \u00fcberf\u00fchren (Stichwort: <a href=\"http:\/\/wordpress.org\/extend\/plugins\/wp-super-cache\/\">WP-Super-Cache<\/a>). Ein Blogkompilierer wie Chronicle macht das von Haus aus. Statische Inhalte werden extrem effizient durch den Webserver ausgeliefert, so dass selbst bei einem mickrigen vServer die Performance selbst unter mittelgro\u00dfer Last nicht leiden wird.<br \/>\nEin normales Projekt ben\u00f6tigt nicht einmal ansatzweise alle Funktionen eines CMS. Hier geht es auch darum realistisch zu bleiben. Weniger ist oft mehr. Au\u00dferdem sind diese Generatoren einfach zu bedienen und ben\u00f6tigen weder Datenbank noch eine Skriptsprache um zu funktionieren, was im Regelfall gleichbedeutend ist mit mehr Leistung und geringeren Kosten.<br \/>\nEinen Haken hat die Sache. Interaktion ist ohne zus\u00e4tzliche Software nicht m\u00f6glich, woraus ein neues Problem erw\u00e4chst.<\/p>\n<h2>Disqus und Co. sind b\u00f6se<\/h2>\n<p>Wirklich, ist das so? Fakt ist, wenn man auf ausschlie\u00dflich statische Inhalte setzt, muss man dennoch irgendeine serverseitige Anwendung\/Skript installieren, damit Kommentare von Besuchern irgendwie in die Webseite eingebunden werden k\u00f6nnen. Viele verfallen dann auf externe Dienstleister wie <a href=\"http:\/\/disqus.com\/\">Disqus<\/a> oder <a href=\"http:\/\/www.intensedebate.com\/\">IntenseDebate<\/a>.<br \/>\nAls Webseitenbetreiber muss man lediglich ein St\u00fcck Javascript-Code einbinden und schon werden Kommentare an die Server von Disqus und Co. weitergeleitet und dann auf der eigenen Webseite dargestellt. Disqus macht es wirklich einfach. Keine Spam-Probleme, keine Last auf dem Server, perfekte Integration mit Sozialen Netzwerken. Als Alternative k\u00f6nnten Besucher z.B. eine E-Mail schicken und man bindet dann den Inhalt manuell in die Seite ein, aber hey, wer macht das schon. \ud83d\ude09<br \/>\nIch bin nicht wirklich der Typ, der hinter jedem erfolgreichen Internetunternehmen den n\u00e4chsten faschistischen Weltbeherrscher vermutet. Man sollte sich aber schon die Frage stellen, ob man f\u00fcr jede Webseite die Kontrolle \u00fcber seine Daten an eine externe Stelle abgegeben muss oder nicht. Diese Bedenken hat <a href=\"http:\/\/www.jeremyscheff.com\/2011\/08\/jekyll-and-other-static-site-generators-are-currently-harmful-to-the-free-open-source-software-movement\/\">Jeremy Scheff<\/a> auf den Punkt gebracht.<br \/>\nIch pers\u00f6nlich denke, dass man Interaktion und Kontrolle \u00fcber die Daten auch anders haben kann und das auch nutzen sollte. Im Falle von Chronicle war das z.B. das einfache Einbinden einer einzigen CGI-Datei. Andererseits vielleicht sollten wir einfach an einem wirklich quelloffenen und freien Disqus arbeiten!<\/p>\n<h2>Fazit<\/h2>\n<p>Die Wahl der Software h\u00e4ngt entscheidend von den eigenen Anspr\u00fcchen ab. Wem Geschwindigkeit und Sicherheit wichtig ist, sollte statische Inhalte ver\u00f6ffentlichen, die bevorzugt mit einem Blogkompilierer oder Webseitengenerator erzeugt werden oder auf die h\u00e4ndische Methode zur\u00fcckgreifen. F\u00fcr mein kleines Projekt werde ich diesen Weg auf jeden Fall weitergehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich stand vor der Entscheidung wie ich die Homepage f\u00fcr mein neues Spieleserverprojekt gestalten sollte. Ich schwankte anfangs zwischen einem dynamischen Portal f\u00fcr freie Spiele und selbst geschriebenen statischen HTML-Seiten. Ich habe mich schlie\u00dflich gegen PHP und Datenbanken entschieden und auf statische Inhalte gesetzt, die zum einen durch Chronicle, einen Blogkompilierer, und zum anderen durch &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2012\/04\/21\/die-eigene-homepage-cms-blogkompilierer-und-statisches-xhtml\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eDie eigene Homepage: CMS, Blogkompilierer und statisches XHTML\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[39,53,108,204,222],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/6855"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=6855"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/6855\/revisions"}],"predecessor-version":[{"id":10713,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/6855\/revisions\/10713"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=6855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=6855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=6855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}