diff piecrust/plugins/builtin.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 ad12a942cadd
children 08e02c2a2a1a
line wrap: on
line diff
--- a/piecrust/plugins/builtin.py	Sat Apr 29 21:42:22 2017 -0700
+++ b/piecrust/plugins/builtin.py	Wed May 17 00:11:48 2017 -0700
@@ -53,29 +53,35 @@
             DefaultPrepareTemplatesHelpTopic()]
 
     def getSources(self):
-        from piecrust.sources.default import DefaultPageSource
+        from piecrust.sources.autoconfig import (
+            AutoConfigContentSource, OrderedContentSource)
+        from piecrust.sources.blogarchives import BlogArchivesSource
+        from piecrust.sources.default import DefaultContentSource
+        from piecrust.sources.fs import FSContentSource
         from piecrust.sources.posts import (
-                FlatPostsSource, ShallowPostsSource, HierarchyPostsSource)
-        from piecrust.sources.autoconfig import (
-                AutoConfigSource, OrderedPageSource)
+            FlatPostsSource, ShallowPostsSource, HierarchyPostsSource)
         from piecrust.sources.prose import ProseSource
+        from piecrust.sources.taxonomy import TaxonomySource
 
         return [
-            DefaultPageSource,
+            AutoConfigContentSource,
+            BlogArchivesSource,
+            DefaultContentSource,
+            FSContentSource,
             FlatPostsSource,
-            ShallowPostsSource,
             HierarchyPostsSource,
-            AutoConfigSource,
-            OrderedPageSource,
-            ProseSource]
+            OrderedContentSource,
+            ProseSource,
+            ShallowPostsSource,
+            TaxonomySource]
 
-    def getPageGenerators(self):
-        from piecrust.generation.blogarchives import BlogArchivesPageGenerator
-        from piecrust.generation.taxonomy import TaxonomyPageGenerator
+    def getPipelines(self):
+        from piecrust.pipelines.page import PagePipeline
+        from piecrust.pipelines.asset import AssetPipeline
 
         return [
-            TaxonomyPageGenerator,
-            BlogArchivesPageGenerator]
+            PagePipeline,
+            AssetPipeline]
 
     def getDataProviders(self):
         from piecrust.data.provider import (
@@ -107,10 +113,10 @@
             TextileFormatter()]
 
     def getProcessors(self):
-        from piecrust.processing.base import CopyFileProcessor
         from piecrust.processing.compass import CompassProcessor
         from piecrust.processing.compressors import (
             CleanCssProcessor, UglifyJSProcessor)
+        from piecrust.processing.copy import CopyFileProcessor
         from piecrust.processing.less import LessProcessor
         from piecrust.processing.pygments_style import PygmentsStyleProcessor
         from piecrust.processing.requirejs import RequireJSProcessor