md-links-solg v1.4.2
Markdown Links
Preámbulo
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, que lea y analice archivos
en formato Markdown
, para verificar los links que contengan y reportar
algunas estadísticas.
Objetivo del proyecto
Desarrollar una libreria funcional que se capaz de retornar los links que se encuentran dentro de un archivo markdown y validar aquellos que aun funcionan o no desde la línea de comandos o como una API en un archivo JavaScript requiriendola como módulo. La estadísticas tambien forman parte de los resultados a obtener en este proyecto.
Instalación
- Tener instalado nodejs
- Abrir la terminal en tu computadora.
- Posicionarte en la carpeta del proyecto que quieras analizar.
- Pegar el siguiente comando en terminal:
npm install md-links-solg
Manera Global
npm install -g md-links-solg
¿Cómo se usa?
md-links-solg puede ser ejecutado desde la terminal o partiendo de una archivo de JavaScript.
Desde terminal
- Tener instalado
md-links-solg
- Teclear en terminal
sol-md-links
+ Enter - Para saber cuales links aun estan vigentes agrega la flag
--validate
:
sol-md-links README.md --validate
Esto retornara un listado de los links con su estatus 'OK' o 'FAIL', además de contener los enunciados con los links que ya no funcionan.
- Para saber cuantos links son, agrega la flag
--stats
:
sol-md-links README.md --stats
Esto retornara el total de links, y cuantos de ellos son no se repiten.
- Si deseas saber cuantos links estan "rotos" deberas incluir ambas banderas.
sol-md-links README.md --stats --validate
Esto retornara el total de links, cuantos de ellos son no se repiten y cuantos estan rotos.
API
- Tener instalado
md-links-solg
- Requerirla desde:
const mdLinks: require(md-links-solg) mdLinks('./README.md');
- El resultado aparecera en la terminal
- Para incluir las opciones (flag)
const mdLinks: require(md-links-solg)
mdLinks('./README.md', {validate: true});
Plan de acción
GitHub
- Forkear y clonar repositorio de Laboratoria
- Instalar dependencias (jest,eslint)
- Revisar la documentación sugerida para resolver el proyecto.
NPM
- Crear una cuenta en NPM.
- Crear archivo package.json desde
npm init
- Vincular proyecto con NPM.
- Versionar archivo package.json.
- Subir archivos a NPM.
Elegir librería
- (Markdown-it)https://github.com/markdown-it/markdown-it
Modulos
- index.js -> Función maestra
- stats.js -> Función de estadística de los links
- validate.js -> Función para revisar la vigencia de los links
- md.js -> Función que detecta si es un archivo .md
- readMD.js -> Función que recorre un archivo .md
- statsvalidate.js -> Función que añade los links que estan rotos a la estadística
- filterFile.js -> Función que analiza y guarda los links que hay en un archivo .md
Test
index.js
- Test que compruebe que si sea una función.
- Test que ejecute la función (sin parámetros).
- Test que consolee el resultado si recibe una ruta sin archivo MD.
- Test que consolee el resultado en caso de que el archivo MD no contenga links.
- [] Test que ejecute la función con un solo parámetro (validate).
- [] Test que ejecute la función con un solo parámetro (stats).
- [] Test que ejecute la función con dos parametros (path y validate).
readfile.js
- [] Test que compruebe que es una función.
- [] Test que revise que lo que retorna es una string.
md.js
- [] Test que compruebe que si sea una función.
- [] Test que retorne true al recibir un archivo MD.
- [] Test que retorne false al recibir un archivo que sea TXT.
filterFile.js
- [] Test que compruebe que si sea una función.
- [] Test que revisa que pasa si recibe un archivo sin links.
- [] Test que revisa que pasa si recibe un archivo con puros links.
- [] Test que revisa que pasa si recibe un archivo con links y texto variado.
validate.js
- [] Test que compruebe que si sea una función.
- [] Test que pase un arreglo de links no rotos revisar su retorno de ok.
- [] Test que pase un arreglo de links rotos y no rotos, revisar que su retorno sea ok o fail.
- [] Test que pase un arreglo de links rotos revisar que su retorno sea fail.
stats.js
- [] Test que compruebe que si sea una función.
- [] Test que pase un arreglo de links no rotos revisar y que regrese el total de los links.
- [] Test que pase un arreglo de links rotos y no rotos que regrese el total de los links de c/u.
[] Test que pase un arreglo de links rotos y que regrese el total de los links rotos.
statsvalidate.js
[] Test que compruebe que si sea una función.
- [] Test que comprueba el total de links rotos.
Diagrama de flujo
Autores
Solanyi Sandoval