Aufgaben

  • Erstellen der Projekt-Seite mit Hugo
    • Hosting auf Raspberry Pi per Docker
    • Domain-Weiterleitung einrichten
  • Einarbeitung Chrome Extensions
  • Einarbeitung Webapp-Suche anzapfen
  • Auswahl eines passenden Namens

Einarbeitung Chrome Extensions:

Eine Chrome Extension ist ein gepackter Ordner, der ein Manifest, HTML- und JavaScript-Dateien enthält. Für die Entwicklung kann ein lokales Verzeichnis verwendet werden. Dieses wird in Chrome eingebunden, indem chrome://extensions aufgerufen wird. Einfach den Ordner per Drag-and-Drop reinziehen. Done.

-> Ich muss eine page action erstellen, da sich die Extension nur auf eine Seite bezieht (in diesem Fall google.de).

Architektur

Chrome Extensions bestehen aus mehreren Teilen. Dabei gibt es verschiedene Arten von HTML-Seiten. Die background page background.html kontrolliert das Verhalten der Extension im Hintergrund. Wenn die Hintergrundseite ständig geöffnet sein soll, so muss sie eine persistent background page sein. Andernfalls recht eine event page.

-> Ich benötige wahrscheinlich eine event page

UI Pages sind HTML-Seiten, die z.B. in einem Popup angezeigt werden. Typisch sind beispielweise Einstellungsseiten. HTML-Seiten innerhalb einer Extension können uneingeschränkt aufeinander zugreifen.

Für die Interaktion mit einer Webseite muss ein content script erzeugt werden. Dies ist eine JavaScript-Datei, die Details der besuchten Seiten auslesen und ändern kann. Content scripts können allerdings nicht das DOM der background page ändern.

-> Ich brauch auf jeden Fall ein content script zum Einbetten der Ergebnisse in die Goolge-Suchergebnisse.

Status 20:30

Die Browser Extension ist angelegt und ich hab inzwischen die Funktionsweise verstanden, so dass ich eine page action erstellen konnte, damit die Extension nur auf Google ausgeführt werden kann. Auf anderen Seiten ist die Schaltfläche ausgegraut. Das content script kann nach Klick auf das Extension-Logo per JavaScript die Google-Suchanfrage ganz einfach auslesen. Weiter wird per JavaScript ein div konstruiert, welches in der rechten Seitenleiste eingebettet wird.

Jetzt muss ich schauen, wie ich eine Suchanfrage an makandra cards schicken kann, so dass ich eine JSON mit Suchergebnissen zurückgeliefert bekomme. Ach ja, Abendessen gab’s auch schon und war sehr lecker… ;-)

Status 22:00

Henning hat sich mit mir zusammengesetzt, um den Endpoint zu besprechen, der von der Rails-Anwendung angeboten werden soll. Wir haben uns dafür entschieden, einen neuen Controller zu schreiben, der eine minimale HTML-Seite zurückliefert, die die Suchergebnisse enthält. Diese Seite kann von der Chrome Extension in einem iframe eingebettet werden.