diff --git a/hyde/ext/plugins/less.py b/hyde/ext/plugins/less.py index f724281..d64d706 100644 --- a/hyde/ext/plugins/less.py +++ b/hyde/ext/plugins/less.py @@ -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 diff --git a/hyde/model.py b/hyde/model.py index 6185c45..7c91e30 100644 --- a/hyde/model.py +++ b/hyde/model.py @@ -81,6 +81,12 @@ class Expando(object): result[k] = v return result + def get(self, key, default=None): + """ + Dict like get helper method + """ + return self.__dict__.get(key, default) + class Context(object): """