smart-matter v2.0.2
Install
Install with npm:
$ npm install --save smart-matterHow does it work
smart-matter parses front-matter either from a file path or from a string containing front-matter.
If supplied, smart-matter will parse a date input into a Javascript Date Object. When using the file(path) API, smart-matter will return last modified date of the file.
API
File
Input is a string with the full path to the input file.
Params
input{String}: A full path string to the file withfront matter.
Contents
Input is a string contents which returns an object.
Params
input{String}: String with the contents of the file withfront matter.
Examples
file (path)
import path from 'path';
import { file } from 'smart-matter' ;
const sm = file(path.join(__dirname, 'file.markdown'));
console.log('matter', sm);This assumes that file.markdown is formatted similar to this:
---
title: Hello World
permalink: hello-world
date: '2021-07-03 19:17:00'
tags:
- my
- tags
---
## Hello worldsmart-matter will parse this file and return an object like this:
{
title: "Hello World",
permalink: "hello-world",
date: "2021-07-03 19:17:00",
tags: [ "my", "tags" ],
matter: "title: Hello World\n
permalink: hello-world\n
date: 2021-07-03 19:17:00\n
tags: \n
- my\n
- tags\n",
file: "/Users/mark/Documents/Code/smart-matter/tests/test.markdown",
lastupdated: 2021-08-03T06:45:46.170Z,
hash: "b10a8db164e0754105b7a99be72e3fe5",
content: "\n\n## Hello world",
dateObject: 2021-07-03T09:47:00.000Z,
dateISO: "2021-07-03T09:47:00.000Z",
error: null,
empty: false
}contents (string)
import fs from 'fs';
import { contents } from 'smart-matter';
const filePath = fs.readFileSync('file.markdown', 'utf8');
const sm = contents(filePath);
console.log('matter', sm);This assumes that file.markdown is formatted similar to this:
---
title: Hello World
permalink: hello-world
date: '2021-07-03 19:17:00'
tags:
- my
- tags
---
## Hello worldsmart-matter will parse this file and return an object like this:
{
title: "Hello World",
permalink: "hello-world",
date: "2021-07-03 19:17:00",
tags: [ "my", "tags" ],
matter: "title: Hello World\n
permalink: hello-world\n
date: 2021-07-03 19:17:00\n
tags: \n
- my\n
- tags\n",
hash: "b10a8db164e0754105b7a99be72e3fe5",
content: "\n\n## Hello world",
dateObject: 2021-07-03T09:47:00.000Z,
dateISO: "2021-07-03T09:47:00.000Z",
error: null,
empty: false
}Object returned
Added values to the object are:
matter: {String} The raw front-matter stringcontent: {String} The contents of the file outside of the front-matter datadate: {String} The original date valuedateObject: {Date} Thedatevalue parsed onto a Javascript DatedateISO: {String} Thedatevalue parsed and formatted into an ISO Datehash: {String} This is themd5hash of the front-matter title (if supplied)lastupdated: {Date} The last updated value of the file on the disk
Note: When using the
fileAPI more options are returned. Eg:file(the input file path) andlastupdated(the last updated date of the file on the disk)