1.0.0 • Published 4 years ago

@paolataboada/md-links v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

Markdown Links

Índice


1. Preámbulo

Markdown es un lenguaje de marcado ligero muy popular entre developers. Es usado en muchísimas plataformas que manejan texto plano y es muy común encontrar varios archivos en ese formato en cualquier tipo de repositorio.

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.

2. Resumen del proyecto

Se desarrolló una librería a partir de NodeJS, con la cual es posible leer y analizar archivos en formato Markdown, para verificar los links que contienen y reportar algunas estadísticas tales como su status code solicitado a través de una petición HTTP.

La librería y el script ejecutable (herramienta de línea de comando - CLI) han sido implementados en JavaScript para ser ejecutados con Node.js.

3. Objetivos de aprendizaje

JavaScript

  • Diferenciar entre tipos de datos primitivos y no primitivos

  • Arrays (arreglos)

  • Objetos (key, value)

  • Uso de condicionales (if-else, switch, operador ternario, lógica booleana)

  • Funciones (params, args, return)

  • Recursión o recursividad

  • Módulos de CommonJS

  • Diferenciar entre expresiones (expressions) y sentencias (statements)

  • Callbacks

  • Promesas

  • Pruebas unitarias (unit tests)

  • Pruebas asíncronas

  • Uso de mocks y espías

  • Pruebas de compatibilidad en múltiples entornos de ejecución

  • Uso de linter (ESLINT)

  • Uso de identificadores descriptivos (Nomenclatura y Semántica)

Node.js

  • Instalar y usar módulos con npm

  • Configuración de package.json

  • Configuración de npm-scripts

  • process (env, argv)

  • File system (fs, path)

Control de Versiones (Git y GitHub)

  • Git: Instalación y configuración

  • Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)

  • Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)

  • GitHub: Creación de cuenta y repos, configuración de llaves SSH

  • GitHub: Despliegue con GitHub Pages

  • GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)

  • GitHub: Organización en Github (projects | issues | labels | milestones | releases)

HTTP

  • Consulta o petición (request) y respuesta (response).

  • Codigos de status de HTTP

4. Diagrama de Flujo del Proyecto

API

Flowchart CLI

CLI

Flowchart CLI

5. Instalación y uso

El módulo es instalable vía npm install @paolataboada/md-links. Este módulo incluye tanto un ejecutable como una interfaz que se puede importar con require para usarlo programáticamente.

El ejecutable de la aplicación se ejecuta de la siguiente manera a través de la terminal:

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

Por ejemplo:

$ md-links ./some/example.md
./some/example.md http://algo.com/2/3/ Link a algo
./some/example.md https://otra-cosa.net/algun-doc.html algún doc
./some/example.md http://google.com/ Google

El comportamiento por defecto identifica el archivo markdown (a partir de la ruta que recibe como argumento), analiza el archivo Markdown e imprime los links que ha 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 hace 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 se mostrará una respuesta de éxito: ok.

Por ejemplo:

$ md-links ./some/example.md --validate
./some/example.md http://algo.com/2/3/ ok 200 Link a algo
./some/example.md https://otra-cosa.net/algun-doc.html fail 404 algún doc
./some/example.md http://google.com/ ok 301 Google
--stats

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

$ 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.

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

Si pasamos la opción --help se mostrará el conjunto de opciones válidas permitidas en la terminal.

$ md-links ./some/example.md --help
  Tal vez quisiste decir...
    --validate
    --stats
    --validate --stats
    --stats --validate

6. Autora