Configuration without brackets, quotes or escaping, using just 2 markup characters:
- the key/value separator
:
- the comment character
#
Indented whitespace controls nesting and primitive data types are inferred.
# shop.conf
name: dizzib's corner shop: Leeds, Yorkshire
patrons:
alice:
cash: 5.03
bob:
credit: 10.00
fruits # omit key/val separator to parse immediate children to an array
apples
Braeburn
Cox's # omit key/val separator to parse as a value
Royal Gala
banana
orange:
special: true
stock: 17
node.js code:
var conf = require('fs').readFileSync('shop.conf'});
var obj = require('leanconf').parse(conf);
console.log(require('util').inspect(obj, {depth:null}));
output:
{ name: 'dizzib\'s corner shop: Leeds, Yorkshire',
patrons: { alice: { cash: 5.03 }, bob: { credit: 10 } },
fruits:
[ { apples: [ 'Braeburn', 'Cox\'s', 'Royal Gala' ] },
'banana',
{ orange: { special: true, stock: 17 } } ] }
var leanconf = require('leanconf');
Parse configuration string conf
returning object obj
.
Set opts.asArray
to return top-level items in an array (default is false
).
Set opts.comment
to change the comment character (default is #
).
Keys or values cannot contain this character.
Set opts.sep
to change the key/value separator (default is :
).
This function parses a raw value-string to the most appropriate data type of boolean, floating-point number, integer, null or string. Don't call this directly, rather replace or wrap it if you want to alter the default behaviour.
$ npm install leanconf
$ git clone --branch=dev https://github.com/dizzib/leanconf.git
$ cd leanconf
$ npm install # install dependencies
$ npm test # build all and run tests
$ npm start # start the task runner