engine.js 648 B

123456789101112131415161718192021222324252627282930
  1. 'use strict';
  2. module.exports = function(name, options) {
  3. let engine = options.engines[name] || options.engines[aliase(name)];
  4. if (typeof engine === 'undefined') {
  5. throw new Error('gray-matter engine "' + name + '" is not registered');
  6. }
  7. if (typeof engine === 'function') {
  8. engine = { parse: engine };
  9. }
  10. return engine;
  11. };
  12. function aliase(name) {
  13. switch (name.toLowerCase()) {
  14. case 'js':
  15. case 'javascript':
  16. return 'javascript';
  17. case 'coffee':
  18. case 'coffeescript':
  19. case 'cson':
  20. return 'coffee';
  21. case 'yaml':
  22. case 'yml':
  23. return 'yaml';
  24. default: {
  25. return name;
  26. }
  27. }
  28. }