Audioplayer für Yellow CMS

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Audio, HTML, OpenSource, PHP, Yellow

Für das Markdown-CMS Yellow habe ich soeben mein zweites, bescheidenes Plugin veröffentlicht. Das Audio-Plugin implementiert einen simplen HTML5-Audioplayer, welcher ausschließlich auf dem HTML5-Audio-Tag basiert. Ein Flash-Fallback für ältere Browser wird nicht angeboten, dafür kann optional für die abzuspielende Datei ein Download-Link aktiviert werden. Das Plugin wandelt den HTML5-Audio-Tag in einen Shortcut um, der sich auch im Safe-Mode des Markdown-Parsers verwenden lässt:

[audio http://audio.url 1]

Es gibt also nur zwei Parameter, die URL zur Audiodatei sowie das Einschalten des Download-Fallbacks. Wird der zweite Parameter weggelassen, ist kein Download möglich. Der Download-Link wird nur dann angezeigt, wenn der Browser das Audio-Tag nicht unterstützt.

Ein ähnliches Plugin existierte bereits, jedoch wollte ich eine etwas einfachere Lösung haben, die Dateien nicht nur vom eigenen Webserver in einer Playlist abspielen kann, sondern von beliebiger Quelle, also auch Stream-Adressen.

Yellow: Ein Markdown-CMS

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : CMS, Markdown, OpenSource, PHP

Nachdem ich dieses Blog kürzlich auf eine eigene Domain umgezogen habe, musste bzw. wollte ich für Robbenradio.de eine neue Portalseite als Einstiegspunkt zu meinen verschiedenen Unterprojekten einrichten. Bislang lief diese mehr schlecht als recht im selben Blog-System wie auch das Robbinär-Blog, doch das alte System wollte ich nicht extra dafür weiterlaufen lassen. Nach Abwägen aller Möglichkeiten, die von statischem HTML und ebensolchen Website-Generatoren, bis hin zum Basteln einer Startseite mit WordPress reichten, habe ich mich schließlich auf die Suche nach einem möglichst minimalistischen CMS gemacht, denn faul ist es, das Radiorobbenviech. :)

Hängen geblieben bin ich schließlich beim schwedischen Unternehmen "Datenstrom" und dem auf PHP und Markdown basierenden CMS Yellow. Wem reines HTML zu mühselig ist und wer nicht mit großen Systemen nur ein paar wenige Seiten erstellen möchte, sollte diesem kleinen Helferlein definitiv mal einen Blick gönnen. CMS, die mit Markdown arbeiten, gibt es zwar mittlerweile einige, doch die wenigsten davon sind auch tatsächlich zum einen benutzerfreundlich und ohne weitergehende technische Voraussetzungen bzw. Kenntnisse zu installieren, zum anderen nicht mit riesigen Programmpaketen verschnürt. Yellow basiert hingegen ausschließlich auf PHP und speichert die Inhalte in Markdown-Textdateien, welche dann dynamisch als HTML ausgegeben werden. Damit kann es auf beinahe jedem gängigen Webspace eingesetzt werden.

Yellow ist eine typische Plug-And-Play-Software. Hochladen, aufrufen, loslegen. Eine Installationsroutine ist ebenso wenig vorhanden wie ein umfangreiches Admin-Backend oder ein im Hintergrund arbeitendes Framework. Die wenigen Konfigurationsmöglichkeiten, die dennoch existieren, werden im Ordner "system/config" angepasst. Alles weitere geschieht auf Dateisystem-Ebene im Ordner "content". Hier liegen sämtliche Unterseiten als Textdateien, die in der vereinfachten Auszeichnungssprache Markdown verfasst sind, also einer Sprache, die der in Wikis verwendeten Syntax nicht unähnlich ist. Zum Anpassen der Webseite reicht also jeder normale Texteditor und ein FTP-Client. Syntax-Fehler können hierbei eigentlich nicht passieren, da das HTML-Gerüst der Seite auf PHP-Ebene zusammengestellt wird. Lediglich der Seitenkopf sollte mit speziellen Tags in der Textdatei gekennzeichnet sein, damit das System etwas damit anfangen kann. Alles andere ist reiner Fließtext und muss theoretisch nicht besonders formatiert werden. Es werden aber auch HTML und Javascript in den Dateien akzeptiert.

Unter der Haube bietet Yellow natürlich noch einige Anpassungsmöglichkeiten. Wer seine Dateien nicht via FTP bearbeiten möchte, kann sich in der Datei users.ini im Config-Verzeichnis einen Benutzer-Account anlegen, was allerdings etwas umständlich ist und erst mal einen Blick in die Dokumentation erfordert. Hierzu muss im Hauptverzeichnis die Datei yellow-php über die Shell aufgerufen werden, um den Account mit der korrekten Passwortverschlüsselung bcrypt einzurichten. Danach lässt sich jede Seite auch direkt im Browser über den Edit-Link bearbeiten. Über die Shell lässt sich das ganze System übrigens auch in eine Statische Seite ohne PHP konvertieren.
Das Gerüst der Seite besteht aus Templates und Snippets, mit denen jeder einzelne Bereich individuell formatiert werden kann. Es ist auch relativ problemlos möglich, eigenen PHP-Code hineinzubasteln, ohne sich dabei an eine spezielle API des CMS halten zu müssen. Ein Plugin-System wird für tiefere Integration angeboten und diverse fertige Plugins, darunter ein Blog mit optionaler Disqus-Anbindung und ein Wiki, sind neben den offiziellen Downloads auf der Github-Projektseite zu bekommen. Hier findet sich auch die Dokumentation, obwohl die Entwickler von ihrem Projekt behaupten, man hätte etwas falsch gemacht, wenn jemand die Dokumentation benötigt. Nun ja, zu einem großen Teil stimmt das auch. An fertigen Themes mangelt es momentan noch sehr, Individualisten sollten also ein wenig CSS-Kenntnisse mitbringen. Ob es problemlos möglich ist, große Frameworks wie Bootstrap einzubinden, entzieht sich mangels Design-Fähigkeiten momentan meiner Kenntnis.

Auch wenn Yellow natürlich kein CMS ist, um das nächste Großprojekt im Web anzugehen, ist es für so manches kleine Blog oder eine reine Informationsseite mit möglichst wenig Wartungsaufwand eine bemerkenswerte Alternative zu wuchtigen Webanwendungen oder nerdigen Shell-Tools. Das System kann dabei von Nutzern fertiger Lösungen ebenso gut eingesetzt werden wie von Schraubern und Bastlern, die ihre Seiten mit dem ein oder anderen Extra versehen wollen.

RSS-Bridge: Holen wir uns das Netz zurück!

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : OpenSource, PHP, RSS

Da stöbert man nichtsahnend auf Github herum und möchte eigentlich etwas ganz anderes finden, bekommt dann aber plötzlich eine absolut geniale Idee auf den Schirm.
Wen hat es nicht auch schon geärgert, dass viele soziale Netzwerke zwar APIs zum Abgreifen von Daten anbieten, die altgedienten RSS-Feeds jedoch tief im System verstecken, ganz abschalten oder gar nicht erst zur Verfügung stellen? Schon immer habe ich mir z. B. gewünscht, Soundcloud-Profile in meinem Feedreader abonnieren zu können, statt mich erst umständlich per E-Mail über neue Tracks benachrichtigen zu lassen. Auch Twitter-Zeitleisten lassen sich mittlerweile nur noch eher umständlich außerhalb von Twitter und ohne ein eigenes Konto nutzen. Aus Sicht der Plattformen ist dies natürlich verständlich, denn Werbung lässt sich immer noch am besten im eigenen System an den User bringen. Selbst die APIs werden aus nur allzu offensichtlichen Gründen teilweise immer weiter eingeschränkt. Zeit also, um sich das Web wieder ein wenig zurückzuerobern.

Das Projekt RSS-Bridge versucht genau hier anzusetzen und stellt eine RSS-Brücke für soziale Netze und andere Seiten zur Verfügung, die keine RSS-Feeds anbieten. Das Prinzip hierbei ist eigentlich simpel, wenn auch recht arbeitsintensiv, da es für fast jede Webseite individuell angepasst werden muss. Die RSS-Bridge liest eine Webseite ein, entfernt alle unnötigen Elemente wie Javascript, umgebendes HTML und Ähnliches und wandelt den fertig aufbereiteten Inhalt in einen sauberen RSS/Atom-Feed um. Die Daten können aber auch als HTML oder JSON ausgegeben werden. RSS-Bridge ist ein noch sehr junges Projekt, doch bereits jetzt enthält es eine beachtliche Anzahl von Brücken, darunter Flickr, Instagram, Google-Suchergebnisse, Hashtag-Suche und Benutzerzeitleisten von Twitter, Identi.ca/Pump.io, neueste Highlight-Artikel in der Wikipedia (Englisch, Französisch und Esperanto), Bandcamp, Soundcloud und Youtube. Neue Brücken werden ständig entwickelt, wobei der Fokus aufgrund der beteiligten Community momentan noch auf französischsprachigen Webseiten liegen dürfte.

Die Nutzung des auf PHP basierenden Scripts ist denkbar einfach: Hochladen, aufrufen und den gewünschten Dienst mit Daten füttern. Möchte man z. B. die Zeitleiste eines Twitter-Nutzers sehen, muss einfach nur im entsprechenden Abschnitt der Twitter-Benutzername eingetragen werden. Mit Klick auf Atom, HTML oder JSON erhält man dann die mundgerechte Ausgabe der Daten.
Alle Dienste werden in der Textdatei Whitelist.txt verwaltet. Werden Dienste nicht benötigt oder möchte man neue Brücken hinzufügen, müssen in dieser Datei einfach nur die entsprechenden Zeilen hinzugefügt oder gelöscht werden. Die Namen der Brücken entsprechen dabei den Dateinamen aus dem Unterordner Bridges ohne die Endung .php.

Autor des Projekts ist übrigens Sébastien Sauvage, der mit seinem minimalistischen Link-Teiler Shaarli und dem bereits hier vorgestellten ZeroBin dem ein oder anderen vielleicht nicht ganz unbekannt ist.

FreshRSS: Ein weiterer Aggregator für die eigene Datenwolke

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : OpenSource, PHP, RSS

Eigentlich bin ich kein Freund von Browser-Anwendungen und nutze für die meisten Aufgaben im Internet nach Möglichkeit immer noch echte Desktop-Clients. Irgendwann war ich es aber leid, zwischen meinen Rechnern die RSS-Feeds nicht komfortabel synchronisieren zu können. Also musste ein neuer Feed-Aggregator her, der zentral auf einem Webserver die Arbeit erledigt. Da ich aber nicht gleich das erstbeste und mittlerweile quasi Standard-Script Tiny Tiny RSS nehmen wollte, das mir zudem auch nicht wirklich zusagt, habe ich mal ein wenig tiefer gewühlt und stieß prompt auf eine sehr vielversprechende Lösung:
FreshRSS, a free, self-hostable aggregator

Eine wie ich finde gelungene Alternative zu Tiny Tiny RSS und co. Es handelt sich hierbei zwar weitgehend um ein Ein-Mann-Projekt, das vor allem im Bereich Dokumentation und Lokalisierung (derzeit sind nur die Sprachen Englisch und Französisch verfügbar) noch so einige Baustellen aufweist, doch der Programmcode ist bereits jetzt sehr gut nutzbar und wird ständig aktualisiert.
FreshRSS ist in PHP programmiert und nutzt zur Speicherung der Artikel entweder MySQL oder Sqlite als Datenbank. Es ist mehrbenutzerfähig und bietet neben einem klassischen Login auch die Anmeldung über Mozilla Persona an. Das Interface ist weitgehend selbsterklärend und erlaubt die sehr bequeme Verwaltung von Feeds und Einstellungen. Fast alles ist von überall in der Oberfläche erreichbar, verschachtelte Untermenüs gibt es nicht. FreshRSS hat für jeden Lesegeschmack genügend Optionen und Anpassungsmöglichkeiten, ohne dabei unübersichtlich zu wirken.
Die Aktualisierung der Feeds erfolgt entweder manuell bzw. halbautomatisch über die Oberfläche oder kann auch automatisch mittels Cronjob angestoßen werden. Hier sollte man aber beachten, dass der Aufruf des Update-Scripts standardmäßig nur über die Kommandozeile möglich ist. Wer hingegen das Update-Script nur über eine URL aufrufen kann, muss Lesezugriff auf den Unterordner "app" erlauben und die darin befindliche Datei .htaccess löschen bzw. eine entsprechende Anpassung vornehmen, damit nur das Update-Script von außen erreichbar ist.

Natürlich darf auch diesmal ein Wort zur Zugänglichkeit mit Screen-Readern nicht fehlen. FreshRSS ist weitgehend für unseren Benutzerkreis zu gebrauchen, hat aber auch auf diesem Gebiet noch einige Baustellen. So gibt es offenbar viele Grafiken, deren Alternativtexte nur mit unleserlichen Unicode-Symbolen versehen sind. Auch die enthaltene Tastaturnavigation, welche noch mehr die Bedienung der Oberfläche im Stil einer Desktop-Anwendung erlaubt, ist für uns nicht sinnvoll nutzbar. Hier schaffen aber ohnehin die meisten Bildschirmleser mit eigenen Navigationshilfen einen anderen Weg.

Firtz Podcast Publisher

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Audio, OpenSource, PHP, Podcast

Viel braucht es ja eigentlich nicht, um einen selbstgehosteten Podcast zu veröffentlichen. Genügend Speicherplatz, einen RSS-Feed und eine Webseite drum herum. Firtz liefert genau das und noch einige Extras mehr, ohne dabei unnötig aufgebläht zu sein. An den Komfort eines ausgewachsenen Podcast-Publishers wie etwa in der Kombination mit Wordpress-Blogs kommt Firtz natürlich nicht heran. Aber gerade für kleinere Podcast-Projekte, deren technische Realisierung nach der Ersteinrichtung möglichst unaufwändig sein soll, ist der Firtz ideal geeignet.

Firtz kommt ohne ein Admin-Interface zur Verwaltung der Podcasts und deren Episoden aus. Stattdessen erfolgt sämtliche Konfiguration über Textdateien, in denen alle Variablen eines Podcasts notiert sind. Klingt kompliziert, ist es aber überhaupt nicht. Statt XML-Tags werden in einer Podcast-Konfigurationsdatei lediglich überschriftenartige Schlüsselwörter samt darunter notierter Werte verwendet, die das Script einliest und als korrekten RSS-Feed ausgibt. Ein Prinzip, das einfacher kaum sein könnte und auch nicht schwerer ist als das Ausfüllen von Formularen. Damit trotzdem nichts Falsches notiert wird, liegt dem Script eine umfangreiche Dokumentation bei, die alle nötigen und möglichen Optionen auflistet. Aber bei aller Einfachheit können auch die Profis aus dem Vollen schöpfen, denn Firtz bietet von anpassbaren Design-Vorlagen bis hin zu einer Integration mit dem Post-Production-Service Auphonic, der dem Podcaster noch einiges an Arbeit abnehmen kann, auch für gehobene Ansprüche genügend Anpassungsmöglichkeiten.
Natürlich darf auch eine kleine Webseite nicht fehlen, die alle Podcasts und Episoden übersichtlich präsentiert und auch die sozialen Netzwerke nicht zu kurz kommen lässt. Dank eines integrierten HTML5-Players, der übrigens auch die Screen-Reader-Nutzer begeistern dürfte, können Episoden außerdem direkt auf der Seite angehört werden.

Spannend ist ein unscheinbares Detail am Rande, welches die weitgehend problemlose Migration bestehender Podcasts ermöglicht. Durch die Option "Feedalias", die in einer globalen Konfigurationsdatei notiert werden muss, lassen sich alte Feed-Adressen auf das Firtz-Format umleiten. Lediglich das Erstellen der Episodendateien erfordert dann noch etwas Fleißarbeit. Wer trotzdem skeptisch vor dem Umzug ist, kann sich das Ergebnis sogar in einer begrenzt gültigen Demo-Installation auf der Projekt-Homepage anschauen und seinen alten Podcast-Feed in einen Firtz-Podcast umwandeln lassen. Ein nettes Extra wäre es, wenn man sich diese Installation dann noch als individuelles Paket herunterladen könnte.
Firtz ist ein imho rundum gelungenes Projekt, das sicher noch die ein oder andere Idee hervorzaubern wird.

Homepage mit allen Infos und Downloads: http://firtz.org

Artikel-Feed (RSS) dieser Tag