ringfairy
?Il s'agit d'un générateur de webring écrit en Rust. C'est similaire à un générateur de site statique, mais spécialisé pour les webrings.
Contrairement à la plupart des webrings qui s'appuient sur une sorte de code côté serveur (par exemple PHP, JS) pour rediriger les visiteurs, cette approche utilise des redirections HTML.
L'approche statique permet des exigences d'hébergement plus simples (elle peut être hébergée sur Neocities, GitHub Pages, etc.) car elle élimine le besoin de traitement côté serveur.
La mise à jour du webring vous obligera à régénérer le tout. C’est simple et rapide et ne devrait pas être effectué fréquemment. Mais il s’agit d’une étape supplémentaire que les systèmes côté serveur conventionnels pourraient ne pas proposer, à moins que vous ne l’automatisiez, par exemple via GitHub Actions.
Un webring est un ensemble de sites Web reliés entre eux en boucle. Chaque site Web contient des liens vers les sites Web précédents et suivants du ring. Si vous naviguez suffisamment loin, vous finirez par revenir là où vous avez commencé !
Les webrings étaient populaires au début d'Internet comme moyen permettant aux propriétaires de sites Web de promouvoir le contenu de chacun et d'encourager l'engagement de la communauté.
Il s’agit d’un outil destiné à toute personne possédant un site Web ou un blog personnel et souhaitant se connecter avec d’autres. Vous pouvez l'utiliser pour développer votre propre communauté en ligne à partir de zéro !
Hautement optimisé
Détection automatique des liens Webring sur les sites
Entièrement personnalisable via des modèles
Génère un fichier OPML avec tous les sites disposant d'un flux RSS
Choix d'interface de ligne de commande ou de fichier de configuration
Prise en charge des fichiers de configuration à distance également
Option de lecture aléatoire
Minification HTML
Coordonnées du propriétaire du site Web de liaison automatique
Capture les entrées en double
Journalisation détaillée
Webrings utilisant ringfairy
(pour autant que je sache):
Ghostring - sites sur le thème de l'horreur
Craftering - pour la communauté System Crafters
Roboring - pour les êtres robotiques
Si vous décidez de lancer votre propre webring avec cet outil, faites-le-moi savoir et je le listerai ici ! :)
Téléchargez une version binaire OU clonez le dépôt et construisez à partir des sources.
Modifiez le fichier websites.json
(par défaut) pour inclure les détails des sites Web que vous souhaitez inclure dans le webring. Chaque site Web doit être ajouté à la liste.
Modifiez le fichier config.json
(par défaut) selon vos besoins.
(Facultatif) Personnalisez les pages en modifiant les modèles, situés dans le dossier data/templates
(par défaut). Vous pouvez également utiliser des fichiers distants comme modèles. Voir la section « Modèles » ci-dessous.
(Facultatif) Ajoutez des fichiers supplémentaires dans le dossier data/assets
(par défaut). Tout ce qui se trouve dans ce dossier sera simplement copié dans le répertoire de sortie. Ici, vous pouvez ajouter des extras comme des images, HTML/CSS, etc.
Exécutez ringfairy
pour générer le webring en écrivant des fichiers HTML contenant les redirections. Chaque site sera lié au site suivant/précédent dans le fichier websites.json
, formant ainsi votre webring !
Hébergez les fichiers générés sur votre plateforme d'hébergement préférée.
Les arguments de ligne de commande ont priorité sur tous les paramètres du fichier de configuration.
-h
, --help
: Imprimer l'aide
-c
, --config
: Spécifiez l'emplacement du fichier de configuration facultatif. Cela peut être éloigné ; par exemple un lien HTTP vers un fichier JSON approprié sur Pastebin, GitHub, etc.
-l
, --list
: Spécifiez le fichier contenant la liste des sites Web. Par défaut : ./websites.json
-o
, --output
: Définissez le dossier de sortie, où les fichiers générés seront enregistrés. Par défaut : ./webring
-a
, --assets
: Spécifiez le dossier des actifs. Tous les fichiers ici seront copiés dans le dossier de sortie. Cela vous permet d'inclure tous les fichiers supplémentaires que vous souhaitez, tels que des images ou des pages Web supplémentaires, etc. Par défaut : ./data/assets
-t
, --templates
: Spécifiez le chemin d'accès au dossier de modèles. Utilisez template.html
pour les pages de redirection (c'est-à-dire le HTML qui compose le webring). Toutes les pages supplémentaires peuvent être ajoutées ici si vous souhaitez qu'elles soient remplies avec le contenu généré. Par défaut : ./data/templates
-u
, --url
: L'URL de base du webring. Quelque chose comme « https://example.com ».
-n
, --name
: Le nom du webring. Quelque chose comme « Ghostring ».
-d
, --description
: Une brève description/à propos du webring.
-m
, --maintainer
: Le propriétaire/mainteneur du webring peut être une personne ou une organisation.
-w
, --website
: Le lien vers le site Web du propriétaire du site Web, et non l'URL de base du site Web.
--skip-minification
: Affiche les pages sans les optimiser ni les modifier. Essayez ceci si vous souhaitez que vos fichiers générés soient modifiables manuellement ultérieurement ou si vous rencontrez des problèmes inattendus avec la sortie.
--skip-verification
: Génère des fichiers sans vérifier les problèmes potentiels... imprudent !
--dry-run
: exécute l'application sans générer aucun fichier
-s
, --shuffle
: Mélange aléatoirement l'ordre des sites Web lors de la génération. Ceci est totalement interne et n’affecte pas la liste d’entrée des sites Web ; vous pouvez mélanger le même webring à plusieurs reprises sans perdre la séquence originale.
-v
, --verbose
: Afficher les informations sur la console. -vv
pour un mode très détaillé pour voir encore plus d'informations.
-V
, --version
: Version imprimable
-A
, --audit
: Mode audit. Supprime chaque site Web de la liste, vérifiant si les liens suivant/précédent peuvent être trouvés. Sinon, le site ne sera pas ajouté au webring pour cette version. Cela signifie que vous n'êtes pas obligé de supprimer immédiatement les sites Web non conformes ; les sites n'apparaîtront tout simplement pas tant que les liens n'auront pas été trouvés. Si vous l'utilisez sans mode détaillé ( -v
), vous risquez de ne pas voir les résultats de l'audit. N'utilisez pas le mode audit si vous construisez le webring hors ligne ou si vous souhaitez la vitesse de construction la plus rapide possible.
-M
, --audit_retries_max
: En mode audit, nombre maximum de fois pour tenter de se reconnecter à un site. Par défaut : 2
-D
, --audit_retries_delay
: En mode audit, délai d'une milliseconde avant de tenter de se reconnecter à un site qui ne répond pas. Par défaut : 100
-U
, --client_user_agent
: En mode audit, chaîne d'agent utilisateur à utiliser par le web scraper.
-H
, --client_header
: En mode audit, chaîne d'en-tête à utiliser par le web scraper.
Par défaut, l'application enregistre uniquement les messages d'erreur. En passant -v
/ --verbose
(sur la ligne de commande) ou en définissant "verbose": true
(dans la configuration JSON), vous pouvez demander à l'application d'afficher les journaux de niveau d'avertissement. Pour afficher les journaux au niveau des informations, transmettez -vv
; pour le débogage, -vvv
.
Pour enregistrer ces journaux dans un fichier, vous pouvez rediriger la sortie standard et l'erreur standard vers un fichier lors de l'exécution de votre application. Par exemple:
$ ./ringfairy > log.txt 2>&1
Les modèles se trouvent par défaut dans le dossier ./data/templates
; ce chemin peut être spécifié avec l'argument de ligne de commande --templates
ou avec path_templates
dans le fichier de configuration.
Les modèles contiennent des balises qui seront remplacées par le contenu généré. Vous pouvez personnaliser les fichiers générés en ajoutant du contenu avant/après les balises. Le dépôt comprend des exemples de modèles de base pour vous aider à démarrer.
Dans le dossier des modèles, template.html
est utilisé pour générer chacune des pages next.html
/ previous.html
, contenant les redirections pour chaque site Web. La balise {{ url }}
est insérée par le générateur dans chaque page, et cela alimente le webring.
Outre template.html
, le dossier modèles peut contenir tous les autres modèles de votre choix.
Par exemple, c'est une bonne idée pour un webring d'avoir une page centrale répertoriant tous les sites. Vous pouvez mettre cela sur index.html
ou créer une page dédiée telle que list.html
, table.html
, etc. Utilisez simplement la balise {{ table_of_sites }}
dans le modèle et ringfairy
générera une liste formatée des sites dans la sangle.
Les balises suivantes sont actuellement utilisables dans les modèles :
{{ table_of_sites }}
produit un tableau HTML formaté répertoriant les informations pour tous les sites du webring.
{{ number_of_sites }}
affiche la taille actuelle du webring.
{{ current_time }}
affiche l'heure de génération, indiquant la date de la dernière mise à jour de la page.
{{ opml }}
insère le chemin relatif du fichier OPML de l'anneau.
{{ base_url }}
imprime l'URL principale du webring, telle que définie par l'utilisateur.
{{ ring_name }}
affiche le titre de la sangle.
{{ ring_description }}
affiche la description du webring en fonction des paramètres.
{{ ring_owner }}
affiche le nom du propriétaire du webring.
{{ ring_owner_site }}
imprime l'URL du site du propriétaire du webring.
{{ featured_site_name }}
imprime le nom du "site en vedette", qui est aléatoire.
{{ featured_site_description }}
imprime la description du site sélectionné aléatoirement.
{{ featured_site_url }}
imprime l'URL du site sélectionné aléatoirement.
À l'heure actuelle, {{ url }}
est une balise spéciale qui ne fonctionne que dans template.html
pour les liens suivant/précédent.
__ .-' | / <| / ' |_.- o-o / C -._) / ', | | `-,_,__,' (,,)====[_]=| '. ____/ | -|-|_ |____)_)
Les contributions sont les bienvenues ! Si vous avez des suggestions d'améliorations ou de nouvelles fonctionnalités, n'hésitez pas à ouvrir un problème ou à soumettre une pull request.