(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; }); }());