md-attr-parser
A node plugin to parse attributes (custom HTML attributes).
Syntax
The syntax is common :
{#thisIsAnId .thisIsAClass thisKey=thisValue}
{thatKey="value" thisKey='thatValue'}
Usage
const parseAttr = require('md-attr-parser');
parseAttr('{ width=500px editable=true }');
parseAttr('height=500px');
The output is an object of the form :
{
prop: {
class: undefined,
id: undefined,
},
eaten: '',
}
For example this code will output :
parseAttr('{ width=500px editable=true #unicorn .dangerous .cute }');
{
prop: {
class: ['dangerous', 'cute'],
id: 'unicorn',
width: '500px',
editable: 'true',
},
eaten: '{ width=500px editable=true #unicorn .dangerous .cute }',
}
Advanced usage
The parsing can start at a positive offset.
parseAttr('SYNTAX{ width=500px editable=true }', len('SYNTAX'));
A configuration can also be specified, actualy, there is only one configuration option.
The default value of key without value.
parseAttr('{ width=500px editable }', 0, {defaultValue: true});
parseAttr('{ width=500px editable }', 0, {defaultValue: key => 'NO_VALUE_FOR_'+key.toUpperCase()});
Licence
MIT