Jon Schlinkert's repositories
remarkable
Markdown parser, done right. Commonmark support, extensions, syntax plugins, high speed - all in one. Gulp and metalsmith plugins available. Used by Facebook, Docusaurus and many others! Use https://github.com/breakdance/breakdance for HTML-to-markdown conversion. Use https://github.com/jonschlinkert/markdown-toc to generate a table of contents.
gray-matter
Smarter YAML front matter parser, used by metalsmith, Gatsby, Netlify, Assemble, mapbox-gl, phenomic, vuejs vitepress, TinaCMS, Shopify Polaris, Ant Design, Astro, hashicorp, garden, slidev, saber, sourcegraph, and many others. Simple to use, and battle tested. Parses YAML by default but can also parse JSON Front Matter, Coffee Front Matter, TOML Front Matter, and has support for custom parsers. Please follow gray-matter's author: https://github.com/jonschlinkert
markdown-toc
API and CLI for generating a markdown TOC (table of contents) for a README or any markdown files. Uses Remarkable to parse markdown. Used by NASA/openmct, Prisma, Joi, Mocha, Sass, Prettier, Orbit DB, FormatJS, Raneto, hapijs/code, webpack-flow, docusaurus, release-it, ts-loader, json-server, reactfire, bunyan, husky, react-easy-state, react-snap, chakra-ui, carbon, alfresco, repolinter, Assemble, Verb, and thousands of other projects.
clone-deep
Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives. Used by superstruct, merge-deep, and many others!
randomatic
Easily generate random strings like passwords, with simple options for specifying a length and for using patterns of numeric, alpha-numeric, alphabetical, special or custom characters. (the original "generate-password")
idiomatic-contributing
A brief guide to being an effective open source contributor.
strip-comments
Strip block comments or line comments from JavaScript code.
mixin-deep
Deeply mix the properties of objects into the first object, while also mixing-in child objects.
parse-gitignore
Parse a gitignore file into an array of patterns. Comments and empty lines are stripped.
delete-empty
Recursively delete all empty folders in a directory and child directories.
git-user-name
Get the name of the current user from git config, at the project or global scope, depending on what git uses in the current context.
git-repo-name
Get the repository name from the git remote origin URL
tokenize-comment
Uses snapdragon to tokenize a single JavaScript block comment into an object, with description, tags, and code example sections that can be passed to any other comment parsers for further parsing.
git-user-email
Get the current user's git email address.
project-name
Get the name of a project from package.json, git config, or basename of the current working directory.
module-root
Get the resolved path to the root of a package installed in node_modules
replace-case
Like String.prototype.replace() but attempts to match the casing of the substring being replaced. Useful when renaming mixed-case variables, refactoring code or moving hard-coded values into variables.
common-config
Config store for setting/getting globally available values that are commonly needed for project scaffolders, like Generate or Yeoman.
path-starts-with
Returns true if a filepath starts with the given string. Works with windows and posix/unix paths.
glob-fs-dotfiles
glob-fs middleware for automatically ignoring dotfiles.