Merge branch 'master' into icons

This commit is contained in:
Zixaphir 2013-08-19 20:52:48 -07:00
commit d157537946
3 changed files with 110 additions and 117 deletions

View File

@ -12131,7 +12131,21 @@
Style = { Style = {
init: function() { init: function() {
this.setup(); var i, item, items, theme;
theme = Themes[Conf['theme']] || Themes['Yotsuba B'];
Style.svg = $.el('div', {
id: 'svg_filters'
});
items = [['layoutCSS', Style.layout, 'layout'], ['themeCSS', Style.theme(theme), 'theme'], ['emojiCSS', Emoji.css(), 'emoji'], ['dynamicCSS', Style.dynamic(), 'dynamic'], ['icons', "", 'icons'], ['paddingSheet', "", 'padding'], ['mascot', "", 'mascotSheet']];
i = 0;
while (item = items[i++]) {
Style[item[0]] = $.addStyle(item[1], item[2]);
}
$.addStyle(JSColor.css(), 'jsColor');
$.asap((function() {
return d.head;
}), Style.observe);
$.asap((function() { $.asap((function() {
return d.body; return d.body;
}), this.asapInit); }), this.asapInit);
@ -12193,57 +12207,42 @@
}); });
} }
}, },
setup: function() {
var i, item, items, theme;
theme = Themes[Conf['theme']] || Themes['Yotsuba B'];
Style.svg = $.el('div', {
id: 'svg_filters'
});
items = [['layoutCSS', Style.layout, 'layout'], ['themeCSS', Style.theme(theme), 'theme'], ['emojiCSS', Emoji.css(), 'emoji'], ['dynamicCSS', Style.dynamic(), 'dynamic'], ['icons', "", 'icons'], ['paddingSheet', "", 'padding'], ['mascot', "", 'mascotSheet']];
i = 0;
while (item = items[i++]) {
Style[item[0]] = $.addStyle(item[1], item[2]);
}
$.addStyle(JSColor.css(), 'jsColor');
if (d.head) {
this.remStyle();
}
return this.observe();
},
observe: function() { observe: function() {
var onMutationObserver; var onMutationObserver;
if (window.MutationObserver) { if (window.MutationObserver) {
Style.observer = new MutationObserver(onMutationObserver = this.wrapper); Style.observer = new MutationObserver(onMutationObserver = Style.wrapper);
return Style.observer.observe(d, { return Style.observer.observe(d.head, {
childList: true, childList: true,
subtree: true subtree: true
}); });
} else { } else {
return $.on(d, 'DOMNodeInserted', this.wrapper); return $.on(d.head, 'DOMNodeInserted', Style.wrapper);
} }
}, },
wrapper: function() { wrapper: function() {
if (d.head) { var first;
Style.remStyle();
if (d.readyState === 'complete') { first = {
if (Style.observer) { addedNodes: d.head.children
return Style.observer.disconnect(); };
} else { Style.remStyle(first);
return $.off(d, 'DOMNodeInserted', Style.wrapper); if (d.readyState === 'complete') {
} if (Style.observer) {
return Style.observer.disconnect();
} else {
return $.off(d, 'DOMNodeInserted', Style.wrapper);
} }
} }
}, },
remStyle: function() { remStyle: function(_arg) {
var href, i, node, nodes; var addedNodes, href, i, node;
nodes = d.head.children; addedNodes = _arg.addedNodes;
i = nodes.length; i = addedNodes.length;
while (i--) { while (i--) {
node = nodes[i]; node = addedNodes[i];
if (node.id || !['STYLE', 'LINK'].contains(node.nodeName) || node.rel && !(/stylesheet/.test(node.rel) || (/flags.*\.css$/.test(href = node.href) || href.slice(0, 4) === 'data')) || (/\.typeset/.test(node.textContent))) { if (node.nodeName === 'STYLE' && node.id || !['LINK', 'STYLE'].contains(node.nodeName) || node.rel && (!/stylesheet/.test(node.rel) || /flags.*\.css$/.test(href = node.href) || href.slice(0, 4) === 'data') || /\.typeset/.test(node.textContent)) {
continue; continue;
} }
$.rm(node); $.rm(node);

View File

@ -12124,7 +12124,21 @@
Style = { Style = {
init: function() { init: function() {
this.setup(); var i, item, items, theme;
theme = Themes[Conf['theme']] || Themes['Yotsuba B'];
Style.svg = $.el('div', {
id: 'svg_filters'
});
items = [['layoutCSS', Style.layout, 'layout'], ['themeCSS', Style.theme(theme), 'theme'], ['emojiCSS', Emoji.css(), 'emoji'], ['dynamicCSS', Style.dynamic(), 'dynamic'], ['icons', "", 'icons'], ['paddingSheet', "", 'padding'], ['mascot', "", 'mascotSheet']];
i = 0;
while (item = items[i++]) {
Style[item[0]] = $.addStyle(item[1], item[2]);
}
$.addStyle(JSColor.css(), 'jsColor');
$.asap((function() {
return d.head;
}), Style.observe);
$.asap((function() { $.asap((function() {
return d.body; return d.body;
}), this.asapInit); }), this.asapInit);
@ -12186,57 +12200,42 @@
}); });
} }
}, },
setup: function() {
var i, item, items, theme;
theme = Themes[Conf['theme']] || Themes['Yotsuba B'];
Style.svg = $.el('div', {
id: 'svg_filters'
});
items = [['layoutCSS', Style.layout, 'layout'], ['themeCSS', Style.theme(theme), 'theme'], ['emojiCSS', Emoji.css(), 'emoji'], ['dynamicCSS', Style.dynamic(), 'dynamic'], ['icons', "", 'icons'], ['paddingSheet', "", 'padding'], ['mascot', "", 'mascotSheet']];
i = 0;
while (item = items[i++]) {
Style[item[0]] = $.addStyle(item[1], item[2]);
}
$.addStyle(JSColor.css(), 'jsColor');
if (d.head) {
this.remStyle();
}
return this.observe();
},
observe: function() { observe: function() {
var onMutationObserver; var onMutationObserver;
if (window.MutationObserver) { if (window.MutationObserver) {
Style.observer = new MutationObserver(onMutationObserver = this.wrapper); Style.observer = new MutationObserver(onMutationObserver = Style.wrapper);
return Style.observer.observe(d, { return Style.observer.observe(d.head, {
childList: true, childList: true,
subtree: true subtree: true
}); });
} else { } else {
return $.on(d, 'DOMNodeInserted', this.wrapper); return $.on(d.head, 'DOMNodeInserted', Style.wrapper);
} }
}, },
wrapper: function() { wrapper: function() {
if (d.head) { var first;
Style.remStyle();
if (d.readyState === 'complete') { first = {
if (Style.observer) { addedNodes: d.head.children
return Style.observer.disconnect(); };
} else { Style.remStyle(first);
return $.off(d, 'DOMNodeInserted', Style.wrapper); if (d.readyState === 'complete') {
} if (Style.observer) {
return Style.observer.disconnect();
} else {
return $.off(d, 'DOMNodeInserted', Style.wrapper);
} }
} }
}, },
remStyle: function() { remStyle: function(_arg) {
var href, i, node, nodes; var addedNodes, href, i, node;
nodes = d.head.children; addedNodes = _arg.addedNodes;
i = nodes.length; i = addedNodes.length;
while (i--) { while (i--) {
node = nodes[i]; node = addedNodes[i];
if (node.id || !['STYLE', 'LINK'].contains(node.nodeName) || node.rel && !(/stylesheet/.test(node.rel) || (/flags.*\.css$/.test(href = node.href) || href.slice(0, 4) === 'data')) || (/\.typeset/.test(node.textContent))) { if (node.nodeName === 'STYLE' && node.id || !['LINK', 'STYLE'].contains(node.nodeName) || node.rel && (!/stylesheet/.test(node.rel) || /flags.*\.css$/.test(href = node.href) || href.slice(0, 4) === 'data') || /\.typeset/.test(node.textContent)) {
continue; continue;
} }
$.rm(node); $.rm(node);

View File

@ -1,6 +1,28 @@
Style = Style =
init: -> init: ->
@setup() theme = Themes[Conf['theme']] or Themes['Yotsuba B']
Style.svg = $.el 'div',
id: 'svg_filters'
items = [
['layoutCSS', Style.layout, 'layout']
['themeCSS', Style.theme(theme), 'theme']
['emojiCSS', Emoji.css(), 'emoji']
['dynamicCSS', Style.dynamic(), 'dynamic']
['icons', "", 'icons']
['paddingSheet', "", 'padding']
['mascot', "", 'mascotSheet']
]
i = 0
while item = items[i++]
Style[item[0]] = $.addStyle item[1], item[2]
# Non-customizable
$.addStyle JSColor.css(), 'jsColor'
$.asap (-> d.head), Style.observe
$.asap (-> d.body), @asapInit $.asap (-> d.body), @asapInit
$.on window, "resize", Style.padding $.on window, "resize", Style.padding
$.ready @readyInit $.ready @readyInit
@ -47,61 +69,34 @@ Style =
$.on exLink, "click", -> $.on exLink, "click", ->
setTimeout Rice.nodes, 100 setTimeout Rice.nodes, 100
setup: ->
theme = Themes[Conf['theme']] or Themes['Yotsuba B']
Style.svg = $.el 'div',
id: 'svg_filters'
items = [
['layoutCSS', Style.layout, 'layout']
['themeCSS', Style.theme(theme), 'theme']
['emojiCSS', Emoji.css(), 'emoji']
['dynamicCSS', Style.dynamic(), 'dynamic']
['icons', "", 'icons']
['paddingSheet', "", 'padding']
['mascot', "", 'mascotSheet']
]
i = 0
while item = items[i++]
Style[item[0]] = $.addStyle item[1], item[2]
# Non-customizable
$.addStyle JSColor.css(), 'jsColor'
if d.head
@remStyle()
@observe()
observe: -> observe: ->
if window.MutationObserver if window.MutationObserver
Style.observer = new MutationObserver onMutationObserver = @wrapper Style.observer = new MutationObserver onMutationObserver = Style.wrapper
Style.observer.observe d, Style.observer.observe d.head,
childList: true childList: true
subtree: true subtree: true
else else
$.on d, 'DOMNodeInserted', @wrapper $.on d.head, 'DOMNodeInserted', Style.wrapper
wrapper: -> wrapper: ->
if d.head first = {addedNodes: d.head.children}
Style.remStyle() Style.remStyle(first)
if d.readyState is 'complete' if d.readyState is 'complete'
if Style.observer if Style.observer
Style.observer.disconnect() Style.observer.disconnect()
else else
$.off d, 'DOMNodeInserted', Style.wrapper $.off d, 'DOMNodeInserted', Style.wrapper
remStyle: -> remStyle: ({addedNodes}) ->
nodes = d.head.children i = addedNodes.length
i = nodes.length
while i-- while i--
node = nodes[i] node = addedNodes[i]
continue if node.id or continue if node.nodeName is 'STYLE' and node.id or
!['STYLE', 'LINK'].contains(node.nodeName) or !['LINK', 'STYLE'].contains(node.nodeName) or
node.rel and !(/stylesheet/.test(node.rel) or (/flags.*\.css$/.test(href = node.href) or href[..3] is 'data')) or node.rel and ((!/stylesheet/.test(node.rel) or /flags.*\.css$/.test(href = node.href) or href[..3] is 'data')) or
(/\.typeset/.test node.textContent) /\.typeset/.test node.textContent
$.rm node $.rm node
return return