Gestern ging ein Update für Pipes online, und ich halte das für eine gute Gelegenheit hier von den letzten Änderungen zu berichten. Ich hatte da auch im Newsletter drüber geschrieben, doch mich da sehr kurz gehalten. Hier ist etwas mehr Platz.
Pipes teilen
Ein großes Ziel für mich war das Teilen von Pipes. Yahoo Pipes konnte das, und ich fand die Funktion damals ziemlich cool, auch wenn ich selbst dann gar nicht viel damit anfing. Jetzt kann man auch bei Pipes fertige pipes teilen, und die freigegebenen in den eigenen Account kopieren.
Diese Beispielpipe ist von mir, jeder kann den Link aufrufen und seine eigene Kopie verändern, speichern und ausführen.
Konzept für Formate
Vor dieser neuen Funktion gab es ein völlig anderes Konzeptionsproblem: Wie soll Pipes mit anderen Formaten als XML/RSS/Atom umgehen? Für mich wurde das mit dem Webhooks-Block akut. Webhooks verschicken desöfteren JSON. Aber es wurde auch angefragt, wie man eine simple Textliste mit Pipes bearbeiten könnte.
Das durchzudesignen war nicht so ohne. Aber es gab eine Lösung. Der Downloadblock kann jetzt nur mit dem Extract-Block oder dem Feedbuilder verbunden werden. Der Webhookblock baut aus den eingegangenen POSTs direkt einen Feed. Zusammen mit drei weiteren Änderungen können so die Formate behandelt werden:
- Der Feedbuilder wurde ergänzt um die Fähigkeit, aus Textdateien Feeds zu bauen. Jede Zeile wird ein eigenes Feeditem.
- Der Extract-Block nutzt nun jeweils einen Selektor für seine drei Formate: CSS-Selektoren für HTML, Xpath für XML, und JSONPath für JSON.
- Außerdem kann der Extract-Block nun optional von
item.content
an extrahieren.
Das klingt ein bisschen kompliziert, führt aber zu einem einfachen Datenfluss. Du willst z.B. eine Textdatei bearbeiten, Zeile für Zeile eine Regexpression drüberlaufen lassen. Dann nimmt man einen Downloadblock, der sie runterlädt, gibt sie zum Feedbuilder, der daraus einen Feed bastelt. Der Feed geht dann an den Replacer-Block, der auf item.content
arbeitet und so die Arbeit macht. Um am Ende wieder eine Textdatei zu bekommen und nicht RSS wird der Ausgabefeed als pipes.digital/feed/feedid.txt aufgerufen.
Oder man will etwas aus JSON extrahieren, das an den Webhookfeed-geschickt wurde. Da kannst du jetzt direkt einen Extract-Block an den Webhook-Block anschließen, ihm einen JSONPath mitgeben, und so einen neuen Feed mit den extrahierten Elementen erstellen. Die Kernidee ist, RSS-Feeds als internes Datenformat zu erhalten, aber für andere Formate klar definierte Unterstützung einzubauen.
Editor und sonstige Verbesserungen
Dazu gab es eine Reihe von neuen Blocks, wie den Replace-Block. Reguläre Ausdrücke können jetzt als /regex/[flags] geschrieben werden, was insbesondere für das Flag i
(case-insensitive) wichtig ist. Es gab einige Bugs zu fixen, Komfortfunktionen einzubauen, und der Editor hat ein neues Design. So sieht er jetzt aus:
Es gab Verbesserungen beim Login-Flow, und oben rechts versteckt sich hinter dem Profilavatar ein Dropdown-Menü, in das die Seite "My Pipes" gewandert ist, die Einstellungen (derzeit nur zum ändern der Emailadresse) und auch der Knopf zum Ausloggen hinzugefügt wurden.
Pipes ist weiterhin ein motivierendes Projekt. Die Seite wird - zumindest in meinen Augen - immer besser, und es gab weiterhin ordentlich Feedback. Ich hoffe das geht so weiter.