|
|
|
@@ -0,0 +1,138 @@ |
|
|
|
$(document).ready(function () { |
|
|
|
|
|
|
|
var grabber = $('#grabber'); |
|
|
|
var startX; |
|
|
|
|
|
|
|
function positionGrabber(){ |
|
|
|
|
|
|
|
grabber.draggable("option","containment",[200,0,$(window).width() - 200,0]); |
|
|
|
grabber.css({ |
|
|
|
height: function(){ |
|
|
|
return ($(document).height() - $(".code:visible").first().position().top); |
|
|
|
} |
|
|
|
,left: function(){ |
|
|
|
return $(".code pre:visible").first().position().left; |
|
|
|
} |
|
|
|
,top: function(){ |
|
|
|
return $(".code:visible").first().position().top; |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function initGrabber(){ |
|
|
|
|
|
|
|
grabber.draggable({ |
|
|
|
axis:'x' |
|
|
|
,start:function(event,ui){ |
|
|
|
startX = ui.position.left; |
|
|
|
} |
|
|
|
,drag: function(event,ui){ |
|
|
|
var xOffset = ui.position.left - startX; |
|
|
|
var newDocW = $(".doc:visible").first().width() + xOffset; |
|
|
|
var newDocPercent = ( 100 * newDocW / parseFloat($(".doc").first().parent().css("width")) )+ "%" ; |
|
|
|
|
|
|
|
var newCodeW = $(".code:visible").first().width() - xOffset; |
|
|
|
var newCodePercent = ( 100 * newCodeW / parseFloat($(".code").first().parent().css("width")) )+ "%" ; |
|
|
|
|
|
|
|
$(".doc").width(newDocPercent); |
|
|
|
$(".code").width(newCodePercent); |
|
|
|
|
|
|
|
startX = $(".code pre:visible").first().position().left; |
|
|
|
} |
|
|
|
,stop: function(){ |
|
|
|
positionGrabber(); |
|
|
|
} |
|
|
|
}); |
|
|
|
positionGrabber(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function initThemes(){ |
|
|
|
var menu = $("#themeDropdown"); |
|
|
|
menu.on("click","li > a.themeLink",function(event){ |
|
|
|
switchStylesheet($(this).text()); |
|
|
|
}); |
|
|
|
|
|
|
|
menu.append('<li class="nav-header">Light</li>'); |
|
|
|
|
|
|
|
$(".codebrush.light").each(function(index){ |
|
|
|
menu.append('<li><a class="themeLink" href="#">' + $(this).attr("title") + '</a></li>'); |
|
|
|
}); |
|
|
|
|
|
|
|
menu.append('<li class="nav-header">Dark</li>'); |
|
|
|
|
|
|
|
$(".codebrush.dark").each(function(index){ |
|
|
|
menu.append('<li><a class="themeLink" href="#">' + $(this).attr("title") + '</a></li>'); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function switchStylesheet(styleName) |
|
|
|
{ |
|
|
|
$('link.codebrush').each(function(i) |
|
|
|
{ |
|
|
|
this.disabled = true; |
|
|
|
if($(this).attr('title') == styleName) |
|
|
|
{ |
|
|
|
this.disabled = false; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$('#themeDropdown > li').each(function(i) |
|
|
|
{ |
|
|
|
$(this).removeClass('active'); |
|
|
|
|
|
|
|
if($('a.themeLink',this).text() == styleName) |
|
|
|
{ |
|
|
|
$(this).addClass('active'); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
$.cookie("doccoCodeTheme",styleName,{path:'/',expires:365}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function initHiddenCode() |
|
|
|
{ |
|
|
|
$.each($('.docco-section'), function() { |
|
|
|
var $this = $(this); |
|
|
|
var code = $('pre', $this); |
|
|
|
var lines = code.text().split('\n'); |
|
|
|
$('.linecount', $this).text(lines.length); |
|
|
|
$('.hidden-code, .hidden-doc', $this).hide(); |
|
|
|
}); |
|
|
|
|
|
|
|
$('.hidden-code-toggle').click(function (e) { |
|
|
|
var $target = $(e.target); |
|
|
|
|
|
|
|
var $section = $("#section-" + $target.attr("index")); |
|
|
|
$(".hidden-code, .hidden-doc", $section).slideToggle("slow", function() { |
|
|
|
var $this = $(this); |
|
|
|
if ($this.is(":visible")) { |
|
|
|
var newText = $target.html().replace("Show","Hide"); |
|
|
|
$target.html(newText); |
|
|
|
} |
|
|
|
else { |
|
|
|
var newText = $target.html().replace("Hide","Show"); |
|
|
|
$target.html(newText); |
|
|
|
} |
|
|
|
positionGrabber(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
var myTheme = $.cookie("doccoCodeTheme"); |
|
|
|
if(null == myTheme) |
|
|
|
{ |
|
|
|
myTheme = "IDEA"; |
|
|
|
} |
|
|
|
|
|
|
|
initThemes(); |
|
|
|
switchStylesheet(myTheme); |
|
|
|
|
|
|
|
initGrabber(); |
|
|
|
$(window).on('resize',positionGrabber); |
|
|
|
hljs.initHighlightingOnLoad(); |
|
|
|
initHiddenCode(); |
|
|
|
|
|
|
|
}); |
|
|
|
|