08-27-周三_17-09-29
This commit is contained in:
89
node_modules/prismjs/plugins/file-highlight/prism-file-highlight.js
generated
vendored
Normal file
89
node_modules/prismjs/plugins/file-highlight/prism-file-highlight.js
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
(function () {
|
||||
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Element} [container=document]
|
||||
*/
|
||||
self.Prism.fileHighlight = function(container) {
|
||||
container = container || document;
|
||||
|
||||
var Extensions = {
|
||||
'js': 'javascript',
|
||||
'py': 'python',
|
||||
'rb': 'ruby',
|
||||
'ps1': 'powershell',
|
||||
'psm1': 'powershell',
|
||||
'sh': 'bash',
|
||||
'bat': 'batch',
|
||||
'h': 'c',
|
||||
'tex': 'latex'
|
||||
};
|
||||
|
||||
Array.prototype.slice.call(container.querySelectorAll('pre[data-src]')).forEach(function (pre) {
|
||||
// ignore if already loaded
|
||||
if (pre.hasAttribute('data-src-loaded')) {
|
||||
return;
|
||||
}
|
||||
|
||||
// load current
|
||||
var src = pre.getAttribute('data-src');
|
||||
|
||||
var language, parent = pre;
|
||||
var lang = /\blang(?:uage)?-([\w-]+)\b/i;
|
||||
while (parent && !lang.test(parent.className)) {
|
||||
parent = parent.parentNode;
|
||||
}
|
||||
|
||||
if (parent) {
|
||||
language = (pre.className.match(lang) || [, ''])[1];
|
||||
}
|
||||
|
||||
if (!language) {
|
||||
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
|
||||
language = Extensions[extension] || extension;
|
||||
}
|
||||
|
||||
var code = document.createElement('code');
|
||||
code.className = 'language-' + language;
|
||||
|
||||
pre.textContent = '';
|
||||
|
||||
code.textContent = 'Loading…';
|
||||
|
||||
pre.appendChild(code);
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
||||
xhr.open('GET', src, true);
|
||||
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState == 4) {
|
||||
|
||||
if (xhr.status < 400 && xhr.responseText) {
|
||||
code.textContent = xhr.responseText;
|
||||
|
||||
Prism.highlightElement(code);
|
||||
// mark as loaded
|
||||
pre.setAttribute('data-src-loaded', '');
|
||||
}
|
||||
else if (xhr.status >= 400) {
|
||||
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
|
||||
}
|
||||
else {
|
||||
code.textContent = '✖ Error: File does not exist or is empty';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send(null);
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// execute inside handler, for dropping Event as argument
|
||||
self.Prism.fileHighlight();
|
||||
});
|
||||
|
||||
})();
|
1
node_modules/prismjs/plugins/file-highlight/prism-file-highlight.min.js
generated
vendored
Normal file
1
node_modules/prismjs/plugins/file-highlight/prism-file-highlight.min.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(e){e=e||document;var i={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(e.querySelectorAll("pre[data-src]")).forEach(function(e){if(!e.hasAttribute("data-src-loaded")){for(var t,a=e.getAttribute("data-src"),s=e,n=/\blang(?:uage)?-([\w-]+)\b/i;s&&!n.test(s.className);)s=s.parentNode;if(s&&(t=(e.className.match(n)||[,""])[1]),!t){var r=(a.match(/\.(\w+)$/)||[,""])[1];t=i[r]||r}var o=document.createElement("code");o.className="language-"+t,e.textContent="",o.textContent="Loading…",e.appendChild(o);var l=new XMLHttpRequest;l.open("GET",a,!0),l.onreadystatechange=function(){4==l.readyState&&(l.status<400&&l.responseText?(o.textContent=l.responseText,Prism.highlightElement(o),e.setAttribute("data-src-loaded","")):400<=l.status?o.textContent="✖ Error "+l.status+" while fetching file: "+l.statusText:o.textContent="✖ Error: File does not exist or is empty")},l.send(null)}})},document.addEventListener("DOMContentLoaded",function(){self.Prism.fileHighlight()}));
|
Reference in New Issue
Block a user