Skip to content

biblioteca CLI criada para identificar e retornar links em Markdown

Notifications You must be signed in to change notification settings

moniyama/lib-md-link-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Markdown Link

Índice

1. Sobre

Essa biblioteca lê arquivos em linguagem de marcação Markdown e retorna as URLs dos links e seus respectivos textos.

  • É instalavel pelo terminal;
  • É executável na linha de comando;
  • Pode ser importada e utilizado no código;
  • Contém testes Jest

Funcionamento

Essa biblioteca utiliza o módulo File System do Node.js para ler o documento de interesse. Ao ler o arquivo, ela buscará expressões regulares (RegExp) para identificar e retornar as URLs e os respectivos textos em linguagem de marcação Markdown.

As expressões regulares podem ser definidas a partir da sintaxe do Markdown, que são brevemente descritas abaixo:

Há algumas maneiras para se criar um link nessa linguagem de marcação. Aqui, adotou-se o meio, no qual o texto linkado é escrito entre colchetes, seguida pela URL entre parenteses, conforme exemplo:

[Texto qualquer](https://anydomain)

Por exemplo:

Acesse o [Google](https://google.com)

é renderizado da seguinte forma:

Acesse o Google

Assim, segue alguns exemplos que essa biblioteca identifica:

Exemplos de Links Reconhecíveis

Link Padrão:

[(CommonJS)](https://nodejs.org/docs/latest-v0.10.x/api/modules.html)

Com dois links na mesma linha:

[fs](https://nodejs.org/api/fs.html), [path](https://nodejs.org/api/path.html)

Com quebra de linha:

[JavaScript assíncrono: callbacks, promises e async functions](https://medium.com/@alcidesqueiroz/javascript-ass%C3%ADncrono-callbacks-promises-e-async-functions-9191b8272298)

Imagens, Links com títulos e alguns padrões similares não são incluídos:

[1. Prefácio](#1-prefácio)

![md-links](https://user-images.githubusercontent.com/110297/42118443-b7a5f1f0-7bc8-11e8-96ad-9cc5593715a6.jpg)

[Duck Duck Go](https://duckduckgo.com "The best search engine for privacy")

2. Instalação e Uso

Instale pelo terminal

npm install -g moniyama/SAP003-md-links

Uso

Essa biblioteca pode ser executada diretamente do terminal ou pode ser importada para o seu código.

Terminal

É possivel executar através do comando:

md-links <caminho-do-arquivo>

Por exemplo:

md-links ./some/example.md

E os resultados serão exibidos no próprio terminal

$ md-links ./some/example.md
http://algo.com/2/3/ Link de algo
https://outra-coisa-.net/algum-doc.html algum doc
http://google.com/ Google

Se o texto linkado for longo, este será reduzido para 50 caracteres no máximo, para melhor visualização.

Diretamente no código

Outro modo de utilizar este módulo é importando com require, no qual o resultado será uma array contendo objetos com duas propriedades:

  • href: URL
  • text: Texto
const mdLinks = require("md-links");

mdLinks("./example.md")
  .then(links => {
    // => [{ href, text }]
  })
  .catch(console.error);

Tratativas de erros

Ao ler um arquivo:

  • Arquivo que não são da extensão ".md"
  • Arquivo não encontrado/existente
  • Arquivo sem conter links

Ao ler um diretório:

  • Diretório não encontrado/existente
  • Diretório sem arquivos de extensão ".md"

3. Roadmap

Atualmente, essa biblioteca apenas identifica os links presentes no documento Markdown. Para versões futuras, deseja-se implementar a validação dos links.

4. Versões

v1.0 : Versão lendo apenas arquivos Markdown

About

biblioteca CLI criada para identificar e retornar links em Markdown

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published