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.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<BuildScriptBase> 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
}
}
}