# taphie-md-links

> ## Preámbulo

Latest version **0.1.0** (published 2019-04-30) · 0 weekly downloads

## Install

```sh
npm install taphie-md-links
pnpm add taphie-md-links
yarn add taphie-md-links
bun add taphie-md-links
```

Provides the command `md-links`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2019-04-30 |
| First published | 2019-04-30 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 279.5 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Maintainers | taphiem |

## Links

- npm: https://www.npmjs.com/package/taphie-md-links
- npm.io page: https://npm.io/package/taphie-md-links

## Dependencies (6)

- [jest](https://npm.io/package/jest.md) ^24.7.1
- [link](https://npm.io/package/link.md) ^0.1.5
- [user](https://npm.io/package/user.md) 0.0.0
- [filehound](https://npm.io/package/filehound.md) ^1.17.0
- [node-fetch](https://npm.io/package/node-fetch.md) ^2.3.0
- [markdown-link-extractor](https://npm.io/package/markdown-link-extractor.md) ^1.2.0

## Recent versions

- 0.1.0 (latest) — 2019-04-30

## README

# Markdown Links

## Preámbulo

[Markdown](https://es.wikipedia.org/wiki/Markdown) es un lenguaje de marcado
ligero muy popular entre developers. Es usado en muchísimas plataformas que
manejan texto plano (GitHub, foros, blogs, ...), y es muy común
encontrar varios archivos en ese formato en cualquier tipo de repositorio
(empezando por el tradicional `README.md`).

Estos archivos `Markdown` normalmente contienen _links_ (vínculos/ligas) que
muchas veces están rotos o ya no son válidos y eso perjudica mucho el valor de
la información que se quiere compartir.

Dentro de una comunidad de código abierto, nos han propuesto crear una
herramienta usando [Node.js](https://nodejs.org/), que lea y analice archivos
en formato `Markdown`, para verificar los links que contengan y reportar
algunas estadísticas.


## Diagrama de Flujo

![alt-texr](Images/Diagrama-Flujo-mdLinks.png)


### Documentación ténica de la librería
Las herramientas y dependencias implementadas para la construcción de esta Librería fueron las siguientes:

| **Lenguaje**
| ------------------------------
| JavaScript ECMAScript 6
| **Ejecución**
| Node  
| **Dependencias y módulos NPM**
| File System
| node-Fetch
| Path
| markdown-link-extractor
| **Testing**
| Jest


## Instalación de la librería

Podemos instalar directamente desde GitHub con el comando:

`npm install taphie-md-links`

Sí se quiere implementar globalmente. Puede instalarse via:

`npm install --global taphie-md-links`

ó

`npm i --global taphie-md-links`

Este módulo incluye ejecutable y una interfaz que podamos importar con require para usarlo programáticamente.

### Guía de uso
**CLI (Command Line Interface - Interfaz de Línea de Comando)**

El ejecutable de nuestra aplicación debe poder ejecutarse de la siguiente
manera a través de la terminal:

`md-links <path-to-file> [options]`

Ejemplo:

![alt-texr](Images/first-command.png)

Resultado:

![alt-texr](Images/result.png)

El comportamiento por defecto no valida si las URLs responden ok o no, solo debe identifica el archivo markdown (a partir de la ruta que recibe como argumento), analizar el archivo Markdown e imprimir los links que vaya encontrando, junto con la ruta del archivo donde aparece y el texto que hay dentro del link (truncado a 50 caracteres).


#### Options

##### `--validate`

Si pasamos la opción `--validate`, el módulo debe hacer una petición HTTP para
averiguar si el link funciona o no. Si el link resulta en una redirección a una
URL que responde ok, entonces consideraremos el link como ok.

Ejemplo:

![alt-texr](Images/commad-validate.png)

Resultado:

![alt-texr](Images/result-validate.png)

Vemos que el _output_ en este caso incluye la el código del estatus de
la URL, así como un texto que indica la respuesta recibida a la petición HTTP a dicha
URL.

**Para esta primera versión solo esta implemnetada la opción validate, sin embargo en futuras versiónes se espera agregar la opción stats. A continuación se explica la funcionabilidad que se espera obtener de esta.**

##### `--stats`

Si pasamos la opción `--stats` el output (salida) será un texto con estadísticas
básicas sobre los links.

```sh
$ md-links ./some/example.md --stats
Total: 3
Unique: 3
```

También podemos combinar `--stats` y `--validate` para obtener estadísticas que
necesiten de los resultados de la validación.

```sh
$ md-links ./some/example.md --stats --validate
Total: 3
Unique: 3
Broken: 1
```

#### Autor
Stephanie Mayen

---
_Source: https://npm.io/package/taphie-md-links · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
