buildscript {
    repositories {
        jcenter()
    }
}

plugins {
    id 'org.asciidoctor.jvm.convert' version '3.1.0'
    id 'org.asciidoctor.jvm.pdf' version '3.1.0'
}

repositories {
    jcenter()
}

asciidoctor {
    options doctype: 'book'
    attributes toclevels: 4, toc: 'left', sectnums: 'numbered'
    sourceDir file('src')
    sources {
        include 'index.adoc'
    }
    outputDir file('build/docs')
    baseDirFollowsSourceDir()
}

asciidoctorPdf {
    options doctype: 'book'
    attributes toclevels: 4, toc: 'auto', sectnums: 'numbered'
    sourceDir file('src')
    sources {
        include 'index.adoc'
    }
    outputDir file('build/pdf')
    baseDirFollowsSourceDir()
}


build.dependsOn(asciidoctorPdf)
build.dependsOn(asciidoctor)