1.1.7 • Published 4 years ago

frontmatter-validator v1.1.7

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

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

namewhat is ?optional?default value
--schemaPath to schema.json fileyes"./.frontmatter-validator"
--pathPath to folder or file with extension providedyescurrent dir "./"
--extensionsAllowed File Extensions listyes".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

namewhat is ?
FILENAMEFilename extracted with path.basename(filePath)
FILE_EXTFile 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 ...
1.1.7

4 years ago

1.0.7

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago