view piecrust/plugins/builtin.py @ 1152:74c0c7483986

copyasset: Add `copyasset` command.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 19 Jan 2019 17:40:13 -0800
parents 986ecdaa2a36
children
line wrap: on
line source

from piecrust.plugins.base import PieCrustPlugin


class BuiltInPlugin(PieCrustPlugin):
    name = '__builtin__'

    def getCommands(self):
        from piecrust.commands.base import HelpCommand
        from piecrust.commands.builtin.admin import AdministrationPanelCommand
        from piecrust.commands.builtin.baking import (
            BakeCommand, ShowRecordCommand)
        from piecrust.commands.builtin.info import (
            RootCommand, ShowConfigCommand,
            FindCommand, ShowSourcesCommand, ShowRoutesCommand,
            ShowPathsCommand, UrlCommand)
        from piecrust.commands.builtin.plugins import PluginsCommand
        from piecrust.commands.builtin.publishing import PublishCommand
        from piecrust.commands.builtin.scaffolding import (
            PrepareCommand, CopyAssetCommand)
        from piecrust.commands.builtin.serving import ServeCommand
        from piecrust.commands.builtin.tasks import TasksCommand
        from piecrust.commands.builtin.themes import ThemesCommand
        from piecrust.commands.builtin.util import (
            InitCommand, PurgeCommand, ImportCommand)

        return [
            InitCommand(),
            ImportCommand(),
            HelpCommand(),
            RootCommand(),
            PurgeCommand(),
            ShowConfigCommand(),
            FindCommand(),
            PrepareCommand(),
            CopyAssetCommand(),
            ShowSourcesCommand(),
            ShowRoutesCommand(),
            ShowPathsCommand(),
            UrlCommand(),
            ThemesCommand(),
            PluginsCommand(),
            BakeCommand(),
            ShowRecordCommand(),
            ServeCommand(),
            AdministrationPanelCommand(),
            PublishCommand(),
            TasksCommand()
        ]

    def getCommandExtensions(self):
        from piecrust.commands.builtin.scaffolding import (
            DefaultPrepareTemplatesCommandExtension,
            UserDefinedPrepareTemplatesCommandExtension,
            DefaultPrepareTemplatesHelpTopic)

        return [
            DefaultPrepareTemplatesCommandExtension(),
            UserDefinedPrepareTemplatesCommandExtension(),
            DefaultPrepareTemplatesHelpTopic()]

    def getSources(self):
        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.prose import ProseSource
        from piecrust.sources.taxonomy import TaxonomySource

        return [
            AutoConfigContentSource,
            BlogArchivesSource,
            DefaultContentSource,
            FSContentSource,
            FlatPostsSource,
            HierarchyPostsSource,
            OrderedContentSource,
            ProseSource,
            ShallowPostsSource,
            TaxonomySource]

    def getPipelines(self):
        from piecrust.pipelines.page import PagePipeline
        from piecrust.pipelines.asset import AssetPipeline
        from piecrust.sources.taxonomy import TaxonomyPipeline
        from piecrust.sources.blogarchives import BlogArchivesPipeline

        return [
            PagePipeline,
            AssetPipeline,
            TaxonomyPipeline,
            BlogArchivesPipeline]

    def getDataProviders(self):
        from piecrust.dataproviders.pageiterator import \
            PageIteratorDataProvider
        from piecrust.dataproviders.blog import BlogDataProvider

        return [
            PageIteratorDataProvider,
            BlogDataProvider]

    def getTemplateEngines(self):
        from piecrust.templating.inukshukengine import InukshukTemplateEngine
        from piecrust.templating.jinjaengine import JinjaTemplateEngine
        from piecrust.templating.pystacheengine import PystacheTemplateEngine

        return [
            InukshukTemplateEngine(),
            JinjaTemplateEngine(),
            PystacheTemplateEngine()]

    def getFormatters(self):
        from piecrust.formatting.markdownformatter import MarkdownFormatter
        from piecrust.formatting.textileformatter import TextileFormatter
        from piecrust.formatting.smartypantsformatter import (
            SmartyPantsFormatter)

        return [
            MarkdownFormatter(),
            SmartyPantsFormatter(),
            TextileFormatter()]

    def getProcessors(self):
        from piecrust.processing.browserify import BrowserifyProcessor
        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
        from piecrust.processing.sass import SassProcessor
        from piecrust.processing.sitemap import SitemapProcessor
        from piecrust.processing.util import ConcatProcessor

        return [
            BrowserifyProcessor(),
            CopyFileProcessor(),
            ConcatProcessor(),
            PygmentsStyleProcessor(),
            CompassProcessor(),
            LessProcessor(),
            SassProcessor(),
            RequireJSProcessor(),
            SitemapProcessor(),
            CleanCssProcessor(),
            UglifyJSProcessor()]

    def getImporters(self):
        from piecrust.importing.jekyll import JekyllImporter
        from piecrust.importing.piecrust import PieCrust1Importer
        from piecrust.importing.wordpress import WordpressXmlImporter

        return [
            PieCrust1Importer(),
            JekyllImporter(),
            WordpressXmlImporter()]

    def getPublishers(self):
        from piecrust.publishing.copy import CopyPublisher
        from piecrust.publishing.sftp import SftpPublisher
        from piecrust.publishing.shell import ShellCommandPublisher
        from piecrust.publishing.rsync import RsyncPublisher

        return [
            CopyPublisher,
            ShellCommandPublisher,
            SftpPublisher,
            RsyncPublisher]

    def getTaskRunners(self):
        from piecrust.tasks.mentions import MentionTaskRunner

        return [
            MentionTaskRunner]