Seu próprio encurtador de URL estático ⚡️
Geradores de sites estáticos, publicados nas páginas do Github, são bastante populares hoje em dia. Mas e quanto a um encurtador de URL estático (para não dizer gerador), que permite redirecionar URLs com base em arquivos estáticos?
Normalmente, os desenvolvedores acabam configurando um servidor com redirecionamentos para isso (não estaticamente). É aí que entra o URLZap. Ele gera URLs usando arquivos e magia HTML, permitindo aos usuários hospedar seus próprios redirecionamentos de URL nas páginas do Github.
Semelhante aos geradores de sites estáticos, mas para URLs
Mantenha seus URLs (abreviados ou não) com você
Pode ser usado com páginas do Github
Não há necessidade de executar um servidor ou configurar redirecionamentos HTTP 301
Projeto exemplo: brunoluiz/_
Você deve estar se perguntando: como isso é feito sem servidor? Bem, a resposta está em <meta http-equiv="refresh" />
. Funciona como código de status HTTP 301 (Redirecionamento), mas é feito no lado do cliente. Há um pouco mais de explicação no site w3c.
Com base em um config.yml
contendo o caminho e URL desejados, urlzap
criará arquivos index.html
que fazem uso de meta tags de atualização. Não é perfeito como HTTP 301, mas está bem próximo. Uma estratégia semelhante é usada por outros geradores de sites estáticos, como o Hugo.
Um exemplo seria:
caminho: './links' # o padrão é './'urls: google: https://google.com ferramentas:github: https://github.com
Cada chave no mapa será mapeada para rotas {.path param}/{key}
, redirecionando para {value}
. Isso geraria o seguinte:
- links/ - google/ - index.html (contains redirect) - tools/ - github/ - index.html (contains redirect)
Esses arquivos podem ser carregados em páginas do Github, por exemplo, não necessitando de nenhum servidor. Em brunoluiz/_
você pode ver um exemplo config.yml
e verificar a saída no branch gh-pages
Verifique a seção de lançamentos para mais detalhes de informações
Use brew
para instalá-lo
brew tap brunoluiz/tap brew install urlzap
Usando o exemplo YAML anterior:
caminho: './links' # o padrão é './'urls: google: https://google.com ferramentas:github: https://github.com
urls
: mapa de URL desejado, seguindo o padrão {key}:{redirect URL}
path
: caminho de saída
Para gerar os arquivos estáticos, execute urlzap generate
.
Muito provavelmente você acabará usando o Github Pages junto com esta ferramenta. Nesse caso, talvez a melhor maneira de usá-lo e colher seus benefícios seja por meio do Github Actions. Acesse brunoluiz/urlzap-github-action
para obter mais detalhes sobre como instalá-lo, abrangendo geração e implantação.
️ Pode ser necessário habilitar manualmente as páginas do Github em seu repositório! Mais detalhes no guia Github Pages
Se as ações do Github não forem para você, tente o seguinte processo manual.
Habilite as páginas do Github e configure o branch onde seus arquivos HTML estáticos estarão localizados. Mais detalhes no guia Github Pages
Configure seu config.yml
Confirmar e enviar para main
Faça check-out em sua ramificação Github Pages (geralmente gh-pages
) e execute git reset --hard origin/main
(isso redefinirá HEAD para master
)
Execute urlzap generate
Comprometa-se e empurre
O script a seguir segue o que está descrito nas etapas acima:
#!/bin/bash# adiciona, confirma e envia suas alteraçõesgit add config.yml git commit -m 'chore: update config.yml'git push -u origin main# faz com que o branch gh-pages seja igual ao maingit checkout gh-pages git reset --hard origin/main# generate filesurlzap generate# add, commit e push dos arquivos geradosgit add --all git commit -m 'chore: atualizar arquivos HTML'git push -u origin gh-pages --force