Files
deb-python-lesscpy/lesscpy/plib/block.py
2012-02-26 17:04:50 +00:00

49 lines
1.5 KiB
Python

"""
"""
import re
from .node import Node
from lesscpy.lessc import utility
class Block(Node):
pass
def parse(self, scope):
"""
"""
if not self.parsed:
self.name, inner = self.tokens
if not inner: inner = []
self.parsed = [p.parse(scope)
for p in inner
if p and type(p) is not type(self)]
if not inner:
self.inner = []
else:
self. inner = [p for p in inner
if p and type(p) is type(self)]
if self.inner:
self.inner = [p.parse(scope) for p in self.inner]
return self
def format(self, fills):
"""
"""
out = []
if self.parsed:
f = "%(identifier)s%(ws)s{%(nl)s%(proplist)s}%(eb)s"
name = self.name.strip()
if fills['nl']:
if len(name) > 80 and name.count(',') > 5:
name = name.replace(',', ',%s' % fills['nl'])
else:
name = name.replace(',', ',%s' % fills['ws'])
else:
name = re.sub(' ([\+\>~]) ', '\\1', name)
fills.update({
'identifier': name,
'proplist': ''.join([p.format(fills) for p in self.parsed]),
})
out.append(f % fills)
if self.inner:
out.append(''.join([p.format(fills) for p in self.inner]))
return ''.join(out)