anchor.diff:  
   Paths defined in this PatternSet are resolved relative to the `sourceDir`.
   
  +For the Gradle Kotlin DSL a workaround is needed:footnoteref:[kotlin-delegate,The method delegates to a type that Kotlin cannot infer that from the byte-code. The function `delegateClosureOf<T>()` from the GKD is used to provide the information to Kotlin.]
  +
  +[source,kotlin]
  +.build.gradle.kts
  +----
  +tasks {
  +  "asciidoctor"(AsciidoctorTask::class) {
  +    sourceDir = file("docs")
  +    sources(delegateClosureOf<PatternSet> {
  +      include("toplevel.adoc", "another.adoc", "third.adoc")
  +    })
  +    outputDir = file("build/docs")
  +  }
  +}
  +----
  +
   === Processing Auxiliary Files
   
   Some backends require that additional files be copied across. The most common example are images for HTML backends. For
  
positive.code:                 toc                 : '',
                  idprefix            : '',
                  idseparator         : '-'
  }
  ----
  <1> append below the line: `apply plugin: 'org.asciidoctor.convert'`
  
negative.code: 
  Unlike `sourceDir` files can be copied from anywhere in the filesystem.
  
  For the Gradle Kotlin DSL, the example above looks like this:footnoteref:[kotlin-delegate]
  [source,kotlin]
  .build.gradle.kts
  ----
  resources(delegateClosureOf<CopySpec> {
    from("src/resources/images") {
      include("images/**/*.png")
      exclude("images/**/notThisOne.png")
    }
  
    from("$buildDir/downloads") {
      include("deck.js/**")
    }
  
    into("./images")
  })
  ----
  
  If `resources` is never set, the default behaviour is as if the following was called
  [source,groovy]
  .build.gradle
  