comparison 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
comparison
equal deleted inserted replaced
851:2c7e57d80bba 852:4850f8c21b6e
51 DefaultPrepareTemplatesCommandExtension(), 51 DefaultPrepareTemplatesCommandExtension(),
52 UserDefinedPrepareTemplatesCommandExtension(), 52 UserDefinedPrepareTemplatesCommandExtension(),
53 DefaultPrepareTemplatesHelpTopic()] 53 DefaultPrepareTemplatesHelpTopic()]
54 54
55 def getSources(self): 55 def getSources(self):
56 from piecrust.sources.default import DefaultPageSource 56 from piecrust.sources.autoconfig import (
57 AutoConfigContentSource, OrderedContentSource)
58 from piecrust.sources.blogarchives import BlogArchivesSource
59 from piecrust.sources.default import DefaultContentSource
60 from piecrust.sources.fs import FSContentSource
57 from piecrust.sources.posts import ( 61 from piecrust.sources.posts import (
58 FlatPostsSource, ShallowPostsSource, HierarchyPostsSource) 62 FlatPostsSource, ShallowPostsSource, HierarchyPostsSource)
59 from piecrust.sources.autoconfig import (
60 AutoConfigSource, OrderedPageSource)
61 from piecrust.sources.prose import ProseSource 63 from piecrust.sources.prose import ProseSource
64 from piecrust.sources.taxonomy import TaxonomySource
62 65
63 return [ 66 return [
64 DefaultPageSource, 67 AutoConfigContentSource,
68 BlogArchivesSource,
69 DefaultContentSource,
70 FSContentSource,
65 FlatPostsSource, 71 FlatPostsSource,
72 HierarchyPostsSource,
73 OrderedContentSource,
74 ProseSource,
66 ShallowPostsSource, 75 ShallowPostsSource,
67 HierarchyPostsSource, 76 TaxonomySource]
68 AutoConfigSource,
69 OrderedPageSource,
70 ProseSource]
71 77
72 def getPageGenerators(self): 78 def getPipelines(self):
73 from piecrust.generation.blogarchives import BlogArchivesPageGenerator 79 from piecrust.pipelines.page import PagePipeline
74 from piecrust.generation.taxonomy import TaxonomyPageGenerator 80 from piecrust.pipelines.asset import AssetPipeline
75 81
76 return [ 82 return [
77 TaxonomyPageGenerator, 83 PagePipeline,
78 BlogArchivesPageGenerator] 84 AssetPipeline]
79 85
80 def getDataProviders(self): 86 def getDataProviders(self):
81 from piecrust.data.provider import ( 87 from piecrust.data.provider import (
82 IteratorDataProvider, BlogDataProvider) 88 IteratorDataProvider, BlogDataProvider)
83 89
105 MarkdownFormatter(), 111 MarkdownFormatter(),
106 SmartyPantsFormatter(), 112 SmartyPantsFormatter(),
107 TextileFormatter()] 113 TextileFormatter()]
108 114
109 def getProcessors(self): 115 def getProcessors(self):
110 from piecrust.processing.base import CopyFileProcessor
111 from piecrust.processing.compass import CompassProcessor 116 from piecrust.processing.compass import CompassProcessor
112 from piecrust.processing.compressors import ( 117 from piecrust.processing.compressors import (
113 CleanCssProcessor, UglifyJSProcessor) 118 CleanCssProcessor, UglifyJSProcessor)
119 from piecrust.processing.copy import CopyFileProcessor
114 from piecrust.processing.less import LessProcessor 120 from piecrust.processing.less import LessProcessor
115 from piecrust.processing.pygments_style import PygmentsStyleProcessor 121 from piecrust.processing.pygments_style import PygmentsStyleProcessor
116 from piecrust.processing.requirejs import RequireJSProcessor 122 from piecrust.processing.requirejs import RequireJSProcessor
117 from piecrust.processing.sass import SassProcessor 123 from piecrust.processing.sass import SassProcessor
118 from piecrust.processing.sitemap import SitemapProcessor 124 from piecrust.processing.sitemap import SitemapProcessor