npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gray-matter-from-file

v1.0.6

Published

Extracts only the front matter from a file stream, and passes to the well known gray-matter library for parsing.

Downloads

11

Readme

Gray Matter From File

Build Status

Reads the front matter portion of a markdown file (denoted by --- above and below the front matter contents) and passes this to Gray Matter for parsing.

This only reads the front matter of a file and does not load the remaining contents into memory, this results in fast and asynchronous parsing.

Usage

A Markdown file with some front matter and contents underneath.

---
hello: world
---

The remaining contents of this markdown file would be ignored, this module simply retrieves the front matter above.

Use grayMatterFromFile to obtain this front matter, and parse it via the gray-matter module.

const path = require('path');
const grayMatterFromFile = require('gray-matter-from-file').default;
// import grayMatterFromFile from 'gray-matter-from-file';

const filepath = path.resolve(__dirname, 'my-file.md');

grayMatterFromFile(filepath)
    .then(grayMatter => console.log(grayMatter)) // { hello: 'world' }
    .catch(error => console.log(error))

Why Use It

This module uses fs.readFile and readline to stream the front matter from a markdown file line by line, before passing the result to Gray Matter and returning the parsed object.

This ensures that:

  • There are no synchronous file reads to obtain the front matter
  • Only the front matter is ever read into memory, the rest of the file is ignored
  • This should be performant for a large number of front matter reads across many files, perhaps useful for indexing or processing a large set of markdown files in a static site generator

Support

This has only been transpiled for Node 8 (and above) in order to help enourage the community to be on the latest, more secure and more performant versions of Node. I may remove support for Node 8 when it is no longer LTS.