(function(){ if ( (typeof self === 'undefined' || !self.Prism) && (typeof global === 'undefined' || !global.Prism) ) { return; } var options = { classMap: {} }; Prism.plugins.customClass = { map: function map(cm) { options.classMap = cm; }, prefix: function prefix(string) { options.prefixString = string; } } Prism.hooks.add('wrap', function (env) { if (!options.classMap && !options.prefixString) { return; } env.classes = env.classes.map(function(c) { return (options.prefixString || '') + (options.classMap[c] || c); }); }); })();