Format & Schema

Gestura-Menüs und -Suchmaschinen lassen sich als portable JSON-Dateien exportieren, teilen und importieren. Dieser Index speichert und verteilt sie, aber das Format selbst hängt nicht davon ab: Die Browser-Erweiterung kann diese Dateien direkt importieren und exportieren, ganz ohne Server.

Die Erweiterung funktioniert vollständig ohne diesen Index. Das Teilen hier ist ein optionales, kostenloses Zusatzangebot – nichts in der Erweiterung setzt voraus, dass dieses Backend erreichbar ist.

Menüs

Eine Menü-Datei trägt auf oberster Ebene die Markierung »gesturaMenu«: 1 und beschreibt ein In-Page-Menü: eine Liste von Einträgen (Links, Suchen oder Aktionen wie Scrollen und Navigation), das auf passenden Websites erscheint. Jeder Eintrag braucht eine eindeutige id; ein Eintrag, der kein Separator ist, muss eine von einer festen Menge erlaubter Aktionen verwenden.

Suchmaschinen

Eine Engine-Datei trägt die Markierung »gesturaEngine«: 1 und beschreibt eine einzelne benutzerdefinierte Suchmaschine oder einen Schnelllink: einen Namen, eine https-URL-Vorlage sowie optionale Einstellungen wie Ergebnis-Formatierung oder weitere Verhaltens-Flags. Eine Engine kann transformCode enthalten, ein kleines JavaScript-Schnipsel, das das Suchergebnis vor der Verwendung umformt.

Gemeinsame Felder

Jeder Eintrag hat eine id (ein kurzer Bezeichner im Reverse-Domain-Stil, z. B. example.com.my-menu) und eine version nach semantischer Versionierung (major.minor.patch, z. B. 1.2.0). name und, sofern vorhanden, description akzeptieren entweder eine einfache Zeichenkette oder ein Objekt mit Sprachcodes als Schlüssel, etwa einen »en«-Eintrag neben einem »de«-Eintrag, wobei Englisch als Fallback dient, wenn die Sprache des Betrachters fehlt. Menüs nutzen patterns (URL-Match-Muster) und items; Engines nutzen stattdessen eine url-Vorlage.

Validierungsregeln

Der Server validiert jede Einreichung mit denselben Regeln, die auch die Erweiterung selbst durchsetzt: Alle URLs (homepage, Item-Links, Engine-url) müssen mit https: beginnen; id, name, description und URLs sind in der Länge begrenzt; ein Menü enthält höchstens 100 Einträge und höchstens 50 patterns; Item-ids müssen innerhalb eines Menüs eindeutig sein; ein searchLink-Eintrag braucht entweder eine engineId oder eine url. Einträge mit transformCode durchlaufen immer eine manuelle Moderation vor der Veröffentlichung, weil ausführbarer Code einen menschlichen Blick braucht.

Minimalbeispiele

{
  "gesturaMenu": 1,
  "id": "example.com.quick-links",
  "version": "1.0.0",
  "name": "Quick links",
  "patterns": ["*://example.com/*"],
  "items": [
    { "id": "back", "action": "back", "label": "Back" },
    { "id": "sep-1", "type": "separator" },
    {
      "id": "open-docs",
      "action": "openCustomUrl",
      "label": "Docs",
      "customUrl": "https://example.com/docs"
    }
  ]
}
{
  "gesturaEngine": 1,
  "id": "example.com.search",
  "version": "1.0.0",
  "name": "Example Search",
  "url": "https://example.com/search?q={searchTerms}"
}