$(function() { var $button = $('
').click(function(){ var html = $(this).parent().html(); html = cleanSource(html); $('#source-modal pre').text(html); $('#source-modal').modal(); }); $('.bs-component [data-toggle="popover"]').popover(); $('.bs-component [data-toggle="tooltip"]').tooltip(); $('.bs-component').hover(function(){ $(this).append($button); $button.show(); }, function(){ $button.hide(); }); function cleanSource(html) { var lines = html.split(/\n/); lines.shift(); lines.splice(-1, 1); var indentSize = lines[0].length - lines[0].trim().length, re = new RegExp(' {' + indentSize + '}'); lines = lines.map(function(line){ if (line.match(re)) { line = line.substring(indentSize); } return line; }); lines = lines.join('\n'); return lines; } });