(function (root, factory) {
  'use strict';
  if (typeof define === 'function' && define.amd) {
    define('config', [], factory);
  } else if (typeof exports === 'object') {
    module.exports = factory();
  } else {
    root.RequireConfig = factory();
  }
}(this, function () {
  'use strict';

  return function (prefix) {
    prefix = prefix || '';
    var langPrefix = prefix + '/vendor/prism/components/prism-';
    return {
      paths: {
        backbone: prefix + '/vendor/backbone/backbone',
        commonmark: prefix + '/vendor/commonmark/dist/commonmark',
        handlebars: prefix + '/vendor/handlebars/handlebars.runtime',
        jquery: prefix + '/vendor/jquery/dist/jquery',
        marionette: prefix + '/vendor/marionette/lib/backbone.marionette',
        prism: prefix + '/vendor/prism/prism',
        'prism-bash': langPrefix + 'bash',
        'prism-c': langPrefix + 'c',
        'prism-clike': langPrefix + 'clike',
        'prism-cpp': langPrefix + 'cpp',
        'prism-javascript': langPrefix + 'javascript',
        underscore: prefix + '/vendor/underscore/underscore'
      },

      shim: {
        handlebars: {exports: 'Handlebars'},
        prism: {exports: 'Prism'},
        'prism-bash': {deps: ['prism', 'prism-clike'], exports: 'Prism'},
        'prism-c': {deps: ['prism', 'prism-clike'], exports: 'Prism'},
        'prism-clike': {deps: ['prism'], exports: 'Prism'},
        'prism-cpp': {deps: ['prism', 'prism-c'], exports: 'Prism'},
        'prism-javascript': {deps: ['prism', 'prism-clike'], exports: 'Prism'},
        underscore: {exports: '_'}
      }
    };
  };
}));
