30 lines
648 B
JavaScript
30 lines
648 B
JavaScript
'use strict';
|
|
|
|
module.exports = function(name, options) {
|
|
let engine = options.engines[name] || options.engines[aliase(name)];
|
|
if (typeof engine === 'undefined') {
|
|
throw new Error('gray-matter engine "' + name + '" is not registered');
|
|
}
|
|
if (typeof engine === 'function') {
|
|
engine = { parse: engine };
|
|
}
|
|
return engine;
|
|
};
|
|
|
|
function aliase(name) {
|
|
switch (name.toLowerCase()) {
|
|
case 'js':
|
|
case 'javascript':
|
|
return 'javascript';
|
|
case 'coffee':
|
|
case 'coffeescript':
|
|
case 'cson':
|
|
return 'coffee';
|
|
case 'yaml':
|
|
case 'yml':
|
|
return 'yaml';
|
|
default: {
|
|
return name;
|
|
}
|
|
}
|
|
}
|