annotate piecrust/processing/sass.py @ 1145:e94737572542

serve: Fix an issue where false positive matches were rendered as the requested page. Now we try to render the page, but also try to detect for the most common "empty" pages.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 05 Jun 2018 22:08:51 -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