Open AlexCzar opened 5 years ago
Which guide are you referring to? This project provides the static resources and theme for Spring référence documentations, not the actual content. If you’re referring to the spring.io getting started guides, there’s a dedicated org for that: https://github.com/spring-guides If you’re thinking about reference docs, this should be opened against the spring project itself.
I'm referring to this: https://github.com/spring-io/spring-doc-resources#gradle-build-integration
Something like this kinda worked for me, still have several problems, but at least something is generated:
tasks {
register<Sync>("prepareAsciidocBuild") {
dependsOn(configurations["docs"])
// copy doc resources
from(configurations["docs"].map(::zipTree))
// and doc sources
from("src/asciidoc/")
into("$buildDir/asciidoc/assemble")
}
withType<AsciidoctorPdfTask> {
dependsOn("prepareAsciidocBuild")
// run asciidoctor from that directory
setSourceDir("$buildDir/asciidoc/assemble")
sources {
include("*.adoc")
}
logDocuments = true
options["doctype"] = "book"
options["eruby"] = "erubis"
// use provided stylesheet
attributes["icons"] = "font"
}
named<AsciidoctorTask>("asciidoctor") {
dependsOn("prepareAsciidocBuild")
// run asciidoctor from that directory
setSourceDir("$buildDir/asciidoc/assemble")
sources {
include("*.adoc")
}
resources {
from(sourceDir) {
include("images/*", "css/**", "js/**", "favicon.ico")
}
}
logDocuments = true
options = mapOf(
"doctype" to "book",
"eruby" to "erubis"
)
attributes = mapOf(
"docinfo" to "shared",
"toc2" to "",
// use provided stylesheet
"stylesdir" to "css/",
"stylesheet" to "spring.css",
"linkcss" to true,
"icons" to "font",
// use provided highlighter
"source-highlighter=highlight.js" to "",
"highlightjsdir=js/highlight" to "",
"highlightjs-theme=atom-one-dark-reasonable" to ""
)
}
}
Both your sources
and resources
methods require a type closure since they can't deduce the appropriate types from the byte code. This is what I am using without any errors:
import org.asciidoctor.gradle.AsciidoctorTask
group = "com.reply.comsysto"
version = "1.0-SNAPSHOT"
val docs: Configuration by configurations.creating
plugins {
id("org.asciidoctor.convert") version "1.5.9.2"
}
repositories {
maven {
url = uri("https://repo.spring.io/libs-release-local")
}
}
dependencies {
docs("io.spring.docresources:spring-doc-resources:0.1.3.RELEASE@zip")
}
tasks {
register<Sync>("prepareAsciidocBuild") {
dependsOn(configurations["docs"])
// Set working directory
into("$buildDir")
into("asciidoc/build") {
// Copy spring-doc-resources...
from(configurations["docs"].map(::zipTree)) {
// Ignore supplied highlight.js since we have our own
exclude("**/highlight/**")
}
// ...and our source files
from("src/main/asciidoc/")
}
into("asciidoc/build") {
// Overwrite spring-doc-resources with our custom files
from("src/resources/")
}
}
named<AsciidoctorTask>("asciidoctor") {
dependsOn("prepareAsciidocBuild")
sourceDir = file("$buildDir/asciidoc/build")
sources(delegateClosureOf<PatternSet> {
include("*.adoc")
exclude("attributes.adoc")
})
resources(delegateClosureOf<CopySpec> {
from(sourceDir) {
include("images/*", "css/**", "js/**")
}
})
logDocuments = true
options = mapOf("doctype" to "book", "eruby" to "erubis")
attributes = mapOf(
"docinfo" to "shared",
"stylesdir" to "css/",
"stylesheet" to "spring.css",
"linkcss" to true,
"icons" to "font",
"source-highlighter" to "highlight.js",
"highlightjsdir" to "js/highlight",
"highlightjs-theme" to "github"
)
}
}
Currently only Groovy DSL configuration is present in the gradle-build-integration guide. Since Gradle Kotlin DSL has reached maturity some time ago, it would be beneficial to have configurations for that kind of setup in the guide.