43 lines
1.3 KiB
Groovy
43 lines
1.3 KiB
Groovy
import com.jessebrault.ssg.buildscript.Build
|
|
import com.jessebrault.ssg.buildscript.BuildScriptBase
|
|
import com.jessebrault.ssg.buildscript.OutputDir
|
|
import com.jessebrault.ssg.html.TextToHtmlSpecProviders
|
|
import com.jessebrault.ssg.html.TextToHtmlTaskFactory
|
|
import com.jessebrault.ssg.template.TemplateTypes
|
|
import com.jessebrault.ssg.template.TemplatesProviders
|
|
import com.jessebrault.ssg.text.TextTypes
|
|
import com.jessebrault.ssg.text.TextsProviders
|
|
import groovy.transform.BaseScript
|
|
|
|
import java.util.function.Supplier
|
|
|
|
@BaseScript
|
|
BuildScriptBase b
|
|
|
|
final class Args {
|
|
File sourceDir
|
|
Supplier<GroovyClassLoader> gclSupplier
|
|
}
|
|
|
|
def args = args as Args
|
|
|
|
build(name: 'test') {
|
|
outputDirFunction = { Build build -> new OutputDir(new File(args.sourceDir, 'build')) }
|
|
|
|
types {
|
|
textTypes << TextTypes.MARKDOWN
|
|
templateTypes << TemplateTypes.getGsp(['.gsp'], args.gclSupplier.get())
|
|
}
|
|
|
|
sources { base, types ->
|
|
texts TextsProviders.from(new File(args.sourceDir, 'texts'), types.textTypes)
|
|
templates TemplatesProviders.from(new File(args.sourceDir, 'templates'), types.templateTypes)
|
|
}
|
|
|
|
taskFactories { base, sources ->
|
|
register('textToHtml', TextToHtmlTaskFactory::new) {
|
|
it.specsProvider += TextToHtmlSpecProviders.from(sources)
|
|
}
|
|
}
|
|
}
|