(function() {
  if (typeof self === 'undefined' || !self.Prism || !self.document) {
    return;
  }

  Prism.hooks.add('before-sanity-check', function(env) {
    if (env.code) {
      var pre = env.element.parentNode;
      var clsReg = /\s*\bkeep-initial-line-feed\b\s*/;
      if (
        pre &&
        pre.nodeName.toLowerCase() === 'pre' &&
        // Apply only if nor the <pre> or the <code> have the class
        (!clsReg.test(pre.className) && !clsReg.test(env.element.className))
      ) {
        env.code = env.code.replace(/^(?:\r?\n|\r)/, '');
      }
    }
  });
})();
