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
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" |
`.frontmatter-validator`
{
"ignored": ["index.md"],
"schema": {
"draft": false,
"hero": "/hero.png",
"categories": ["Category"]
}
}
`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 ...
`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 ...
Now you can inject some variables like filename {FILENAME}
this will be replaced by filename from file readed.
for while only works with string
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 |
`.frontmatter-validator`
{
"schema": {
"draft": false,
"hero": "/hero.png",
"path": "/posts/{FILENAME}-post",
"categories": ["Category"]
}
}
`post-example.md`
---
title: Code Example
date: "2019-06-06"
draft: true
example: false
---
## An Code example with ...
`post-example.md`
---
title: Code Example
date: "2019-06-06"
draft: true
example: false
++ path: /posts/post-example-post
---
## An Code example with ...