Il s'agit d'une base de données d'URL mnémotechnique, d'un redirecteur et d'un moteur de recherche.
La fonction principale de cet outil est de rediriger HTTP les utilisateurs directement vers une URL associée au mot-clé auquel ils accédaient. Les URL sont difficiles à mémoriser et à saisir, mais elles sont plus faciles à utiliser si elles sont nommées de manière concise. Les liens sont nommés ou étiquetés et placés dans des listes identifiées par des mots-clés . Ces mots-clés sont des chaînes intuitives et bien connues que les utilisateurs proposent et qui décrivent la liste ou le lien recherché.
La fonction secondaire est de fournir un endroit pour organiser des listes des liens les plus à jour vers un sujet donné.
Si les utilisateurs souhaitent rechercher des informations sur Mars, ils peuvent taper go2 mars
dans l'URL/barre de recherche de leur navigateur. Cela pourrait rediriger directement vers un lien ou une liste de liens sur la planète. Imaginez qu'il existe plusieurs liens ou articles sur Mars sur cette liste. Comment un utilisateur pourrait-il obtenir plus d’informations sur la lune Phobos, en y accédant directement en une seule recherche ? Les conservateurs de liste pourraient marquer l'un des liens de la liste avec phobos
. Les utilisateurs peuvent désormais saisir go2 mars/phobos
dans leur barre d'URL/de recherche. Ce lien est désormais devenu la redirection canonique pour quiconque recherche plus d’informations sur cette lune de Mars.
Le redirecteur go2 suit un modèle de type Wikipédia d'ajout, de suppression et de conservation de données piloté par la communauté. Si les utilisateurs s'accordent collectivement sur la signification des mots-clés et, à leur tour, sur ce que devrait être la liste de ce mot-clé, le résultat est la compréhension la plus précise du groupe de ces mots-clés mnémoniques à un moment donné. Plus il y a de personnes qui utilisent le redirecteur, plus vous avez d'éditeurs pour garder les choses à jour.
Pour configurer l'application, une configuration initiale et une base de données de liens vides doivent être créées. Pour ce faire, exécutez le script d'installation à partir de la ligne de commande.
./install.sh
Cela placera un fichier godb.json
sur le disque dans le répertoire racine du projet, puis écrira un fichier de configuration générique go2config.json
dans le même répertoire. Les paramètres par défaut dans le fichier de configuration suffisent pour commencer, mais examinez-le pour comprendre les paramètres disponibles.
Le redirecteur doit être compilé lors de la deuxième et dernière étape de la configuration. Une simple go build
à la racine du projet devrait produire un exécutable. Exécutez cet exécutable sans argument pour voir le redirecteur démarrer, en écoutant sur un port éphémère.
Un Dockerfile
en plusieurs étapes est inclus ici pour faciliter le processus de création du binaire et fournir un conteneur exécutable. Le conteneur de construction initial est énorme et est abandonné au profit d'un conteneur d'exécution alpin plus petit basé sur Linux. La création et l'exécution du conteneur comportent trois éléments : la création, la conservation de la base de données de liens et l'exécution du conteneur.
La construction du conteneur peut être effectuée avec : docker build -t go2redirector .
Si vous souhaitez inspecter le conteneur de build lui-même pour extraire/déboguer l'environnement de build, vous pouvez y accéder en ciblant le conteneur de build par son nom.
docker build --target builder -t go2build .
Vous pouvez créer un volume localement pour un espace persistant en dehors du conteneur pour godb.json
. Cela permettra à votre conteneur d'utiliser le même godb à chaque exécution. Laissez cette procédure de côté si vous ne souhaitez pas enregistrer la base de données entre les exécutions du conteneur.
docker volume create go2
docker volume inspect go2
Exécutez maintenant le conteneur en utilisant le volume. Cela exécutera le conteneur en mode démon et le supprimera lorsqu'il s'arrêtera.
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
Notez que vous n'avez pas besoin d'utiliser un volume comme celui-ci. Un montage lié à un autre répertoire existant fonctionnerait également.
Le redirecteur va écouter sur 0.0.0.0:8080
à l'intérieur du conteneur, par opposition à la valeur par défaut de 127.0.0.1
de go2config.json (la valeur par défaut).
Pour voir les journaux du conteneur, ils sont tous redirigés vers la sortie standard, vous pouvez donc créer un docker logs <name of running container>
Le go2redirector devrait maintenant être exécuté sur localhost:8080
. Vous pouvez le faire directement, ou pour faciliter les choses, vous pouvez configurer votre navigateur avec un nouveau mot-clé de recherche comme go2
.
Chaque navigateur a une procédure de configuration légèrement différente pour activer les moteurs de recherche par mots clés.
localhost:8080
(ou quelle que soit l'URL sur laquelle vous exécutez votre redirecteur) dans Firefox.go2
go2
.http://localhost:8080/?keyword=%s
Votre navigateur peut désormais être utilisé pour accéder au go2redirector comme un moteur de recherche. Définissez le mot-clé sur go2
et utilisez le champ de recherche
go2 wiki/es
Si votre navigateur est redirigé vers la version espagnole de Wikipédia, vous êtes prêt.
.
préfixe à n’importe quel mot-clé./
dans la saisie d'un utilisateur de chaîne de redirection. Par exemple, go2 planets/mars/weather
aurait les champs "planets" (le mot-clé), "mars" (la balise) et "weather" le paramètre.La conservation d'une liste de liens commence par la sélection d'un mot-clé intuitif. C’est le nom sous lequel les gens se souviendront de cette liste de liens. Pensez au mot-clé et à sa généralité. Cela s'applique-t-il à d'autres listes potentielles ? Si tel est le cas, proposez peut-être un nom de mot-clé plus spécifique ou combinez les deux listes.
Une balise est le nom d'un lien dans une liste de liens. La balise est le deuxième champ (facultatif) qu'un utilisateur saisit dans une redirection go2. Si vous avez une liste de lunes de Mars, vous pouvez en étiqueter une avec "phobos" et une autre avec "deimos", ce qui entraînera une redirection comme go2 mars/phobos
pour accéder directement au lien décrivant cette lune. Les balises sont facultatives. Si un deuxième champ est spécifié par l'utilisateur, le redirecteur tente de localiser une balise dans la liste portant ce nom. S'il n'en trouve pas, le deuxième champ est traité comme un paramètre de substitution pour le lien.
Si un lien est ajouté avec une URL pour laquelle nous avons déjà un lien sous un autre mot-clé, nous vous permettons de créer un tout nouveau lien car vous pourriez avoir un autre titre et des associations de mots-clés différentes. Si vous essayez d'ajouter un lien en double, il vous montrera d'autres mots-clés utilisant déjà le lien lorsque vous consulterez la page dotpage.
Le champ de saisie en haut à gauche de la page d'index est le principal point d'entrée de l'application. C'est dans ce champ que les utilisateurs peuvent saisir des combinaisons mot-clé/balise/paramètre pour accéder à une redirection ou en créer de nouvelles.
Les liens peuvent avoir une date définie qui spécifie la durée de vie du lien dans la base de données de liens. Par défaut, les liens n'expirent jamais. Les utilisateurs peuvent saisir différentes durées de vie des liens. La plus unique de toutes les durées de vie des liens sélectionnés est « graver après lecture », ce à quoi cela ressemble exactement. L'application détruira le lien après qu'une seule personne l'ait utilisé comme redirection. Ceci est utile pour les liens que vous n’utiliserez ou ne partagerez qu’une seule fois. Vous devez sélectionner une durée de vie raisonnable pour un lien s'il ne sera pas éternel. Il s'agit d'une forme passive de conservation dans l'application, supprimant les liens à mesure que leurs dates d'expiration approchent.
Pour forcer l'accès à la page de liste d'un mot-clé (quel que soit le comportement de la liste), il vous suffit de préfixer ce mot-clé avec un point ou de le suffixer avec une barre oblique. Cela affichera la page de liste où les liens peuvent être modifiés ou étiquetés.
Les liens d'une liste peuvent avoir un {1}
placé n'importe où dans l'URL pour servir de chaîne de substitution pour un seul paramètre de position fourni par l'utilisateur. À l'heure actuelle, nous ne prenons en charge qu'un seul paramètre, mais cela pourrait changer s'il existe une raison impérieuse pour deux ou plusieurs paramètres. Dans la version précédente du redirecteur, ces types de liens avec substitutions étaient appelés liens « spéciaux » et utilisaient {*}
comme chaîne de substitution. Par exemple, le mot-clé go2 planets
peut contenir quelques liens étiquetés avec différents noms de planètes. Chaque URL de lien peut contenir la chaîne de substitution {1}.
Pour la saisie utilisateur de go2 planets/mars/weather
le go2redirector localiserait le mot-clé planets
, rechercherait le lien marqué avec mars
, obtiendrait son URL www.nasa.gov/planets/mars/{1}.php
et effectuerait une substitution à www.nasa.gov/planets/mars/weather.php
. Enfin, l'utilisateur serait redirigé vers cette URL.
J'ai besoin de toute l'aide possible pour rendre mon golang de niveau novice plus joli. Il y a de nouvelles fonctionnalités que nous souhaitons ajouter et pas assez de personnes pour le faire. Si vous souhaitez contribuer, créez simplement le référentiel et soumettez un PR ! Déposez toutes les demandes d'amélioration ou les bogues sur le système de suivi des problèmes ici dans le projet go2redirector.
Voir CONTRIBUTING.md
pour plus d'informations.
Le redirecteur original f5go a été conçu par Saul Pwanson, avec l'aide de Bryce Bockman et Treebird(tm).