diff --git a/src/Miscellaneous/CustomCSS.coffee b/src/Miscellaneous/CustomCSS.coffee index a6f621793..666d09c85 100644 --- a/src/Miscellaneous/CustomCSS.coffee +++ b/src/Miscellaneous/CustomCSS.coffee @@ -4,7 +4,7 @@ CustomCSS = @addStyle() addStyle: -> - @style = $.addStyle Conf['usercss'], 'custom-css', '#fourchanx-css' + @style = $.addStyle CSS.sub(Conf['usercss']), 'custom-css', '#fourchanx-css' rmStyle: -> if @style @@ -14,4 +14,4 @@ CustomCSS = update: -> unless @style return @addStyle() - @style.textContent = Conf['usercss'] + @style.textContent = CSS.sub Conf['usercss'] diff --git a/src/css/CSS.js b/src/css/CSS.js index cbafdda42..efdd903f4 100644 --- a/src/css/CSS.js +++ b/src/css/CSS.js @@ -16,6 +16,22 @@ report: <%= multiline(read('report.css')) %>, www: -<%= multiline(read('www.css')) %> +<%= multiline(read('www.css')) %>, + +sub: function(css) { + var variables = { + site: Site.selectors + }; + return css.replace(/\$[\w\$]+/g, function(name) { + var words = name.slice(1).split('$'); + var sel = variables; + for (var i = 0; i < words.length; i++) { + if (typeof sel !== 'object') return name; + sel = sel[words[i]]; + } + if (typeof sel !== 'string') return name; + return sel; + }); +} }; diff --git a/src/main/Main.coffee b/src/main/Main.coffee index ca428d504..5f06510ff 100644 --- a/src/main/Main.coffee +++ b/src/main/Main.coffee @@ -223,7 +223,7 @@ Main = Conf['Autohiding Scrollbar'] = !Conf['Autohiding Scrollbar'] $.set 'Autohiding Scrollbar', Conf['Autohiding Scrollbar'] $.toggleClass doc, 'autohiding-scrollbar' - $.addStyle CSS.boards, 'fourchanx-css' + $.addStyle CSS.sub(CSS.boards), 'fourchanx-css' Main.bgColorStyle = $.el 'style', id: 'fourchanx-bgcolor-css' keyboard = false