Clean up and added default build.

This commit is contained in:
JesseBrault0709 2023-04-25 20:55:47 +02:00
parent b1488f7434
commit 6cae49ca14

View File

@ -5,26 +5,19 @@ import com.jessebrault.ssg.html.TextToHtmlSpec
import com.jessebrault.ssg.html.TextToHtmlTaskFactory import com.jessebrault.ssg.html.TextToHtmlTaskFactory
import com.jessebrault.ssg.page.PageTypes import com.jessebrault.ssg.page.PageTypes
import com.jessebrault.ssg.page.PagesProviders import com.jessebrault.ssg.page.PagesProviders
import com.jessebrault.ssg.part.Part
import com.jessebrault.ssg.part.PartTypes import com.jessebrault.ssg.part.PartTypes
import com.jessebrault.ssg.part.PartsProviders
import com.jessebrault.ssg.provider.CollectionProviders 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.TemplateTypes
import com.jessebrault.ssg.template.TemplatesProviders
import com.jessebrault.ssg.text.TextTypes import com.jessebrault.ssg.text.TextTypes
import com.jessebrault.ssg.util.ExtensionUtil import com.jessebrault.ssg.text.TextsProviders
import com.jessebrault.ssg.util.PathUtil
import com.jessebrault.ssg.util.Result import com.jessebrault.ssg.util.Result
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.util.function.Consumer import java.util.function.Consumer
final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfiguratorFactory { final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfiguratorFactory {
private static final Logger logger = LoggerFactory.getLogger(DefaultBuildScriptConfiguratorFactory)
@Override @Override
Consumer<BuildScriptBase> get() { Consumer<BuildScriptBase> get() {
return { return {
@ -43,24 +36,14 @@ final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfigur
texts(TextsProviders.from(new File('texts'), types.textTypes)) texts(TextsProviders.from(new File('texts'), types.textTypes))
pages(PagesProviders.from(new File('pages'), types.pageTypes)) pages(PagesProviders.from(new File('pages'), types.pageTypes))
templates(TemplatesProviders.from(new File('templates'), types.templateTypes)) templates(TemplatesProviders.from(new File('templates'), types.templateTypes))
parts(PartsProviders.of(new File('parts'), types.partTypes))
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())
}
})
} }
taskFactories { sp -> taskFactories { sourceProviders ->
register('textToHtml', TextToHtmlTaskFactory::new) { register('textToHtml', TextToHtmlTaskFactory::new) {
it.specProvider += CollectionProviders.from { it.specProvider += CollectionProviders.from {
def templates = sp.templatesProvider.provide() def templates = sourceProviders.templatesProvider.provide()
sp.textsProvider.provide().collect { sourceProviders.textsProvider.provide().collect {
def frontMatterResult = it.type.frontMatterGetter.get(it) def frontMatterResult = it.type.frontMatterGetter.get(it)
if (frontMatterResult.hasDiagnostics()) { if (frontMatterResult.hasDiagnostics()) {
return Result.ofDiagnostics(frontMatterResult.diagnostics) return Result.ofDiagnostics(frontMatterResult.diagnostics)
@ -74,23 +57,30 @@ final class DefaultBuildScriptConfiguratorFactory implements BuildScriptConfigur
} }
} }
} }
it.allTextsProvider += sp.textsProvider it.allTextsProvider += sourceProviders.textsProvider
it.allPartsProvider += sp.partsProvider it.allPartsProvider += sourceProviders.partsProvider
//noinspection GroovyUnnecessaryReturn //noinspection GroovyUnnecessaryReturn
return return
} }
register('pageToHtml', PageToHtmlTaskFactory::new) { register('pageToHtml', PageToHtmlTaskFactory::new) {
it.pagesProvider += sp.pagesProvider it.pagesProvider += sourceProviders.pagesProvider
it.allTextsProvider += sp.textsProvider it.allTextsProvider += sourceProviders.textsProvider
it.allPartsProvider += sp.partsProvider it.allPartsProvider += sourceProviders.partsProvider
//noinspection GroovyUnnecessaryReturn //noinspection GroovyUnnecessaryReturn
return return
} }
} }
} }
it.build('default') {
outputDir = new File('build')
//noinspection GroovyUnnecessaryReturn
return
}
} }
} }