(function(exports) {
  /*============================================================
  ===========================Variable===========================
  ============================================================*/
  
  /*============================================================
  ============================Private===========================
  ============================================================*/
  function Output(doc) {
    for (var pattern in patterns) {
      doc = doc.replace(pattern.regex, function(match) {
        match = match.replace(pattern.remove, '');
        return '<span class="doctype-' + pattern.type + '">' + match + '</span>';
      });
    }
    return doc;
  }
  
  /*============================================================
  ============================Public============================
  ============================================================*/
  exports.Header = function(doc) {
    return doc;
  };
  exports.Style = function(doc) {
    return doc;
  };
  exports.Rule = function(doc) {
    return doc;
  };
  exports.Block = function(doc) {
    return doc;
  };
  exports.List = function(doc) {
    return doc;
  };
  exports.Link = function(doc) {
    return doc;
  };
  
  /*============================================================
  ============================Export============================
  ============================================================*/
  return exports;
})(DocTyp || {});

(function(exports) {
  /*============================================================
  ============================Loader============================
  ============================================================*/
  exports.LoadScript = function(url) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.async = true;
    script.src = 'https://doctyp.github.io/src/' + url;
    document.getElementsByTagName('head')[0].appendChild(script);
  };
  exports.LoadStyle = function(url) {
    var link = document.createElement('link');
    link.type = 'text/css';
    link.rel = 'stylesheet';
    link.href = 'https://doctyp.github.io/src/' + url;
    link.media = 'none';
    link.onload = function() {
      if (link.media != 'all') {
        link.media = 'all';
      }
    };
    document.getElementsByTagName('head')[0].appendChild(link);
  };
  
  /*============================================================
  ============================Header============================
  ============================================================*/
  exports.Header = function(doc) {
    for (key in header) {
      doc = doc.replace(header[key].regex, function(match) {
        var temp = Prepare(match).replace(header[key].pattern, '');
        return '<span class="' + prefix + key + '">' + temp + '</span>';
      });
    }
    return doc;
  };
  
  /*============================================================
  ============================Style=============================
  ============================================================*/
  exports.Style = function(doc) {
    for (key in style) {
      doc = doc.replace(style[key].regex, function(match) {
        var temp = Prepare(match).replace(style[key].pattern, '');
        return '<span class="' + prefix + key + '">' + temp + '</span>';
      });
    }
    return doc;
  };
  
  /*============================================================
  =============================Rule=============================
  ============================================================*/
  exports.Rule = function(doc) {
    for (key in rule) {
      doc = doc.replace(rule[key].regex, function(match) {
        return '<hr class="' + prefix + key + '"/>';
      });
    }
    return doc;
  };
  
  /*============================================================
  ============================Block=============================
  ============================================================*/
  exports.Block = function(doc) {
    for (key in block) {
      doc = doc.replace(block[key].regex, function(match) {
        var temp;
        if (key != 'pre-external') {
          temp = Prepare(match).replace(block[key].pattern, '');
        }
        if (key == 'code') {
          return '<code class="' + prefix + key + ' nohighlight language-none">' + Trim(temp) + '</code>';
        } else if (key == 'pre-external') {
          var extra = Prepare(match).replace(/(\[|\]|\`([\s\S]*?)\`)/gm, ''),
            language = extra.split('|')[0].toLowerCase(),
            url = 'Syntax/' + extra.split('|')[1].toLowerCase();
          temp = Prepare(match).replace(block[key].pattern, '');
          LoadScript(url + '/script.js');
          LoadStyle(url + '/' + scheme + '.css');
          return '<pre class="' + prefix + key + '"><code class="language-' + language + '">' + Trim(temp) + '</code></pre>';
        } else if (key == 'pre') {
          return '<pre class="' + prefix + key + '"><code class="nohighlight language-none">' + Trim(temp) + '</code></pre>';
        } else {
          return '<span class="' + prefix + key + '">' + Trim(temp) + '</span>';
        }
      });
    }
    return doc;
  };
  
  /*============================================================
  =============================List=============================
  ============================================================*/
  exports.List = function(doc) {
    return doc;
  };
  
  /*============================================================
  =============================Link=============================
  ============================================================*/
  exports.Link = function(doc) {
    return doc;
  };
  
  /*============================================================
  ===========================Cleaning===========================
  ============================================================*/
  exports.Prepare = function(doc) {
    return doc.replace(/\<(\/)?span(.*?)\>/gm, '');
  };
  exports.Trim = function(doc) {
    return doc.replace(/(^\s+|\s+$)/gm, '');
  };
  exports.Clean = function(doc) {
    return doc.replace(/\n/gm, '<br/>');
  };
  
  /*============================================================
  ============================Export============================
  ============================================================*/
  return exports;
})(DocTyp || {});

Update extension.js