annotate piecrust/processing/sass.py @ 1189:bfa470063ee2 draft

cm: Update node packages.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 16 Jun 2021 09:28:42 -0700
parents a3dec0fbd9ce
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import os
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 import os.path
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import json
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 import hashlib
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 import logging
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 import platform
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 import subprocess
852
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
8 from piecrust.processing.base import SimpleFileProcessor, FORCE_BUILD
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 logger = logging.getLogger(__name__)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 class SassProcessor(SimpleFileProcessor):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 PROCESSOR_NAME = 'sass'
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 def __init__(self):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 super(SassProcessor, self).__init__(
852
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
19 extensions={'scss': 'css', 'sass': 'css'})
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 self._conf = None
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 self._map_dir = None
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 def initialize(self, app):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 super(SassProcessor, self).initialize(app)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25
852
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
26 def onPipelineStart(self, ctx):
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
27 super(SassProcessor, self).onPipelineStart(ctx)
414
c4b3a7fd2f87 bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents: 371
diff changeset
28
852
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
29 self._map_dir = os.path.join(ctx.tmp_dir, 'sass')
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
30 if ctx.is_main_process:
414
c4b3a7fd2f87 bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents: 371
diff changeset
31 if not os.path.isdir(self._map_dir):
c4b3a7fd2f87 bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents: 371
diff changeset
32 os.makedirs(self._map_dir)
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 # Ignore include-only Sass files.
852
4850f8c21b6e core: Start of the big refactor for PieCrust 3.0.
Ludovic Chabant <ludovic@chabant.com>
parents: 666
diff changeset
35 ctx.ignore_patterns += ['_*.scss', '_*.sass']
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 def getDependencies(self, path):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 if _is_include_only(path):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 raise Exception("Include only Sass files should be ignored!")
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 map_path = self._getMapPath(path)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 try:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 with open(map_path, 'r') as f:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 dep_map = json.load(f)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45 except IOError:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 # Map file not found... rebuild.
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47 logger.debug("No map file found for Sass file '%s' at '%s'. "
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 "Rebuilding." % (path, map_path))
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 return FORCE_BUILD
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51 if dep_map.get('version') != 3:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 logger.warning("Unknown Sass map version. Rebuilding.")
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 return FORCE_BUILD
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 sources = dep_map.get('sources', [])
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 deps = list(map(_clean_scheme, sources))
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 return deps
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59 def _doProcess(self, in_path, out_path):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 self._ensureInitialized()
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 if _is_include_only(in_path):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 raise Exception("Include only Sass files should be ignored!")
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 sourcemap = 'none'
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 if self.app.cache.enabled:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67 sourcemap = 'file'
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 args = [self._conf['bin'],
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 '--sourcemap=%s' % sourcemap,
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 '--style', self._conf['style']]
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 cache_dir = self._conf['cache_dir']
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 if cache_dir:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 args += ['--cache-location', cache_dir]
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76 else:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 args += ['--no-cache']
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 for lp in self._conf['load_paths']:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80 args += ['-I', lp]
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 args += self._conf['options']
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 args += [in_path, out_path]
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 logger.debug("Processing Sass file: %s" % args)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 try:
1112
a3dec0fbd9ce bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
Ludovic Chabant <ludovic@chabant.com>
parents: 1065
diff changeset
87 retcode = subprocess.call(args)
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 except FileNotFoundError as ex:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 logger.error("Tried running Sass processor with command: %s" %
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 args)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
91 raise Exception("Error running Sass processor. "
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
92 "Did you install it?") from ex
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94 # The sourcemap is generated next to the CSS file... there doesn't
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95 # seem to be any option to override that, sadly... so we need to move
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96 # it to the cache directory.
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97 if self.app.cache.enabled:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98 src_map_file = out_path + '.map'
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
99 dst_map_file = self._getMapPath(in_path)
499
a406b75c4bea sass: Overwrite the old map file with the new one always.
Ludovic Chabant <ludovic@chabant.com>
parents: 481
diff changeset
100 if os.path.exists(dst_map_file):
a406b75c4bea sass: Overwrite the old map file with the new one always.
Ludovic Chabant <ludovic@chabant.com>
parents: 481
diff changeset
101 os.remove(dst_map_file)
a406b75c4bea sass: Overwrite the old map file with the new one always.
Ludovic Chabant <ludovic@chabant.com>
parents: 481
diff changeset
102 os.rename(src_map_file, dst_map_file)
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
103
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 if retcode != 0:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
105 raise Exception("Error occured in Sass compiler. Please check "
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 "log messages above for more information.")
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108 return True
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
109
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
110 def _ensureInitialized(self):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
111 if self._conf is not None:
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112 return
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113
1112
a3dec0fbd9ce bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
Ludovic Chabant <ludovic@chabant.com>
parents: 1065
diff changeset
114 bin_name = 'scss'
a3dec0fbd9ce bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
Ludovic Chabant <ludovic@chabant.com>
parents: 1065
diff changeset
115 if platform.system() == 'Windows':
a3dec0fbd9ce bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
Ludovic Chabant <ludovic@chabant.com>
parents: 1065
diff changeset
116 bin_name += '.cmd'
a3dec0fbd9ce bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
Ludovic Chabant <ludovic@chabant.com>
parents: 1065
diff changeset
117
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
118 self._conf = self.app.config.get('sass') or {}
1112
a3dec0fbd9ce bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
Ludovic Chabant <ludovic@chabant.com>
parents: 1065
diff changeset
119 self._conf.setdefault('bin', bin_name)
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
120 self._conf.setdefault('style', 'nested')
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
121 self._conf.setdefault('load_paths', [])
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
122 if not isinstance(self._conf['load_paths'], list):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
123 raise Exception("The `sass/load_paths` configuration setting "
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
124 "must be an array of paths.")
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
125 self._conf.setdefault('options', [])
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
126 if not isinstance(self._conf['options'], list):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
127 raise Exception("The `sass/options` configuration setting "
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
128 "must be an array of arguments.")
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129
1065
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
130 app_root_dir = self.app.root_dir
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
131 load_paths = list(self._conf['load_paths'])
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
132 for i, lp in enumerate(load_paths):
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
133 self._conf['load_paths'][i] = os.path.join(app_root_dir, lp)
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
134
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
135 cache_dir = None
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
136 if self.app.cache.enabled:
666
81d9c3a3a0b5 internal: Get rid of the whole "sub cache" business.
Ludovic Chabant <ludovic@chabant.com>
parents: 499
diff changeset
137 cache_dir = os.path.join(self.app.cache_dir, 'sass')
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
138 self._conf.setdefault('cache_dir', cache_dir)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
139
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
140 def _getMapPath(self, path):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
141 map_name = "%s_%s.map" % (
1065
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
142 os.path.basename(path),
e00ff3dcb5ec sass: Make sure `load_paths` are relative to the website's root.
Ludovic Chabant <ludovic@chabant.com>
parents: 852
diff changeset
143 hashlib.md5(path.encode('utf8')).hexdigest())
196
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
144 map_path = os.path.join(self._map_dir, map_name)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
145 return map_path
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
146
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
147
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
148 def _clean_scheme(p):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
149 if p.startswith('file://'):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
150 return p[7:]
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
151 return p
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
152
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
153
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
154 def _is_include_only(path):
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
155 name = os.path.basename(path)
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
156 return len(name) > 0 and name[0] == '_'
154b8df04829 processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
157