User:Violazoli/common.js

From Rosetta Code
Revision as of 18:55, 10 June 2020 by rosettacode>Violazoli (Created page with "(function(){ function get_code_pres() { var pres = document.getElementsByTagName('pre'); var codes = [];...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
(function(){
  	    function get_code_pres() {
		                      var pres = document.getElementsByTagName('pre');
		                      var codes = [];
		                      for(var i=0;i<pres.length;i++)
                                             if(pres[i].className.match(/\bhighlighted_source\b/)) codes.push(pres[i]);
		                      return codes;
	                             }

 	    function toggle_highlight(pre) {
		                            if(pre._alt_html == null) {
		                	                               pre._alt_html = pre.innerHTML;
		                 	                               var spans = pre.getElementsByTagName('span');
		                 	                               for(var i=0;i<spans.length;i++) spans[i].className = '';
		                                                      }
                                                                 else {
                                                                       var z=pre.innerHTML;
			                                               pre.innerHTML=pre._alt_html;
			                                               pre._alt_html=z;
                                                                      }
	                                   }

 	    function show_toggle() {                                        // the bar below has  64  'db'x  characters.
                                    var xdb = '█████████████████████████████████████████████████████████████████████████'; 
                                    var bar = xdb.concat(' «toggle syntax highlighting»');
		                    var codes = get_code_pres();
		                    for(var i=0;i<codes.length;i++) {
		                                                     var a=document.createElement('a');
		                                                     a.textContent  = bar;
 		                                                     a.style.cursor = 'pointer';
 		                                                        (function(e) {a.addEventListener('click', function() 
                                                                                           { toggle_highlight(e); 
                                                                                           }, false);
		                                                                      e.parentNode.insertBefore(a, e);
		    	                                                             }
                                                                         )   (codes[i]);
 	         	                                             toggle_highlight(codes[i]);
		                                                    }
	                           }
 	    show_toggle();
         }
) 
  ();