comparison piecrust/processing/requirejs.py @ 852:4850f8c21b6e

core: Start of the big refactor for PieCrust 3.0. * Everything is a `ContentSource`, including assets directories. * Most content sources are subclasses of the base file-system source. * A source is processed by a "pipeline", and there are 2 built-in pipelines, one for assets and one for pages. The asset pipeline is vaguely functional, but the page pipeline is completely broken right now. * Rewrite the baking process as just running appropriate pipelines on each content item. This should allow for better parallelization.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 17 May 2017 00:11:48 -0700
parents e5f048799d61
children
comparison
equal deleted inserted replaced
851:2c7e57d80bba 852:4850f8c21b6e
1 import os 1 import os
2 import os.path 2 import os.path
3 import json
4 import hashlib
5 import logging 3 import logging
6 import platform 4 import platform
7 import subprocess 5 import subprocess
8 from piecrust.processing.base import Processor, PRIORITY_FIRST 6 from piecrust.processing.base import Processor, PRIORITY_FIRST, FORCE_BUILD
9 from piecrust.processing.tree import FORCE_BUILD
10 7
11 8
12 logger = logging.getLogger(__name__) 9 logger = logging.getLogger(__name__)
13 10
14 11
31 raise Exception("You need to specify `requirejs/build_path` " 28 raise Exception("You need to specify `requirejs/build_path` "
32 "for RequireJS.") 29 "for RequireJS.")
33 self._conf.setdefault('bin', 'r.js') 30 self._conf.setdefault('bin', 'r.js')
34 self._conf.setdefault('out_path', self._conf['build_path']) 31 self._conf.setdefault('out_path', self._conf['build_path'])
35 32
36 def onPipelineStart(self, pipeline): 33 def onPipelineStart(self, ctx):
37 super(RequireJSProcessor, self).onPipelineStart(pipeline) 34 super(RequireJSProcessor, self).onPipelineStart(ctx)
38 35
39 if self._conf is None: 36 if self._conf is None:
40 return 37 return
41 38
42 logger.debug("Adding Javascript suppressor to build pipeline.") 39 logger.debug("Adding Javascript suppressor to build pipeline.")
43 skip = _JavascriptSkipProcessor(self._conf['build_path']) 40 skip = _JavascriptSkipProcessor(self._conf['build_path'])
44 pipeline.processors.append(skip) 41 ctx.extra_processors.append(skip)
45 42
46 def matches(self, path): 43 def matches(self, path):
47 if self._conf is None: 44 if self._conf is None:
48 return False 45 return False
49 return path == self._conf['build_path'] 46 return path == self._conf['build_path']