ringfairy
?Este es un generador de webring escrito en Rust. Es similar a un generador de sitios estáticos, pero especializado para webrings.
A diferencia de la mayoría de los webrings que se basan en algún tipo de código del lado del servidor (por ejemplo, PHP, JS) para redirigir a los visitantes, este enfoque utiliza redireccionamientos HTML.
El enfoque estático permite requisitos de alojamiento más simples (puede alojarse en Neocities, páginas de GitHub, etc.), ya que elimina la necesidad de procesamiento del lado del servidor.
Para actualizar el webring será necesario regenerarlo todo. Esto es rápido y sencillo y no debería ser necesario hacerlo con frecuencia. Pero es un paso adicional que los sistemas convencionales del lado del servidor podrían no tener, a menos que lo automatices, como a través de GitHub Actions.
Un webring es una colección de sitios web vinculados entre sí en un bucle. Cada sitio web contiene enlaces a los sitios web anteriores y siguientes del anillo. Si navegas lo suficientemente lejos, eventualmente terminarás donde empezaste.
Los webrings eran populares en los primeros días de Internet como una forma para que los propietarios de sitios web promocionaran el contenido de los demás y fomentaran la participación de la comunidad.
Esta es una herramienta para cualquiera que tenga algún tipo de sitio web o blog personal y desee conectarse con otros. ¡Puedes usarlo para hacer crecer tu propia comunidad en línea desde cero!
Altamente optimizado
Detección automática de enlaces webring en sitios
Totalmente personalizable mediante plantillas
Genera un archivo OPML con todos los sitios que tienen un feed RSS
Elección de interfaz de línea de comandos o archivo de configuración
También admite archivos de configuración remota
Opción aleatoria
Minificación HTML
Información de contacto del propietario del sitio web con vínculo automático
Captura entradas duplicadas
Registro detallado
Webrings usando ringfairy
(hasta donde yo sé):
Ghostring - sitios con temática de terror
Craftering - para la comunidad System Crafters
Roboring - para seres robóticos
Si decides lanzar tu propio webring con esta herramienta, ¡avísame y lo incluiré aquí! :)
Descargue un binario de lanzamiento O clone el repositorio y compílelo desde la fuente.
Modifique el archivo websites.json
(por defecto) para incluir los detalles de los sitios web que desea incluir en el webring. Cada sitio web debe agregarse a la lista.
Modifique el archivo config.json
(por defecto) según sus necesidades.
(Opcional) Personalice las páginas modificando las plantillas, ubicadas en la carpeta data/templates
(de forma predeterminada). También puede utilizar archivos remotos como plantillas. Consulte la sección "Plantillas" a continuación.
(Opcional) Agregue cualquier archivo adicional a la carpeta data/assets
(de forma predeterminada). Todo lo que haya en esta carpeta simplemente se copiará en el directorio de salida. Aquí puedes agregar extras como imágenes, HTML/CSS, etc.
Ejecute ringfairy
para generar el webring escribiendo archivos HTML que contengan las redirecciones. Cada sitio se vinculará al sitio siguiente/anterior en el archivo websites.json
, formando su anillo web.
Aloje los archivos generados en su plataforma de alojamiento preferida.
Los argumentos de la línea de comandos tienen prioridad sobre cualquier configuración en el archivo de configuración.
-h
, --help
: Imprimir ayuda
-c
, --config
: especifica la ubicación del archivo de configuración opcional. Puede ser remoto; por ejemplo, un enlace HTTP a un archivo JSON apropiado en Pastebin, GitHub, etc.
-l
, --list
: especifica el archivo que contiene la lista de sitios web. Valor predeterminado: ./websites.json
-o
, --output
: define la carpeta de salida, donde se guardarán los archivos generados. Predeterminado: ./webring
-a
, --assets
: especifica la carpeta de activos. Cualquier archivo aquí se copiará a la carpeta de salida. Esto le permite incluir cualquier archivo adicional que desee, como imágenes o páginas web adicionales, etc. Valor predeterminado: ./data/assets
-t
, --templates
: especifica la ruta a la carpeta de la plantilla. Utilice template.html
para redirigir páginas (es decir, el HTML que compone el anillo web). Se pueden agregar páginas adicionales aquí si desea que se completen con contenido generado. Valor predeterminado: ./data/templates
-u
, --url
: la URL base del anillo web. Algo así como 'https://example.com'.
-n
, --name
: el nombre del anillo web. Algo así como 'Ghostring'.
-d
, --description
: una breve descripción/sobre el anillo web.
-m
, --maintainer
: El propietario/mantenedor del webring, podría ser una persona o una organización.
-w
, --website
: el enlace al sitio web del propietario del sitio web, no la URL base del webring.
--skip-minification
: genera páginas sin optimizarlas ni modificarlas. Pruebe esto si desea que los archivos generados se puedan editar manualmente más adelante o si experimenta algún problema inesperado con la salida.
--skip-verification
: Genera archivos sin comprobar posibles problemas... ¡imprudente!
--dry-run
: ejecuta la aplicación sin generar ningún archivo
-s
, --shuffle
: mezcla aleatoriamente el orden de los sitios web durante la generación. Esto es totalmente interno y no afecta la lista de entrada de sitios web; puedes mezclar el mismo webring repetidamente sin perder la secuencia original.
-v
, --verbose
: envía información a la consola. -vv
para modo muy detallado para ver aún más información.
-V
, --version
: versión impresa
-A
, --audit
: Modo auditoría. Raspa cada sitio web de la lista y comprueba si se pueden encontrar los enlaces siguiente/anterior. De lo contrario, el sitio no se agregará al webring para esa compilación. Esto significa que no es necesario eliminar inmediatamente los sitios web que no cumplen con las normas; los sitios simplemente no aparecerán hasta que se puedan encontrar los enlaces. Si usa esto sin el modo detallado ( -v
), es posible que no vea los resultados de la auditoría. No utilice el modo de auditoría si está creando el webring sin conexión o si desea la velocidad de construcción más rápida posible.
-M
, --audit_retries_max
: en modo auditoría, número máximo de veces para intentar volver a conectarse a un sitio. Predeterminado: 2
-D
, --audit_retries_delay
: en modo auditoría, retraso de milisegundos antes de intentar volver a conectarse a un sitio que no responde. Predeterminado: 100
-U
, --client_user_agent
: en modo auditoría, cadena de agente de usuario que utilizará el web scraper.
-H
, --client_header
: en modo auditoría, cadena de encabezado que utilizará el web scraper.
De forma predeterminada, la aplicación solo registra mensajes de error. Al pasar -v
/ --verbose
(en la línea de comando) o configurar "verbose": true
(en la configuración JSON), puede indicarle a la aplicación que muestre registros de nivel de advertencia. Para mostrar registros de nivel de información, pase -vv
; para depurar, -vvv
.
Para guardar estos registros en un archivo, puede redirigir la salida estándar y el error estándar a un archivo cuando ejecute su aplicación. Por ejemplo:
$ ./ringfairy > log.txt 2>&1
Las plantillas se encuentran en la carpeta ./data/templates
de forma predeterminada; esta ruta se puede especificar con el argumento de la línea de comandos --templates
o con path_templates
en el archivo de configuración.
Las plantillas contienen etiquetas que serán reemplazadas por el contenido generado. Puede personalizar los archivos generados agregando contenido antes/después de las etiquetas. El repositorio incluye ejemplos de plantillas básicas para que pueda comenzar.
En la carpeta de plantillas, template.html
se utiliza para generar cada una de las páginas next.html
/ previous.html
, que contienen las redirecciones para cada sitio web. El generador inserta la etiqueta {{ url }}
en cada página y eso alimenta el webring.
Además de template.html
, la carpeta de plantillas puede contener cualquier otra plantilla que desee.
Por ejemplo, es una buena idea que un webring tenga una página central que enumere todos los sitios. Puede poner esto en index.html
o crear una página dedicada como list.html
, table.html
, etc. Simplemente use la etiqueta {{ table_of_sites }}
en la plantilla y ringfairy
generará una lista formateada de los sitios en el anillo web.
Actualmente, las siguientes etiquetas se pueden utilizar en plantillas:
{{ table_of_sites }}
produce una tabla HTML formateada que enumera información para todos los sitios en el webring.
{{ number_of_sites }}
muestra el tamaño actual del webring.
{{ current_time }}
muestra la hora de generación y muestra cuándo se actualizó la página por última vez.
{{ opml }}
inserta la ruta relativa del archivo OPML del anillo.
{{ base_url }}
imprime la URL principal del webring, según lo establecido por el usuario.
{{ ring_name }}
muestra el título del webring.
{{ ring_description }}
muestra la descripción del webring según la configuración.
{{ ring_owner }}
muestra el nombre del propietario del webring.
{{ ring_owner_site }}
imprime la URL del sitio del propietario del webring.
{{ featured_site_name }}
imprime el nombre del "sitio destacado", que es aleatorio.
{{ featured_site_description }}
imprime la descripción del sitio destacado aleatorio.
{{ featured_site_url }}
imprime la URL del sitio destacado aleatorio.
En este momento, {{ url }}
es una etiqueta especial que solo funciona en template.html
para los enlaces siguientes/anteriores.
__ .-' | / <| / ' |_.- o-o / C -._) / ', | | `-,_,__,' (,,)====[_]=| '. ____/ | -|-|_ |____)_)
¡Las contribuciones son bienvenidas! Si tiene alguna sugerencia para mejoras o nuevas funciones, no dude en abrir un problema o enviar una solicitud de extracción.