Creado originalmente por John Gruber, con ayuda de Aaron Swartz en 2004, Markdown es un lenguaje de marcado que facilita la aplicación de formato a un texto plano empleando una serie de caracteres de una forma especial. Con formato nos referimos a itálicas, negritas, listas, encabezados, citas, código en línea o en bloque, vínculos y más.
Para ver formatos completo Click aquí
Markdown es muy utilizado en plataformas como GitHub, foros, blogs como también para crear documentación 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.
Dentro de una comunidad de código abierto, nos han propuesto crear una herramienta usando Node.js, que permite al usuario recorrer un directorio, filtrar los archivos en formato Markdown y extraer los links que contengan para verificar su estado: sin conexión, útiles o rotos y dar algunas estadísticas que se imprimirán en consola como la cantidad de links, el estado de los links y los links únicos.
npm install AleKristen/SCL013-md-links
const nombreLibreria = require('md-links')
-
Opción 1: Muestra los links extraidos del archivo con extensión .md que ingreses
node tuArchivo.js tuArchivo.md
-
Opción 2: Muestra la validación de links del archivo con extensión .md que ingreses
node archivo.js tuArchivo.md -v | node archivo.js tuArchivo.md --validate
-
Opción 3: Muestra estadísticas del archivo con extensión .md que ingreses: Links totales | Links únicos
node archivo.js tuArchivo.md -s | node archivo.js tuArchivo.md --stats
-
Opción 4: Muestra estadísticas más links dañados del archivo con extensión .md que ingreses: Links totales | Links únicos | Links dañados
node archivo.js tuArchivo.md -s -v | node archivo.js tuArchivo.md -v -s
- Uso de condicionales (if-else | switch | operador ternario)
- Uso de funciones (parámetros | argumentos | valor de retorno)
- Manipular arrays (filter | map | sort | reduce)
- Manipular objects (key | value)
- Uso ES modules (import | export)
- Uso de callbacks
- Consumo de Promesas
- Creación de Promesas
- Uso de sistema de archivos. (fs, path)
- Instalar y usar módulos (npm)
- Creación de modules (CommonJS)
- Configuración de package.json
- Configuración de npm-scripts
- Uso de CLI (Command Line Interface - Interfaz de Línea de Comando)
- Testeo unitario
- Testeo asíncrono
- Uso de Mocks manuales.
- Organizar y dividir el código en módulos (Modularización)
- Uso de identificadores descriptivos (Nomenclatura | Semántica)
- Uso de linter (ESLINT)
- Uso de comandos de git (add | commit | pull | status | push)
- Manejo de repositorios de GitHub (clone | fork | gh-pages)
- Colaboración en Github (branches | pull requests | |tags)
- Organización en Github (projects | issues | labels | milestones)
- Verbos HTTP (http.get)
- Recursión