ringfairy
?Este é um gerador webring escrito em Rust. É semelhante a um gerador de sites estáticos, mas especializado em webrings.
Ao contrário da maioria dos webrings que dependem de algum tipo de código do lado do servidor (por exemplo, PHP, JS) para redirecionar visitantes, esta abordagem usa redirecionamentos HTML.
A abordagem estática permite requisitos de hospedagem mais simples (pode ser hospedado em Neocities, GitHub Pages, etc), pois elimina a necessidade de processamento no servidor.
Atualizar o webring exigirá que você regenere tudo. Isso é rápido e simples e não precisa ser feito com frequência. Mas é uma etapa extra que os sistemas convencionais do lado do servidor podem não ter, a menos que você a automatize, como por meio do GitHub Actions.
Um webring é uma coleção de sites vinculados em um loop. Cada site contém links para os sites anteriores e seguintes do ringue. Se você navegar longe o suficiente, acabará voltando ao ponto de partida!
Os webrings eram populares nos primeiros dias da Internet como uma forma de os proprietários de sites promoverem o conteúdo uns dos outros e incentivarem o envolvimento da comunidade.
Esta é uma ferramenta para quem possui algum tipo de site ou blog pessoal e deseja se conectar com outras pessoas. Você pode usá-lo para desenvolver sua própria comunidade online do zero!
Altamente otimizado
Detectar automaticamente links de webring em sites
Totalmente personalizável através de modelos
Gera um arquivo OPML com todos os sites que possuem feed RSS
Escolha de interface de linha de comando ou arquivo de configuração
Suporte a arquivos de configuração remota também
Opção aleatória
Minificação de HTML
Vincular automaticamente as informações de contato do proprietário do site
Captura entradas duplicadas
Registro detalhado
Webrings usando ringfairy
(até onde eu sei):
Ghostring – sites temáticos de terror
Craftering - para a comunidade System Crafters
Roboring – para seres robóticos
Se você decidir lançar seu próprio webring com esta ferramenta, me avise e eu listarei aqui! :)
Baixe um binário de lançamento OU clone o repositório e construa a partir do código-fonte.
Modifique o arquivo websites.json
(por padrão) para incluir os detalhes dos sites que você deseja incluir no webring. Cada site deve ser adicionado à lista.
Modifique o arquivo config.json
(por padrão) de acordo com suas necessidades.
(Opcional) Personalize páginas modificando os modelos, localizados na pasta data/templates
(por padrão). Você também pode usar arquivos remotos como modelos. Consulte a seção "Modelos" abaixo.
(Opcional) Adicione quaisquer arquivos adicionais à pasta data/assets
(por padrão). Tudo nesta pasta será simplesmente copiado para o diretório de saída. Aqui você pode adicionar extras como imagens, HTML/CSS, etc.
Execute ringfairy
para gerar o webring gravando arquivos HTML contendo os redirecionamentos. Cada site terá um link para o site seguinte/anterior no arquivo websites.json
, formando seu webring!
Hospede os arquivos gerados em sua plataforma de hospedagem preferida.
Os argumentos da linha de comando têm precedência sobre quaisquer configurações no arquivo de configuração.
-h
, --help
: Imprime ajuda
-c
, --config
: Especifique o local do arquivo de configuração opcional. Pode ser remoto; por exemplo, um link HTTP para um arquivo JSON apropriado no Pastebin, GitHub, etc.
-l
, --list
: Especifique o arquivo que contém a lista de sites. Padrão: ./websites.json
-o
, --output
: Define a pasta de saída, onde os arquivos gerados serão salvos. Padrão: ./webring
-a
, --assets
: Especifique a pasta de ativos. Todos os arquivos aqui serão copiados para a pasta de saída. Isso permite incluir quaisquer arquivos extras desejados, como imagens ou páginas extras da web, etc. Padrão: ./data/assets
-t
, --templates
: Especifique o caminho para a pasta do modelo. Use template.html
para páginas de redirecionamento (ou seja, o HTML que compõe o webring). Quaisquer páginas extras podem ser adicionadas aqui se você quiser que sejam preenchidas com conteúdo gerado. Padrão: ./data/templates
-u
, --url
: O URL base do webring. Algo como 'https://example.com'.
-n
, --name
: O nome do webring. Algo como 'Ghosting'.
-d
, --description
: Uma breve descrição/sobre o webring.
-m
, --maintainer
: O proprietário/mantenedor do webring pode ser uma pessoa ou uma organização.
-w
, --website
: O link do site do proprietário do site, não o URL base do webring.
--skip-minification
: gera páginas sem otimizá-las ou modificá-las. Tente fazer isso se quiser que seus arquivos gerados possam ser editados manualmente posteriormente ou se tiver algum problema inesperado com a saída.
--skip-verification
: Gera arquivos sem verificar possíveis problemas... imprudente!
--dry-run
: executa o aplicativo sem gerar nenhum arquivo
-s
, --shuffle
: embaralha aleatoriamente a ordem dos sites durante a geração. Isto é totalmente interno e não afeta a lista de entrada dos sites; você pode embaralhar o mesmo webring repetidamente sem perder a sequência original.
-v
, --verbose
: envia informações para o console. -vv
para modo muito detalhado para ver ainda mais informações.
-V
, --version
: versão impressa
-A
, --audit
: modo de auditoria. Raspa cada site da lista, verificando se os links seguintes/anteriores podem ser encontrados. Caso contrário, o site não será adicionado ao webring dessa compilação. Isso significa que você não precisa remover imediatamente sites não compatíveis; os sites simplesmente não aparecerão até que os links possam ser encontrados. Se você usar isso sem o modo detalhado ( -v
), poderá não ver os resultados da auditoria. Não use o modo de auditoria se estiver construindo o webring offline ou se quiser a velocidade de construção mais rápida possível.
-M
, --audit_retries_max
: No modo de auditoria, número máximo de vezes para tentar se reconectar a um site. Padrão: 2
-D
, --audit_retries_delay
: No modo de auditoria, atraso de milissegundos antes de tentar se reconectar a um site que não responde. Padrão: 100
-U
, --client_user_agent
: No modo de auditoria, string do agente do usuário a ser usada pelo web scraper.
-H
, --client_header
: No modo de auditoria, string de cabeçalho a ser usada pelo web scraper.
Por padrão, o aplicativo registra apenas mensagens de erro. Ao passar -v
/ --verbose
(na linha de comando) ou definir "verbose": true
(no JSON de configuração), você pode instruir o aplicativo a mostrar logs de nível de aviso. Para mostrar logs de nível de informação, passe -vv
; para depuração, -vvv
.
Para salvar esses logs em um arquivo, você pode redirecionar a saída padrão e o erro padrão para um arquivo ao executar seu aplicativo. Por exemplo:
$ ./ringfairy > log.txt 2>&1
Os modelos estão localizados na pasta ./data/templates
por padrão; este caminho pode ser especificado com o argumento de linha de comando --templates
ou com path_templates
no arquivo de configuração.
Os modelos contêm tags que serão substituídas pelo conteúdo gerado. Você pode personalizar os arquivos gerados adicionando conteúdo antes/depois das tags. O repositório inclui exemplos de modelos básicos para você começar.
Na pasta templates, template.html
é utilizado para gerar cada uma das páginas next.html
/ previous.html
, contendo os redirecionamentos para cada site. A tag {{ url }}
é inserida pelo gerador em cada página e alimenta o webring.
Além de template.html
, a pasta de modelos pode conter quaisquer outros modelos que você desejar.
Por exemplo, é uma boa ideia que um webring tenha uma página central listando todos os sites. Você pode colocar isso em index.html
ou criar uma página dedicada, como list.html
, table.html
, etc. Basta usar a tag {{ table_of_sites }}
no modelo e ringfairy
irá gerar uma lista formatada dos sites em o webring.
As tags a seguir podem ser usadas atualmente em modelos:
{{ table_of_sites }}
produz uma tabela HTML formatada listando informações para todos os sites no webring.
{{ number_of_sites }}
mostra o tamanho atual do webring.
{{ current_time }}
exibe o horário de geração, mostrando quando a página foi atualizada pela última vez.
{{ opml }}
insere o caminho relativo do arquivo OPML do anel.
{{ base_url }}
imprime o URL principal do webring, conforme definido pelo usuário.
{{ ring_name }}
exibe o título do webring.
{{ ring_description }}
mostra a descrição do webring de acordo com as configurações.
{{ ring_owner }}
mostra o nome do proprietário do webring.
{{ ring_owner_site }}
imprime o URL do site do proprietário do webring.
{{ featured_site_name }}
imprime o nome do "site em destaque", que é aleatório.
{{ featured_site_description }}
imprime a descrição do site em destaque aleatório.
{{ featured_site_url }}
imprime o URL do site aleatório em destaque.
No momento, {{ url }}
é uma tag especial que só funciona em template.html
para os links seguintes/anteriores.
__ .-' | / <| / ' |_.- o-o / C -._) / ', | | `-,_,__,' (,,)====[_]=| '. ____/ | -|-|_ |____)_)
Contribuições são bem-vindas! Se você tiver alguma sugestão de melhorias ou novos recursos, sinta-se à vontade para abrir um problema ou enviar uma solicitação pull.