props

extract json/yaml from the beginning of text files

props

a module for node that is able to extract either JSON or YAML from the beginning of a string

npm install props or npm install -g props

var props = require("props");
 
// Use JSON 
 
var json =
'{\n\
  "title": "How to use node.js",\n\
  "date": "2011-08-09T17:56:00",\n\
  "tags": [ "example", "node.js" ]\n\
}\n\
\n\
\n\
Node.js is a new technology...';
 
console.log(props(json));
 
// or YAML 
 
var yaml =
'title: How to use node.js\n\
date: 2011-08-09T17:56:00\n\
tags:\n\
  - example\n\
  - node.js\n\
\n\
\n\
Node.js is a new technology...';
 
console.log(props(yaml));

This will print nearly the same object twice, since json and yaml define the same object:

JSON:

{ title: 'How to use node.js',
  date: '2011-08-09T17:56:00',
  tags: [ 'example', 'node.js' ],
  __content: 'Node.js is a new technology...' }
 

YAML:

{ title: 'How to use node.js',
  date: Tue, 09 Aug 2011 15:56:00 GMT,
  tags: [ 'example', 'node.js' ],
  __content: 'Node.js is a new technology...' }

The difference is that, due to it's JS implementation, the Date is parsed in the YAML version.

The JSON/YAML part has to be always seperated from the content by three newline characters (\n\n\n or \r\n\r\n\r\n).

If you encounter any bugs or issues, feel free to open an issue at github.

The MIT license.