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

@github-docs/frontmatter

v1.3.1

Published

Parse and validate YAML frontmatter

Downloads

5,213

Readme

@github-docs/frontmatter

Parse and validate YAML frontmatter

This is a frontmatter parser built on gray-matter that supports optional frontmatter validation using a revalidator JSON schema.

Installation

This is a Node.js module available through the npm registry.

npm install @github-docs/frontmatter

Features

  • Make frontmatter entries required or optional
  • Validate value type, length, pattern, etc. See the revalidator#schema.
  • Validate urls, emails, IP addresses, dates, times, etc. See revalidator#format.
  • Set an explicit list of allowable values with enum.
  • Enforce a specific order of frontmatter values with validateKeyOrder
  • Disallow values that are not specified in the schema with validateKeyNames

Usage

const frontmatter = require('@github-docs/frontmatter')

const schema = {
  properties: {
    title: {
      type: 'string',
      required: true
    },
    meaning_of_life: {
      type: 'number',
      minimum: 40,
      maximum: 50
    }
  }
}

const markdown = `---
title: Hello, World
meaning_of_life: 42
---

I am content.
`

const { data, content, errors } = frontmatter(markdown)

API

frontmatter(markdown, [options])

Parses a string containing markdown and (optional) frontmatter.

  • markdown String (required) - the contents of a markdown file that includes YAML frontmatter.
  • options Object (optional)
    • schema Object - A revalidator JSON schema.
    • filepath String - The name of the file being parsed. Useful for debugging when errors occur.
    • validateKeyNames Boolean - If true, checks that all keys are specified as schema properties. Defaults to false
    • validateKeyOrder Boolean - If true, checks that all keys are in the same order they appear in the schema. Defaults to false

frontmatter.stringify(markdown, [data], [opts])

This is the same stringify method exported by the gray-matter module, which can be used to join a markdown string and a frontmatter object together as a single string.

  • file StringObject - The content string to append to stringified front-matter, or a file object with file.content string.
  • data Object - Front matter to stringify.
  • options Object - Options to pass to gray-matter and js-yaml.
  • returns String - Returns a string created by wrapping stringified yaml with delimiters, and appending that to the given string.

License

MIT