48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
<script>
 | 
						|
  'use strict';
 | 
						|
  // ====================== markdown code block ======================
 | 
						|
  function wrap(el, wrapper) {
 | 
						|
    el.parentNode.insertBefore(wrapper, el);
 | 
						|
    wrapper.appendChild(el);
 | 
						|
  }
 | 
						|
 | 
						|
  (function () {
 | 
						|
    var singleContentsElem = document.querySelector('.single__contents');
 | 
						|
    singleContentsElem ? 
 | 
						|
    singleContentsElem.querySelectorAll('pre > code').forEach(function(elem) {
 | 
						|
      var dataLang = elem.getAttribute('data-lang');
 | 
						|
      var dataLangWrapper = document.createElement('div');
 | 
						|
      var code = null;
 | 
						|
      var codeTitle = null;
 | 
						|
 | 
						|
      if (dataLang && dataLang.includes(':')) {
 | 
						|
        code = dataLang.split(':')[0];
 | 
						|
        codeTitle = dataLang.split(':')[1];
 | 
						|
 | 
						|
        dataLangWrapper.className = 'language-' + code;
 | 
						|
        dataLangWrapper.setAttribute('data-lang', codeTitle);
 | 
						|
 | 
						|
        elem.className = 'language-' + code;
 | 
						|
        elem.setAttribute('data-lang', codeTitle);
 | 
						|
        elem.setAttribute('id', codeTitle);
 | 
						|
      } else if (!dataLang) {
 | 
						|
        dataLangWrapper.setAttribute('data-lang', 'Code');
 | 
						|
        dataLangWrapper.className = 'language-code';
 | 
						|
      }
 | 
						|
 | 
						|
      if (!dataLang || codeTitle) {
 | 
						|
        wrap(elem.parentNode, dataLangWrapper);
 | 
						|
      }
 | 
						|
 | 
						|
    }) : null;
 | 
						|
  })();
 | 
						|
 | 
						|
  var langCodeElem = document.querySelectorAll('.language-code');
 | 
						|
  langCodeElem ? langCodeElem.forEach(function (elem) {
 | 
						|
    var newElem = document.createElement('span');
 | 
						|
    newElem.className = 'copy-to-clipboard';
 | 
						|
    newElem.setAttribute('title', 'Copy to clipboard');
 | 
						|
    elem.append(newElem);
 | 
						|
  }) : null;
 | 
						|
  // =================================================================
 | 
						|
</script> |