From 6ecdef7f351f78b488f3704bbe977aa4c27e4346 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 20 Dec 2013 11:12:40 +0100 Subject: [PATCH] Support expressions in @media attributes --- lesscpy/plib/identifier.py | 8 ++++++++ lesscpy/test/css/media.css | 5 +++++ lesscpy/test/css/media.min.css | 1 + lesscpy/test/less/media.less | 7 +++++++ 4 files changed, 21 insertions(+) diff --git a/lesscpy/plib/identifier.py b/lesscpy/plib/identifier.py index 50e18e5..a012665 100644 --- a/lesscpy/plib/identifier.py +++ b/lesscpy/plib/identifier.py @@ -39,6 +39,14 @@ class Identifier(Node): self.tokens = list(utility.flatten([id.split() + [','] for id in self.tokens.parse(scope).split(',')])) self.tokens.pop() + if self.tokens and any(hasattr(t, 'parse') for t in self.tokens): + tmp_tokens = [] + for t in self.tokens: + if hasattr(t, 'parse'): + tmp_tokens.append(t.parse(scope)) + else: + tmp_tokens.append(t) + self.tokens = list(utility.flatten(tmp_tokens)) if self.tokens and self.tokens[0] in self._subp: name = list(utility.flatten(self.tokens)) self.subparse = True diff --git a/lesscpy/test/css/media.css b/lesscpy/test/css/media.css index 217091f..7235e1e 100644 --- a/lesscpy/test/css/media.css +++ b/lesscpy/test/css/media.css @@ -39,3 +39,8 @@ margin: 0 auto; } } +@media (width:767px) { + .visible-xs { + display: block; + } +} diff --git a/lesscpy/test/css/media.min.css b/lesscpy/test/css/media.min.css index 0697ad0..645902d 100644 --- a/lesscpy/test/css/media.min.css +++ b/lesscpy/test/css/media.min.css @@ -7,3 +7,4 @@ body{max-width:35em;margin:0 auto;}} @media all and (orientation:portrait){aside{float:none;}} @media (min-width:768px)and (max-width: 979px){.hidden-desktop{display:none !important;}} @media (min-width:12px){body{margin:0 auto;}} +@media (width:767px){.visible-xs{display:block;}} diff --git a/lesscpy/test/less/media.less b/lesscpy/test/less/media.less index f5696cd..823ce02 100644 --- a/lesscpy/test/less/media.less +++ b/lesscpy/test/less/media.less @@ -47,3 +47,10 @@ @media (min-width: @minwidth) { body { margin: 0 auto; } } +/* + Expressions + */ +@foo: 768px - 1; +@media (width: @foo) { + .visible-xs { display: block; } +}