2
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
6
self.Prism.fileHighlight = function() {
19
if(Array.prototype.forEach) { // Check to prevent error in IE8
20
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
21
var src = pre.getAttribute('data-src');
23
var language, parent = pre;
24
var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
25
while (parent && !lang.test(parent.className)) {
26
parent = parent.parentNode;
30
language = (pre.className.match(lang) || [, ''])[1];
34
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
35
language = Extensions[extension] || extension;
38
var code = document.createElement('code');
39
code.className = 'language-' + language;
43
code.textContent = 'Loading…';
45
pre.appendChild(code);
47
var xhr = new XMLHttpRequest();
49
xhr.open('GET', src, true);
51
xhr.onreadystatechange = function () {
52
if (xhr.readyState == 4) {
54
if (xhr.status < 400 && xhr.responseText) {
55
code.textContent = xhr.responseText;
57
Prism.highlightElement(code);
59
else if (xhr.status >= 400) {
60
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
63
code.textContent = '✖ Error: File does not exist or is empty';
74
document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);