md-links-gavp

0.1.2 • Public • Published

Markdown Links

Índice


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: Mensaje fail en caso de fallo u ok 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:

md-links

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:

md-links validate

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:

md-links stats

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

Por ejemplo:

md-links validate & stats

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

6. Maintainer

Package Sidebar

Install

npm i md-links-gavp

Weekly Downloads

0

Version

0.1.2

License

MIT

Unpacked Size

52.7 kB

Total Files

17

Last publish

Collaborators

  • angelica_venta