Dies ist eine mnemonische URL-Datenbank, ein Redirector und eine Suchmaschine.
Die Hauptfunktion dieses Tools besteht darin, Benutzer per HTTP direkt zu einer URL umzuleiten, die mit dem Schlüsselwort verknüpft ist, auf das sie zugegriffen haben. URLs sind schwer zu merken und einzugeben, aber sie sind einfacher zu verwenden, wenn sie prägnant benannt sind. Links werden benannt oder mit Tags versehen und in Listen platziert, die durch Schlüsselwörter gekennzeichnet sind. Bei diesen Schlüsselwörtern handelt es sich um bekannte, intuitive Zeichenfolgen, die sich die Benutzer ausdenken und die die gesuchte Liste oder den gesuchten Link beschreiben.
Die sekundäre Funktion besteht darin, einen Ort bereitzustellen, an dem Listen der aktuellsten Links zu einem bestimmten Thema zusammengestellt werden können.
Wenn Benutzer nach Informationen zum Mars suchen möchten, können sie go2 mars
in die URL/Suchleiste ihres Browsers eingeben. Dies könnte direkt zu einem Link oder einer Linkliste über den Planeten weiterleiten. Stellen Sie sich vor, dass diese Liste mehrere Links oder Artikel über den Mars enthält. Wie könnte ein Benutzer mehr Informationen über den Mond Phobos erhalten, indem er mit einer Suche direkt dorthin gelangt? Listenkuratoren könnten einen der Links in der Liste mit phobos
markieren . Jetzt können Benutzer go2 mars/phobos
in ihre URL/Suchleiste eingeben. Dieser Link ist nun zur kanonischen Weiterleitung für alle geworden, die weitere Informationen über diesen Marsmond suchen.
Der go2-Redirector folgt einem Wikipedia-ähnlichen Modell des Community-gesteuerten Hinzufügens, Löschens und Kuratierens von Daten. Wenn sich die Benutzer gemeinsam auf die Bedeutung von Schlüsselwörtern einigen und sich wiederum darauf einigen, wie die Liste für dieses Schlüsselwort aussehen soll, ist das Ergebnis das genaueste Verständnis der Gruppe für diese mnemonischen Schlüsselwörter zu jedem Zeitpunkt. Je mehr Leute den Redirector verwenden, desto mehr Redakteure haben Sie, um die Dinge auf dem neuesten Stand zu halten.
Um die Anwendung einzurichten, müssen eine Erstkonfiguration und eine leere Linkdatenbank erstellt werden. Führen Sie dazu das Installationsskript über die Befehlszeile aus.
./install.sh
Dadurch wird eine Datei godb.json
auf der Festplatte im Stammverzeichnis des Projekts abgelegt und anschließend eine generische Konfigurationsdatei go2config.json
in dasselbe Verzeichnis geschrieben. Die Standardeinstellungen in der Konfigurationsdatei reichen für den Einstieg aus, aber schauen Sie sich diese an, um die verfügbaren Einstellungen zu verstehen.
Der Redirector muss als zweiter und letzter Schritt der Einrichtung kompiliert werden. Ein einfacher go build
im Projektstamm sollte eine ausführbare Datei ergeben. Führen Sie diese ausführbare Datei ohne Argumente aus, um zu sehen, wie der Redirector startet und einen kurzlebigen Port überwacht.
Hier ist eine mehrstufige Dockerfile
enthalten, um den Prozess der Erstellung der Binärdatei und der Bereitstellung eines ausführbaren Containers zu vereinfachen. Der anfängliche Baucontainer ist riesig und wird zugunsten eines kleineren, auf Alpine Linux basierenden Laufzeitcontainers weggeworfen. Das Erstellen und Ausführen des Containers besteht aus drei Elementen: Erstellen, Beibehalten der Linkdatenbank und Ausführen des Containers.
Der Container kann mit folgendem Befehl erstellt werden: docker build -t go2redirector .
Wenn Sie den Build-Container selbst untersuchen möchten, um die Build-Umgebung auszuchecken/zu debuggen, können Sie darauf zugreifen, indem Sie den Build-Container nach Namen auswählen.
docker build --target builder -t go2build .
Sie können lokal ein Volume für persistenten Speicherplatz außerhalb des Containers für godb.json
erstellen. Dadurch kann Ihr Container bei jeder Ausführung denselben Godb verwenden. Lassen Sie diesen Vorgang weg, wenn Sie die Datenbank zwischen Containerläufen nicht speichern möchten.
docker volume create go2
docker volume inspect go2
Führen Sie nun den Container mit dem Volume aus. Dadurch wird der Container im Daemon-Modus ausgeführt und entfernt, wenn er stoppt.
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
Beachten Sie, dass Sie ein solches Volume nicht verwenden müssen. Ein Bind-Mount in ein anderes vorhandenes Verzeichnis würde ebenfalls funktionieren.
Der Redirector überwacht 0.0.0.0:8080
im Container, im Gegensatz zum Standardwert 127.0.0.1
aus go2config.json (dem Standardwert).
Um die Protokolle aus dem Container anzuzeigen, werden sie alle an stdout umgeleitet. Sie können also eine docker logs <name of running container>
durchführen
Der go2redirector sollte jetzt auf localhost:8080
laufen. Sie können dies direkt tun oder zur Vereinfachung Ihren Browser mit einem neuen Suchschlüsselwort wie go2
konfigurieren.
Jeder Browser verfügt über ein etwas anderes Konfigurationsverfahren, um Stichwortsuchmaschinen zu aktivieren.
localhost:8080
(oder die URL, unter der Sie Ihren Redirector ausführen) in Firefox.go2
fest go2
.http://localhost:8080/?keyword=%s
Jetzt können Sie mit Ihrem Browser wie mit einer Suchmaschine auf den go2redirector zugreifen. Legen Sie das Schlüsselwort auf go2
fest und verwenden Sie das Suchfeld
go2 wiki/es
Wenn Ihr Browser auf die spanische Version von Wikipedia umgeleitet hat, sind Sie startklar.
.
Präfix für ein beliebiges Schlüsselwort./
in einer vom Benutzer eingegebenen Umleitungszeichenfolge. Zum Beispiel hätte go2 planets/mars/weather
die Felder „planets“ (das Schlüsselwort), „mars“ (das Tag) und „weather“ als Parameter.Die Erstellung einer Linkliste beginnt mit der Auswahl eines intuitiven Schlüsselworts. Unter diesem Namen werden sich die Leute an diese Linkliste erinnern. Denken Sie über das Schlüsselwort nach und darüber, wie allgemein es ist. Gilt es für andere potenzielle Listen? Wenn ja, überlegen Sie sich vielleicht einen spezifischeren Schlüsselwortnamen oder kombinieren Sie die beiden Listen.
Ein Tag ist ein Name für einen Link innerhalb einer Linkliste. Das Tag ist das zweite (optionale) Feld, das ein Benutzer in einer go2-Weiterleitung eingibt. Wenn Sie eine Liste von Marsmonden haben, können Sie einen mit „Phobos“ und einen anderen mit „Deimos“ kennzeichnen, was zu einer Weiterleitung wie go2 mars/phobos
führt, um direkt zu dem Link zu gelangen, der diesen Mond beschreibt. Tags sind optional. Wenn der Benutzer ein zweites Feld angibt, versucht der Redirector, ein Tag mit diesem Namen in der Liste zu finden. Wenn keins gefunden wird, wird das zweite Feld als Ersatzparameter für den Link behandelt.
Wenn ein Link mit einer URL hinzugefügt wird, für die wir bereits einen Link unter einem anderen Schlüsselwort haben, können Sie einen völlig neuen Link erstellen, da Sie möglicherweise einen anderen Titel und andere Schlüsselwortzuordnungen haben. Wenn Sie versuchen, einen doppelten Link hinzuzufügen, werden Ihnen auf der Dotpage andere Keywords angezeigt, die den Link bereits verwenden.
Das Eingabefeld oben links auf der Indexseite ist der Haupteinstiegspunkt für die Anwendung. In dieses Feld können Benutzer Kombinationen aus Schlüsselwörtern, Tags und Parametern eingeben, um zu einer Weiterleitung zu gelangen oder eine neue Weiterleitung zu erstellen.
Für Links kann ein Datum festgelegt werden, das die Lebensdauer des Links in der Linkdatenbank angibt. Standardmäßig laufen Links nie ab. Benutzer können verschiedene Link-Lebensdauern eingeben. Die einzigartigste aller ausgewählten Link-Lebensdauern ist „Brennen nach dem Lesen“, und genau das klingt auch danach. Die Anwendung zerstört den Link, nachdem eine einzelne Person ihn als Weiterleitung verwendet hat. Dies ist nützlich für Links, die Sie nur einmal verwenden oder teilen. Sie sollten eine angemessene Lebensdauer für einen Link wählen, wenn er nicht ewig sein soll. Dies ist die passive Form der Kuration in der Anwendung, bei der Links entfernt werden, wenn deren Ablaufdatum erreicht wird.
Um den Zugriff auf die Listenseite eines Schlüsselworts zu erzwingen (unabhängig vom Listenverhalten), stellen Sie diesem Schlüsselwort einfach einen Punkt voran oder fügen ihm als Suffix einen Schrägstrich hinzu. Dadurch wird die Listenseite gerendert, auf der die Links geändert oder markiert werden können.
Für die Links in einer Liste kann an einer beliebigen Stelle in der URL eine {1}
platziert werden, die als Ersatzzeichenfolge für einen einzelnen vom Benutzer bereitgestellten Positionsparameter dient. Derzeit unterstützen wir nur einen Parameter, aber das könnte sich ändern, wenn es einen zwingenden Grund für zwei oder mehr gibt. In der vorherigen Version des Redirectors wurden diese Arten von Links mit Ersetzungen als „spezielle“ Links bezeichnet und sie verwendeten {*}
als Ersetzungszeichenfolge. Beispielsweise kann das Schlüsselwort go2 planets
einige Links enthalten, die mit verschiedenen Planetennamen getaggt sind. Jede Link-URL kann die Ersatzzeichenfolge {1} enthalten.
Für die Benutzereingabe von go2 planets/mars/weather
würde der go2redirector das Schlüsselwort planets
suchen, den mit mars
getaggten Link nachschlagen, seine URL www.nasa.gov/planets/mars/{1}.php
abrufen und einen ausführen Ersatz für www.nasa.gov/planets/mars/weather.php
. Schließlich wird der Benutzer zu dieser URL weitergeleitet.
Ich brauche jede Hilfe, die ich bekommen kann, damit mein Golang für Anfänger besser aussieht. Es gibt neue Funktionen, die wir hinzufügen möchten, aber nicht genügend Leute dafür. Wenn Sie einen Beitrag leisten möchten, teilen Sie einfach das Repository auf und reichen Sie eine PR ein! Reichen Sie alle Verbesserungswünsche oder Fehler im Issue-Tracker hier im go2redirector-Projekt ein.
Weitere Informationen finden Sie unter CONTRIBUTING.md
.
Der ursprüngliche Redirector f5go wurde von Saul Pwanson mit Unterstützung von Bryce Bockman und Treebird(tm) entworfen.