3.0.4 • Published 9 years ago

text-metadata-parser v3.0.4

Weekly downloads
59
License
-
Repository
github
Last release
9 years ago

Build Status

Text Metadata Parser is a Jekyll Front Matter-like parser.

It was created in 2013, before Jekyll was widespread enough for me to just use Front Matter instead.

At this point, text-metadata-parser uses js-yaml internally, meaning that it supports all the YAML features that the other library supports.

In addition, for backwards compatibility, it also allows you to use a much looser syntax. If you do not enclose the metadata section in --- three dashes, they will be inferred. When parsing metadata in "loose mode", key: value sections that have colons in the value string will be allowed, even if they are not enclosed in double quotes.

API

parse(text, options)

  • text is a string that contains a metadata section at the top
  • options is an optional object with options to create a weak-type-wizard to cast the metadata to whatever types you like

Install

npm install text-metadata-parser

Example

Say you wrote some random blog posts in a drunken stupor one night, and saved them all in text files in this format:

title:    Last will and testament
date:	    2019-09-13
attn:     Secret Family
lovers:   3
deceased: true

I leave everything to Janet.

Except my boots.  Those are *mine.*

Parse:

var my_drunken_ramblings = parse(that_big_string_from_earlier_in_the_example, {
	number: ['lovers', 'bagels'],
	string: ['title', 'attn'],
	date: ['date'],
	boolean: 'deceased',
	default: { lovers: 5, bagels: 3}
});

PROFIT!!!11

> my_drunken_ramblings.metadata.title
'Last will and testament'

> my_drunken_ramblings.metadata.date
Fri Sep 13 2019 00:00:00 GMT+0000 (Coordinated Universal Time)

> my_drunken_ramblings.metadata.lovers
3

> my_drunken_ramblings.metadata.bagels
3

> my_drunken_ramblings.content
'I leave everything to Janet.\n\nExcept my boots.  Those are *mine.*'

License

WTFPL

3.0.4

9 years ago

3.0.3

10 years ago

3.0.2

10 years ago

3.0.1

10 years ago

3.0.0

10 years ago

2.0.3

11 years ago

2.0.1

11 years ago

2.0.0

11 years ago

1.0.1

13 years ago

1.0.0

13 years ago