Markdown Links
Índice
- 1. Descripción
- 2. Instrucciones de instalación
- 3. Instrucciones de uso
- 4. Dependencies y devDependencies
- 5. Objetivos de aprendizaje
- 6. Maintainer
1. Descripción
MD-LINKS GAVP es una librería y CLI que te permite leer archivos Markdown y obtener información útil sobre los enlaces o links que se incluyen en dichos documentos.
De cada link, puedes obtener el path, url, texto que aparece dentro del link y código de respuesta HTTP. Así como estadísticas generales sobre los links de tus archivos Markdown .
2. Instrucciones de instalación
Módulo instalable mediante npm
npm i md-links-gavp
3. Instrucciones de uso
El módulo puede importarse en otros scripts de Node.js a través de la siguiente interfaz:
mdLinks(path, options = {validate: , stats: })
Argumentos
-
path
: Ruta absoluta o relativa al archivo o directorio. -
options
: Un objeto con las siguientes propiedades:-
validate
: Booleano que determina si se desea validar los links encontrados. -
stats
: Booleano que determina si se desea obtener estadísticas sobre los links encontrados.
-
Valor de retorno
La función returna una promesa (Promise
) que resuelva a un arreglo
(Array
) de objetos (Object
), donde cada objeto representa un link y contiene
las siguientes propiedades
Con validate:false
:
-
href
: URL encontrada. -
text
: Texto que aparecía dentro del link (<a>
). -
file
: Ruta del archivo donde se encontró el link.
Con validate:true
:
-
href
: URL encontrada. -
text
: Texto que aparecía dentro del link (<a>
). -
file
: Ruta del archivo donde se encontró el link. -
status
: Código de respuesta HTTP. -
ok
: Mensajefail
en caso de fallo uok
en caso de éxito.
Ejemplo (resultados como comentarios)
const mdLinks = require("md-links-gavp");
mdLinks("./some/example.md")
.then(links => {
// => [{ href, text, file }, ...]
})
.catch(console.error);
mdLinks("./some/example.md", { validate: true })
.then(links => {
// => [{ href, text, file, status, ok }, ...]
})
.catch(console.error);
mdLinks("./some/dir")
.then(links => {
// => [{ href, text, file }, ...]
})
.catch(console.error);
2) CLI (Command Line Interface - Interfaz de Línea de Comando)
El ejecutable de la aplicación también puede ejecutarse de la siguiente manera a través de la terminal:
md-links <path-to-file> [options]
Por ejemplo:
El comportamiento por defecto no valda si las URLs responden ok o no, solo identifica el archivo markdown (a partir de la ruta que recibe como argumento), analiza 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 pasas 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 consideraremos el link como ok.
Por ejemplo:
El output en este caso incluye la palabra ok
o fail
después de
la URL, así como el status de la respuesta recibida a la petición HTTP a dicha
URL.
--stats
Si pasas la opción --stats
el output (salida) será un texto con estadísticas básicas sobre los links.
Por ejemplo:
También puedes combinar --stats
y --validate
para obtener estadísticas que
necesiten de los resultados de la validación.
Por ejemplo:
4. Dependencies y devDependencies
- Axios
- Chalk
- Commander
- Figlet
- Marked
- Jest
- EsLint
5. Objetivos de aprendizaje
Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo.
JavaScript
-
[x] Diferenciar entre tipos de datos primitivos y no primitivos.
-
[x] Arrays (arreglos).
-
[x] Objetos (key, value).
-
[x] Uso de condicionales (if-else, switch, operador ternario, lógica booleana).
-
[x] Funciones (params, args, return).
-
[x] Recursión o recursividad.
-
[x] Módulos de CommonJS.
-
[x] Diferenciar entre expresiones (expressions) y sentencias (statements).
-
[x] Callbacks.
-
[x] Promesas.
-
[x] Pruebas unitarias (unit tests).
-
[x] Pruebas asíncronas.
-
[x] Uso de mocks y espías.
-
[ ] Pruebas de compatibilidad en múltiples entornos de ejecución.
-
[x] Uso de linter (ESLINT)
-
[x] Uso de identificadores descriptivos (Nomenclatura y Semántica)
Node.js
-
[x] Instalar y usar módulos con npm
-
[x] Configuración de package.json
-
[x] Configuración de npm-scripts
-
[x] process (env, argv, stdin-stdout-stderr, exit-code)
-
[x] File system (fs, path)
Control de Versiones (Git y GitHub)
-
[x] Git: Instalación y configuración
-
[x] Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)
-
[x] Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)
-
[x] GitHub: Creación de cuenta y repos, configuración de llaves SSH
-
[x] GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)
-
[x] GitHub: Organización en Github (projects | issues | labels | milestones | releases)
HTTP
-
[x] Consulta o petición (request) y respuesta (response).
-
[x] Codigos de status de HTTP