@@ -22,12 +22,22 @@ class LessCSSPlugin(CLTransformer):
def executable_name(self):
return "lessc"
def _should_parse_resource(self, resource):
"""
Check user defined
"""
return getattr(resource, 'meta', {}).get('parse', True)
def _should_replace_imports(self, resource):
return getattr(resource, 'meta', {}).get('uses_template', True)
def begin_site(self):
"""
Find all the less css files and set their relative deploy path.
"""
for resource in self.site.content.walk_resources():
if resource.source_file.kind == 'less':
if resource.source_file.kind == 'less' and \
self._should_parse_resource(resource):
new_name = resource.source_file.name_without_extension + ".css"
target_folder = File(resource.relative_deploy_path).parent
resource.relative_deploy_path = target_folder.child(new_name)
@@ -37,8 +47,11 @@ class LessCSSPlugin(CLTransformer):
Replace @import statements with {% include %} statements.
"""
if not resource.source_file.kind == 'less':
if not resource.source_file.kind == 'less' or not \
self._should_parse_resource(resource) or not \
self._should_replace_imports(resource):
return text
import_finder = re.compile(
'^\\s*@import\s+(?:\'|\")([^\'\"]*)(?:\'|\")\s*\;\s*$',
re.MULTILINE)
@@ -73,7 +86,8 @@ class LessCSSPlugin(CLTransformer):
Read the generated file and return the text as output.
Set the target path to have a css extension.
"""
if not resource.source_file.kind == 'less':
if not resource.source_file.kind == 'less' or not \
self._should_parse_resource(resource):
return
supported = [
@@ -82,7 +96,8 @@ class LessCSSPlugin(CLTransformer):
("compress", "x"),
"O0",
"O1",
"O2"
"O2",
"include-path="
]
less = self.app