diff --git a/api/src/main/groovy/com/jessebrault/ssg/buildscript/DefaultBuildScriptConfiguratorFactory.groovy b/api/src/main/groovy/com/jessebrault/ssg/buildscript/DefaultBuildScriptConfiguratorFactory.groovy index 1ad5567..979ae77 100644 --- a/api/src/main/groovy/com/jessebrault/ssg/buildscript/DefaultBuildScriptConfiguratorFactory.groovy +++ b/api/src/main/groovy/com/jessebrault/ssg/buildscript/DefaultBuildScriptConfiguratorFactory.groovy @@ -5,26 +5,19 @@ import com.jessebrault.ssg.html.TextToHtmlSpec import com.jessebrault.ssg.html.TextToHtmlTaskFactory import com.jessebrault.ssg.page.PageTypes import com.jessebrault.ssg.page.PagesProviders -import com.jessebrault.ssg.part.Part import com.jessebrault.ssg.part.PartTypes +import com.jessebrault.ssg.part.PartsProviders import com.jessebrault.ssg.provider.CollectionProviders -import com.jessebrault.ssg.template.TemplatesProviders -import com.jessebrault.ssg.text.TextsProviders -import com.jessebrault.ssg.template.Template import com.jessebrault.ssg.template.TemplateTypes +import com.jessebrault.ssg.template.TemplatesProviders import com.jessebrault.ssg.text.TextTypes -import com.jessebrault.ssg.util.ExtensionUtil -import com.jessebrault.ssg.util.PathUtil +import com.jessebrault.ssg.text.TextsProviders import com.jessebrault.ssg.util.Result -import org.slf4j.Logger -import org.slf4j.LoggerFactory import java.util.function.Consumer final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfiguratorFactory { - private static final Logger logger = LoggerFactory.getLogger(DefaultBuildScriptConfiguratorFactory) - @Override Consumer get() { return { @@ -43,24 +36,14 @@ final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfigur texts(TextsProviders.from(new File('texts'), types.textTypes)) pages(PagesProviders.from(new File('pages'), types.pageTypes)) templates(TemplatesProviders.from(new File('templates'), types.templateTypes)) - - parts(CollectionProviders.from(new File('parts')) { File file -> - def extension = ExtensionUtil.getExtension(file.path) - def partType = types.partTypes.find { it.ids.contains(extension) } - if (!partType) { - logger.warn('there is no PartType for file {}; skipping', file) - null - } else { - new Part(PathUtil.relative('parts', file.path), partType, file.getText()) - } - }) + parts(PartsProviders.of(new File('parts'), types.partTypes)) } - taskFactories { sp -> + taskFactories { sourceProviders -> register('textToHtml', TextToHtmlTaskFactory::new) { it.specProvider += CollectionProviders.from { - def templates = sp.templatesProvider.provide() - sp.textsProvider.provide().collect { + def templates = sourceProviders.templatesProvider.provide() + sourceProviders.textsProvider.provide().collect { def frontMatterResult = it.type.frontMatterGetter.get(it) if (frontMatterResult.hasDiagnostics()) { return Result.ofDiagnostics(frontMatterResult.diagnostics) @@ -74,23 +57,30 @@ final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfigur } } } - it.allTextsProvider += sp.textsProvider - it.allPartsProvider += sp.partsProvider + it.allTextsProvider += sourceProviders.textsProvider + it.allPartsProvider += sourceProviders.partsProvider //noinspection GroovyUnnecessaryReturn return } register('pageToHtml', PageToHtmlTaskFactory::new) { - it.pagesProvider += sp.pagesProvider - it.allTextsProvider += sp.textsProvider - it.allPartsProvider += sp.partsProvider + it.pagesProvider += sourceProviders.pagesProvider + it.allTextsProvider += sourceProviders.textsProvider + it.allPartsProvider += sourceProviders.partsProvider //noinspection GroovyUnnecessaryReturn return } } } + + it.build('default') { + outputDir = new File('build') + + //noinspection GroovyUnnecessaryReturn + return + } } }