Um encurtador de URL simples, gratuito e open source que funciona inteiramente no GitHub Pages com Jekyll. Agora com processamento server-side para redirecionamentos mais rápidos e confiáveis.
- Gratuito e Open Source: Licenciado sob Apache 2.0
- Processamento Server-Side: Jekyll gera páginas de redirecionamento individuais para cada URL
- Compatível com GitHub Pages: Build automático com Jekyll
- Interface em Português: Interface limpa e intuitiva
- QR Code automático: Gera QR codes para URLs encurtadas
- Histórico local: Mantém histórico das URLs encurtadas no navegador
- Responsivo: Funciona em desktop e mobile
- URLs personalizadas: Gera códigos aleatórios de 6 caracteres
- Redirecionamento rápido: Usa meta-refresh e JavaScript para redirecionamento imediato
- Estatísticas básicas: Contador de cliques para cada URL
- Adição de URLs: URLs são adicionadas manualmente editando
data/urls.json
- Build Process: Jekyll lê o arquivo JSON e gera páginas individuais para cada código curto
- Redirecionamento: Cada
/codigo
possui sua própria página HTML com redirecionamento automático - Interface: A página principal permite gerar instruções para novas URLs
- Ruby 3.0+
- Jekyll 4.0+
- Git
- Clone o repositório:
git clone https://github.com/openviglet/shortener.git
cd shortener
- Instale as dependências:
bundle install
- Execute o Jekyll:
bundle exec jekyll serve
- Acesse
http://localhost:4000/shortener/
- Faça fork deste repositório
- Vá em Settings → Pages
- Selecione "Deploy from a branch"
- Escolha a branch
main
e pasta/ (root)
- Clique em "Save"
- Sua URL será:
https://seuusuario.github.io/shortener
O GitHub Actions irá automaticamente:
- Instalar Ruby e Jekyll
- Executar
bundle install
- Executar
bundle exec jekyll build
- Publicar os arquivos gerados
- Edite
_config.yml
para ajustar a URL base - Modifique
assets/js/script.js
se necessário para URLs personalizadas - Faça commit e push das alterações
shortener/
├── _layouts/ # Layouts Jekyll
│ ├── default.html # Layout principal
│ └── redirect.html # Layout para páginas de redirecionamento
├── _plugins/ # Plugins Jekyll
│ └── url_generator.rb # Gerador de páginas de redirecionamento
├── assets/js/ # JavaScript assets
│ └── script.js # Lógica JavaScript principal
├── data/ # Dados das URLs
│ ├── urls.json # Arquivo JSON com URLs encurtadas
│ └── README.md # Documentação dos dados
├── index.html # Página principal
├── styles.css # Estilos CSS
├── _config.yml # Configuração Jekyll
├── Gemfile # Dependências Ruby
├── README.md # Documentação
└── LICENSE # Licença Apache 2.0
- Jekyll 4.0+: Gerador de sites estáticos
- Ruby: Linguagem de programação para plugins Jekyll
- HTML5: Estrutura semântica
- CSS3: Estilos responsivos com Flexbox/Grid
- JavaScript ES6+: Lógica de negócio no cliente
- QRCode.js: Geração de QR codes
- GitHub Pages: Hospedagem gratuita com build automático
- GitHub Actions: CI/CD para build e deploy
Edite as variáveis CSS em styles.css
:
:root {
--primary-color: #667eea;
--secondary-color: #764ba2;
}
Edite script.js
na linha da propriedade baseUrl
:
this.baseUrl = 'https://seudominio.com/';
Modifique a função generateShortCode()
em script.js
:
for (let i = 0; i < 8; i++) { // Altere 6 para 8 para códigos mais longos
- URLs são armazenadas no localStorage do navegador
- Dados são específicos por domínio/navegador
- Limite do localStorage: ~5-10MB por domínio
- Adequado para uso pessoal/pequeno
- Para uso empresarial, considere soluções com backend
- Não valida conteúdo das URLs de destino
- URLs maliciosas podem ser encurtadas
- Implemente validação adicional se necessário
Contribuições são bem-vindas! Para contribuir:
- Faça fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature
) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature'
) - Push para a branch (
git push origin feature/AmazingFeature
) - Abra um Pull Request
- Sistema de expiração de URLs
- Estatísticas mais detalhadas
- Integração com APIs de QR code
- Temas personalizáveis
- Importação/exportação de dados
- PWA (Progressive Web App)
- Análise de URLs maliciosas
Este projeto está licenciado sob a Licença Apache 2.0 - veja o arquivo LICENSE para detalhes.
- OpenViglet Team - GitHub
- QRCode.js - Geração de QR codes
- GitHub Pages - Hospedagem gratuita
- Comunidade open source
⭐ Se este projeto foi útil, considere dar uma estrela no GitHub!