20 lines
605 B
JavaScript
20 lines
605 B
JavaScript
(function () {
|
|
|
|
if (typeof Prism === 'undefined' || typeof document === 'undefined' || !document.querySelector) {
|
|
return;
|
|
}
|
|
|
|
Prism.plugins.toolbar.registerButton('download-file', function (env) {
|
|
var pre = env.element.parentNode;
|
|
if (!pre || !/pre/i.test(pre.nodeName) || !pre.hasAttribute('data-src') || !pre.hasAttribute('data-download-link')) {
|
|
return;
|
|
}
|
|
var src = pre.getAttribute('data-src');
|
|
var a = document.createElement('a');
|
|
a.textContent = pre.getAttribute('data-download-link-label') || 'Download';
|
|
a.setAttribute('download', '');
|
|
a.href = src;
|
|
return a;
|
|
});
|
|
|
|
}());
|