119 lines
3.3 KiB
JavaScript
119 lines
3.3 KiB
JavaScript
function changeTheme(theme, setCookie) {
|
|
el = $('html');
|
|
|
|
if (!theme) theme = el.hasClass('dark') ? 'light': 'dark';
|
|
else if (el.hasClass(theme)) return;
|
|
|
|
el.removeClass('light');
|
|
el.removeClass('dark');
|
|
el.addClass(theme);
|
|
setThemePreference(theme);
|
|
}
|
|
|
|
function changeSyntax(style, setCookie){
|
|
el = $('html');
|
|
el.removeClass('scss'); el.removeClass('sass');
|
|
el.addClass(style);
|
|
setStyleSyntaxPreference(style);
|
|
}
|
|
|
|
function changeExampleStyleSyntax(style, setCookie){
|
|
el = $('html');
|
|
el.removeClass('scss'); el.removeClass('sass'); el.removeClass('css');
|
|
el.addClass(style);
|
|
setExampleStyleSyntaxPreference(style);
|
|
}
|
|
|
|
function changeExampleMarkupSyntax(markup){
|
|
el = $('html');
|
|
el.removeClass('haml'); el.removeClass('html');
|
|
el.addClass(markup);
|
|
setExampleMarkupSyntaxPreference(markup);
|
|
}
|
|
|
|
function setThemePreference(theme) {
|
|
$.cookie("compass-theme", null);
|
|
$.cookie("compass-theme", theme, {
|
|
expires: 60 * 60 * 24 * 365 * 10,
|
|
path: '/'
|
|
});
|
|
}
|
|
|
|
function getThemePreference(defaultTheme) {
|
|
theme = $.cookie("compass-theme");
|
|
if (theme) {
|
|
changeTheme(theme, false);
|
|
} else {
|
|
changeTheme(defaultTheme, true);
|
|
}
|
|
}
|
|
|
|
function setStyleSyntaxPreference (mainSyntax) {
|
|
$.cookie("compass-syntax", null);
|
|
$.cookie("compass-syntax", mainSyntax, { expires: 60 * 60 * 24 * 365 * 10, path: '/' });
|
|
}
|
|
|
|
function setExampleStyleSyntaxPreference (exampleStyle) {
|
|
$.cookie("compass-example-style", null);
|
|
$.cookie("compass-example-style", exampleStyle, { expires: 60 * 60 * 24 * 365 * 10, path: '/' });
|
|
}
|
|
|
|
function setExampleMarkupSyntaxPreference (exampleMarkup) {
|
|
$.cookie("compass-example-markup", null);
|
|
$.cookie("compass-example-markup", exampleMarkup, { expires: 60 * 60 * 24 * 365 * 10, path: '/' });
|
|
}
|
|
|
|
function getSyntaxPreference(defaultSyntax, defaultMarkup) {
|
|
mainSyntaxCookie = $.cookie("compass-syntax");
|
|
mainSyntax = (mainSyntaxCookie) ? mainSyntaxCookie : defaultSyntax;
|
|
changeSyntax(mainSyntax);
|
|
|
|
// add example styling preferences
|
|
if ($('body').hasClass('demo')){
|
|
markupCookie = $.cookie("compass-example-markup");
|
|
styleCookie = $.cookie("compass-example-style");
|
|
|
|
markup = (markupCookie) ? markupCookie : defaultMarkup;
|
|
style = (styleCookie) ? styleCookie : defaultSyntax;
|
|
|
|
changeExampleStyleSyntax(style)
|
|
changeExampleMarkupSyntax(markup);
|
|
}
|
|
}
|
|
|
|
|
|
getThemePreference('dark');
|
|
|
|
$('document').ready(function(){
|
|
getSyntaxPreference('scss', 'html');
|
|
|
|
$('#page').click(function(event){
|
|
var target = $(event.target);
|
|
|
|
// Set Main Syntax Preference
|
|
if (target.parent().is('#syntax_pref')) {
|
|
changeSyntax(target.attr("rel"), true);
|
|
event.preventDefault();
|
|
|
|
// Set Demo page syntax preferences
|
|
} else if (target.parent().is('.syntax_pref')) {
|
|
event.preventDefault();
|
|
if (target.parent().parent().is('#markup')) {
|
|
changeExampleMarkupSyntax(target.attr("rel"), true);
|
|
} else {
|
|
changeExampleStyleSyntax(target.attr("rel"), true);
|
|
}
|
|
|
|
// Set Theme preference
|
|
} else if (target.is('#theme_pref') || target.parent().is('#theme_pref')) {
|
|
changeTheme();
|
|
event.preventDefault();
|
|
|
|
// View source for mixins & functions
|
|
} else if (target.attr("rel") == "view source") {
|
|
$(target.attr("href")).toggle();
|
|
event.preventDefault();
|
|
}
|
|
});
|
|
});
|