1.0.0 • Published 11 months ago

mdlinks-belen v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

mdlinks-belen

mdlinks-belen es una herramienta que analiza archivos Markdown y extrae los enlaces encontrados en ellos brindando diferentes estadisticas de acuerdo a las opciones que accedas.

Instalación

Puedes instalar mdlinks-belen utilizando npm. Ejecuta el siguiente comando en tu terminal: npm install <github-belenoese>/mdlinks-belen

Guía de uso

Para ejecutar mdLinks ejecuta el siguiente comando desde la terminal: mdlinks-belen <path-to-file> [options]

Por ejemplo:

$ mdlinks-belen ./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 identifica el archivo Markdown, analiza su contenido e imprime los enlaces encontrados junto con la ruta del archivo y el texto del enlace.

Opciones

--validate

mdlinks-belen <path-to-file> --validate

Si se pasa esta opción, mdlinks-belen realizará una petición HTTP para verificar si los enlaces son válidos.

Por ejemplo:

$ mdlinks-belen ./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

Como resultado el output incluirá 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

mdlinks-belen <path-to-file> --stats

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

$ mdlinks-belen ./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.

$ mdlinks-belen ./some/example.md --stats --validate
Total: 3
Unique: 3
Broken: 1

Sobre el proyecto

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.

Diagrama de flujo

diagrama

acornacorn-jsxajvansi-escapesansi-regexansi-stylesanymatchargparseaxiosbabel-jestbabel-plugin-istanbulbabel-plugin-jest-hoistbabel-preset-current-node-syntaxbabel-preset-jestbalanced-matchbrace-expansionbracesbrowserslistbserbuffer-fromcallsitescamelcasecaniuse-litechalkchar-regexci-infocjs-module-lexercliuicocollect-v8-coveragecolor-convertcolor-namecolorsconcat-mapconvert-source-mapcross-spawndebugdedentdeep-isdeepmergedetect-newlinediff-sequencesdoctrineelectron-to-chromiumemitteryemoji-regexerror-exescaladeescape-string-regexpeslinteslint-scopeeslint-visitor-keysespreeesprimaesqueryesrecurseestraverseesutilsexecaexitexpectfast-deep-equalfast-json-stable-stringifyfast-levenshteinfastqfb-watchmanfile-entry-cachefill-rangefind-upflat-cacheflattedfs.realpathfunction-bindgensyncget-caller-fileget-package-typeget-streamglobglob-parentglobalsgraceful-fsgrapheme-splitterhashas-flaghtml-escaperhuman-signalsignoreimport-freshimport-localimurmurhashinflightinheritsis-arrayishis-core-moduleis-extglobis-fullwidth-code-pointis-generator-fnis-globis-numberis-path-insideis-streamisexeistanbul-lib-coverageistanbul-lib-instrumentistanbul-lib-reportistanbul-lib-source-mapsistanbul-reportsjestjest-changed-filesjest-circusjest-clijest-configjest-diffjest-docblockjest-eachjest-environment-nodejest-get-typejest-haste-mapjest-leak-detectorjest-matcher-utilsjest-message-utiljest-mockjest-pnp-resolverjest-regex-utiljest-resolvejest-resolve-dependenciesjest-runnerjest-runtimejest-snapshotjest-utiljest-validatejest-watcherjest-workerjs-sdsljs-tokensjs-yamljsescjson-parse-even-better-errorsjson-schema-traversejson-stable-stringify-without-jsonifyjson5kleurlevenlevnlines-and-columnslocate-pathlodash.mergelru-cachemake-dirmakeerrormarkedmerge-streammicromatchmimic-fnminimatchmsnatural-comparenode-int64node-releasesnormalize-pathnpm-run-pathonceonetimeoptionatorp-limitp-locatep-tryparent-moduleparse-jsonpath-existspath-is-absolutepath-keypath-parsepicocolorspicomatchpiratespkg-dirprelude-lspretty-formatpromptspunycodepure-randqueue-microtaskreact-isrequire-directoryresolveresolve-cwdresolve-fromresolve.exportsreusifyrimrafrun-parallelsemvershebang-commandshebang-regexsignal-exitsisteransislashsource-mapsource-map-supportsprintf-jsstack-utilsstring-lengthstring-widthstrip-ansistrip-bomstrip-final-newlinestrip-json-commentssupports-colorsupports-preserve-symlinks-flagtest-excludetext-tabletmplto-fast-propertiesto-regex-rangetype-checktype-detecttype-festupdate-browserslist-dburi-jsv8-to-istanbulwalkerwhichword-wrapwrap-ansiwrappywrite-file-atomicy18nyallistyargsyargs-parseryocto-queue
1.0.0

11 months ago