Imagina que você está lendo uma matéria muito interessante e logo no final, o autor disponibilizou alguns links com ajuda e outras matérias que poderiam complementar o assunto. Infelizmente alguns desses links não estão funcionando. Poxa, que frustração. Agora imagina que o autor em questão é você. Seu publico está frustrado e você também está, porque descobriu que outros links também estão com o mesmo problema.
Ao invés de caçar cada link quebrado, que tal automatizar esse processo? Você sabia que com a ajuda do Node.js podemos desenvolver um sistema que pode validar todos os links de um blog ou website? E melhor ainda, esse sistema já está pronto, basta instalar essa biblioteca no seu projeto e pronto, seus links serão checados!
- ver todos os nomes e acessar os links
- ver o nome, link e status code
- biblioteca Chalk: para ver os links e textos do terminal em outras cores. Facilitando a leitura.
- biblioteca fs
- Node.js v18
- Escrita em Regex - utilizando regex101
- CLI (Interface de Linha de Comando)
- Flags
- Shebang
- Tratar erros no terminal
- Como publicar uma lib no npm
lista validada texto.md [
{
FileList: 'https://developer.mozilla.org/pt-BR/docs/Web/API/FileList',
status: '200 - OK'
},
{
DataTransfer: 'https://developer.mozilla.org/pt-BR/docs/Web/API/DataTransfer',
status: '200 - OK'
},
{
HTMLCanvasElement: 'https://developer.mozilla.org/pt-BR/docs/Web/API/HTMLCanvasElement',
status: '200 - OK'
},
{
'Implementation notes': 'https://developer.mozilla.org/pt-BR/docs/Web/API/File#implementation_notes',
status: '200 - OK'
},
{
'Teste de retorno 400': 'https://httpstat.us/404',
status: '404 - Not Found'
},
{
'gatinho salsicha': 'http://gatinhosalsicha.com.br/',
status: 'link não encontrado'
}
]
- Comando para instalar a lib:
npm install -g lib_que_valida_links
ou
npm i lib_que_valida_links
- Comando para rodar o projeto:
npm run cli ./arquivos/ valida
✅ Na lib tem o exemplo de 2 arquivos em Markdown para teste.
https://www.npmjs.com/package/lib_que_valida_links
Sim!, o controle de versão do NPM (node package manager) segue um controle de versões semânticos, portanto, esse controle de versões tem 3 partes:
- Patch . Isso é incrementado quando é feita uma correção de bug que não quebra o código de consumo.
- Minor . Isso é incrementado quando são adicionados recursos que não quebram o código de consumo.
- Major . Isso é incrementado quando mudanças significativas são feitas.
Fiz 2 alterações na minha lib
Para estudar usei esse artigo: Major.Minor.Patch