annotate piecrust/plugins/builtin.py @ 187:d5b7c2a4ec9d

prepare: Add user-defined scaffolding templates. Any files found in `scaffold/pages` will be used as possible templates for the `chef prepare` command, in addition to the default ones.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 04 Jan 2015 15:49:31 -0800
parents 139179dc7abd
children 154b8df04829
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
60
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
1 from piecrust.commands.base import HelpCommand
163
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
2 from piecrust.commands.builtin.baking import (
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
3 BakeCommand, ShowRecordCommand)
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
4 from piecrust.commands.builtin.info import (
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
5 RootCommand, ShowConfigCommand,
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
6 FindCommand, ShowSourcesCommand, ShowRoutesCommand, ShowPathsCommand)
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
7 from piecrust.commands.builtin.scaffolding import (
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
8 PrepareCommand,
100
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
9 DefaultPrepareTemplatesCommandExtension,
187
d5b7c2a4ec9d prepare: Add user-defined scaffolding templates.
Ludovic Chabant <ludovic@chabant.com>
parents: 185
diff changeset
10 UserDefinedPrepareTemplatesCommandExtension,
100
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
11 DefaultPrepareTemplatesHelpTopic)
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
12 from piecrust.commands.builtin.serving import (ServeCommand)
163
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
13 from piecrust.commands.builtin.util import (
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
14 InitCommand, PurgeCommand, ImportCommand)
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
15 from piecrust.data.provider import (IteratorDataProvider, BlogDataProvider)
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
16 from piecrust.formatting.markdownformatter import MarkdownFormatter
124
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 117
diff changeset
17 from piecrust.formatting.textileformatter import TextileFormatter
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents: 62
diff changeset
18 from piecrust.formatting.smartypantsformatter import SmartyPantsFormatter
60
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
19 from piecrust.importing.jekyll import JekyllImporter
62
52e4d9a1f917 Simple importer for PieCrust 1 websites.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
20 from piecrust.importing.piecrust import PieCrust1Importer
1
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 from piecrust.plugins.base import PieCrustPlugin
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
22 from piecrust.processing.base import CopyFileProcessor
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
23 from piecrust.processing.less import LessProcessor
117
6827dcc9d3fb Changes to the asset processing pipeline:
Ludovic Chabant <ludovic@chabant.com>
parents: 100
diff changeset
24 from piecrust.processing.requirejs import RequireJSProcessor
34
bdb103c57168 Add `sitemap` processor.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
25 from piecrust.processing.sitemap import SitemapProcessor
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
26 from piecrust.sources.base import DefaultPageSource
163
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
27 from piecrust.sources.posts import (
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
28 FlatPostsSource, ShallowPostsSource, HierarchyPostsSource)
148
432cd534ce08 Add `autoconfig` page source.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
29 from piecrust.sources.autoconfig import AutoConfigSource
157
55910ab4bfea First draft of the `prose` page source.
Ludovic Chabant <ludovic@chabant.com>
parents: 148
diff changeset
30 from piecrust.sources.prose import ProseSource
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
31 from piecrust.templating.jinjaengine import JinjaTemplateEngine
185
139179dc7abd render: Add support for a Mustache template engine.
Ludovic Chabant <ludovic@chabant.com>
parents: 163
diff changeset
32 from piecrust.templating.pystacheengine import PystacheTemplateEngine
1
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 class BuiltInPlugin(PieCrustPlugin):
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 def __init__(self):
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 super(BuiltInPlugin, self).__init__()
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 self.name = '__builtin__'
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 def getCommands(self):
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 return [
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 InitCommand(),
60
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
43 ImportCommand(),
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
44 HelpCommand(),
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
45 RootCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
46 PurgeCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
47 ShowConfigCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
48 FindCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
49 PrepareCommand(),
163
6d23473fab41 sources: Add `chef sources` command to list page sources.
Ludovic Chabant <ludovic@chabant.com>
parents: 157
diff changeset
50 ShowSourcesCommand(),
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
51 ShowRoutesCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
52 ShowPathsCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
53 BakeCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
54 ShowRecordCommand(),
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
55 ServeCommand()]
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
56
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
57 def getCommandExtensions(self):
100
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
58 return [
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
59 DefaultPrepareTemplatesCommandExtension(),
187
d5b7c2a4ec9d prepare: Add user-defined scaffolding templates.
Ludovic Chabant <ludovic@chabant.com>
parents: 185
diff changeset
60 UserDefinedPrepareTemplatesCommandExtension(),
100
69d5eecfa449 Better `prepare` command, with templates and help topics.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
61 DefaultPrepareTemplatesHelpTopic()]
1
aaa8fb7c8918 Re-arranged modules to reduce dependencies to builtin stuff.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
63 def getSources(self):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
64 return [
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
65 DefaultPageSource,
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
66 FlatPostsSource,
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
67 ShallowPostsSource,
148
432cd534ce08 Add `autoconfig` page source.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
68 HierarchyPostsSource,
157
55910ab4bfea First draft of the `prose` page source.
Ludovic Chabant <ludovic@chabant.com>
parents: 148
diff changeset
69 AutoConfigSource,
55910ab4bfea First draft of the `prose` page source.
Ludovic Chabant <ludovic@chabant.com>
parents: 148
diff changeset
70 ProseSource]
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
71
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
72 def getDataProviders(self):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
73 return [
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
74 IteratorDataProvider,
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
75 BlogDataProvider]
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
76
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
77 def getTemplateEngines(self):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
78 return [
185
139179dc7abd render: Add support for a Mustache template engine.
Ludovic Chabant <ludovic@chabant.com>
parents: 163
diff changeset
79 JinjaTemplateEngine(),
139179dc7abd render: Add support for a Mustache template engine.
Ludovic Chabant <ludovic@chabant.com>
parents: 163
diff changeset
80 PystacheTemplateEngine()]
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
81
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
82 def getFormatters(self):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
83 return [
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents: 62
diff changeset
84 MarkdownFormatter(),
124
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 117
diff changeset
85 SmartyPantsFormatter(),
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 117
diff changeset
86 TextileFormatter()]
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
87
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
88 def getProcessors(self):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
89 return [
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
90 CopyFileProcessor(),
34
bdb103c57168 Add `sitemap` processor.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
91 LessProcessor(),
117
6827dcc9d3fb Changes to the asset processing pipeline:
Ludovic Chabant <ludovic@chabant.com>
parents: 100
diff changeset
92 RequireJSProcessor(),
34
bdb103c57168 Add `sitemap` processor.
Ludovic Chabant <ludovic@chabant.com>
parents: 3
diff changeset
93 SitemapProcessor()]
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents: 1
diff changeset
94
60
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
95 def getImporters(self):
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
96 return [
62
52e4d9a1f917 Simple importer for PieCrust 1 websites.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
97 JekyllImporter(),
52e4d9a1f917 Simple importer for PieCrust 1 websites.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
98 PieCrust1Importer()]
60
6e60e0fef2be Add `import` command, Jekyll importer.
Ludovic Chabant <ludovic@chabant.com>
parents: 34
diff changeset
99