From 0d7d4cb142ecfe5c2cb0b9649fdecf106c4d9839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Thu, 4 Jun 2015 09:06:04 +0200 Subject: [PATCH] Custom webassets filter that rewrites LESS imports Need to point to ../less folder --- src/octoprint/server/__init__.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index c8707b39..115ed3f1 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -751,8 +751,29 @@ class Server(): css_libs_bundle = Bundle(*css_libs, output="webassets/packed_libs.css") css_app_bundle = Bundle(*css_app, output="webassets/packed_app.css") + from webassets.filter import register_filter + from webassets.filter.cssrewrite.base import PatternRewriter + import re + class LessImportRewrite(PatternRewriter): + name = "less_importrewrite" + + patterns = { + "import_rewrite": re.compile("(@import(\s+\(.*\))?\s+)\"(.*)\";") + } + + def import_rewrite(self, m): + import_with_options = m.group(1) + import_url = m.group(3) + + if not import_url.startswith("http:") and not import_url.startswith("https:") and not import_url.startswith("/"): + import_url = "../less/" + import_url + + return "{import_with_options}\"{import_url}\";".format(**locals()) + + register_filter(LessImportRewrite) + all_css_bundle = Bundle(css_libs_bundle, css_app_bundle, output="webassets/packed.css") - all_less_bundle = Bundle(*less_app, output="webassets/packed.less") + all_less_bundle = Bundle(*less_app, output="webassets/packed.less", filters="less_importrewrite") assets.register("all_js", all_js_bundle) assets.register("all_css", all_css_bundle)