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 /codigopossui 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 maine 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.ymlpara ajustar a URL base
- Modifique assets/js/script.jsse 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!