frontmatter-validator

1.1.7 • Public • Published

Frontmatter Validator

Github Actions CI

A simple cli to validate all frontmatter files including .md .mdx extension.

Simply npm i -g frontmatter-validator

And then simply run frontmatter-validator --path ./md/or/dir --schema ./.frontmatter-validator --extensions .md,.mdx

Frontmatter Validator will pass in every single file with extension '.md', '.mdx' searching for empty values and replacing him with default values present in .frontmatter-validator file

Cli available arguments

name what is ? optional? default value
--schema Path to schema.json file yes "./.frontmatter-validator"
--path Path to folder or file with extension provided yes current dir "./"
--extensions Allowed File Extensions list yes ".md,.mdx"

Schema Json File

`.frontmatter-validator`
 
{
  "ignored": ["index.md"],
  "schema": {
    "draft": false,
    "hero": "/hero.png",
    "categories": ["Category"]
  }
}

Example before validation

`post-example.md`
    ---
    title: Code Example
    date: "2019-06-06"
    draft: true
    example: false
    path: /posts/code-example
    tags:
      - Tag
    categories: []
    ---
    ## An Code example with ...

Example after validation

`post-example.md`
    ---
    title: Code Example
    date: "2019-06-06"
    draft: true
    example: false
    path: /posts/code-example
    tags:
      - Tag
++  categories:
++    - Category
++  hero: /hero.png
    ---
    ## An Code example with ...

Enviroment variables support ^-^

Now you can inject some variables like filename {FILENAME} this will be replaced by filename from file readed.

for while only works with string

Variables available

name what is ?
FILENAME Filename extracted with path.basename(filePath)
FILE_EXT File Extension extracted with path.extname(filePath)
{ANY_ENV} Any env present in ``process.env` variable

Schema Json File With Variables

`.frontmatter-validator`
{
  "schema": {
    "draft": false,
    "hero": "/hero.png",
    "path": "/posts/{FILENAME}-post",
    "categories": ["Category"]
  }
}

Example Before validation

`post-example.md`
    ---
    title: Code Example
    date: "2019-06-06"
    draft: true
    example: false
    ---
    ## An Code example with ...

Example After validation

`post-example.md`
    ---
    title: Code Example
    date: "2019-06-06"
    draft: true
    example: false
++  path: /posts/post-example-post
    ---
    ## An Code example with ...

Package Sidebar

Install

npm i frontmatter-validator

Weekly Downloads

0

Version

1.1.7

License

MIT

Unpacked Size

15.1 kB

Total Files

10

Last publish

Collaborators

  • vinicioslc