codeblock-script.html 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <script>
  2. 'use strict';
  3. // ====================== markdown code block ======================
  4. function wrap(el, wrapper) {
  5. el.parentNode.insertBefore(wrapper, el);
  6. wrapper.appendChild(el);
  7. }
  8. (function () {
  9. var singleContentsElem = document.querySelector('.single__contents');
  10. singleContentsElem ?
  11. singleContentsElem.querySelectorAll('pre > code').forEach(function(elem) {
  12. var dataLang = elem.getAttribute('data-lang');
  13. var dataLangWrapper = document.createElement('div');
  14. var code = null;
  15. var codeTitle = null;
  16. if (dataLang && dataLang.includes(':')) {
  17. code = dataLang.split(':')[0];
  18. codeTitle = dataLang.split(':')[1];
  19. dataLangWrapper.className = 'language-' + code;
  20. dataLangWrapper.setAttribute('data-lang', codeTitle);
  21. elem.className = 'language-' + code;
  22. elem.setAttribute('data-lang', codeTitle);
  23. elem.setAttribute('id', codeTitle);
  24. }
  25. if (!dataLang || codeTitle) {
  26. wrap(elem.parentNode, dataLangWrapper);
  27. }
  28. }) : null;
  29. })();
  30. // =================================================================
  31. </script>