/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ buildscript { repositories { mavenCentral() gradlePluginPortal() } dependencies { classpath 'org.asciidoctor:asciidoctor-gradle-jvm:4.0.5' classpath 'org.asciidoctor:asciidoctor-gradle-jvm-pdf:4.0.5' classpath 'org.yaml:snakeyaml:2.5' } } plugins { id 'org.asciidoctor.jvm.convert' version '4.0.5' apply false id 'org.asciidoctor.jvm.pdf' version '4.0.5' apply false } apply plugin: 'org.asciidoctor.jvm.convert' apply plugin: 'org.asciidoctor.jvm.pdf' // Configure resolution strategy for all configurations configurations.all { resolutionStrategy { // Force specific versions of dependencies to avoid conflicts force 'org.yaml:snakeyaml:2.5', 'org.jruby:jruby-complete:10.0.2.0' } } // Configure Asciidoctor PDF asciidoctorPdf { asciidoctorj { version = '2.5.11' // Explicitly set AsciidoctorJ version modules { // Use a specific version of asciidoctorj-pdf that's known to work with AsciidoctorJ 2.5.11 pdf.version '2.3.10' } } } // see also: https://asciidoctor.github.io/asciidoctor-gradle-plugin/master/user-guide/ asciidoctorj { attributes = [ version: "${project.version}", docdate: new Date(), generated: "${buildDir}/generated/asciidoc", imagesdir: "${buildDir}/generated/images", diagramsdir: "${buildDir}/generated/diagrams", years: '2015-2025', revnumber: "${project.version}".toString(), rootdir: "${rootDir}".toString(), baseurl: 'fineract.apache.org', ] modules { diagram.use() } fatalWarnings ~/include file not found|missing callout|image to embed not found or not readable/ fatalWarnings missingIncludes() } task copyImages(type: Copy) { from "${projectDir}/src/docs/en/images" into "${buildDir}/generated/images" } task copyDiagrams(type: Copy) { from "${projectDir}/src/docs/en/diagrams" into "${buildDir}/generated/diagrams" } asciidoctor { languages 'en' baseDir 'src/docs' sourceDir 'src/docs' sources { include('index.adoc') } outputDir 'build/docs/html' logging.captureStandardError LogLevel.INFO dependsOn copyImages, copyDiagrams dependsOn(':fineract-client:clean', ':fineract-client:buildAsciidoc') } asciidoctorPdf { languages 'en' baseDir 'src/docs' sourceDir 'src/docs' sources { include('index.adoc') } outputDir 'build/docs/pdf' logging.captureStandardError LogLevel.INFO dependsOn copyImages, copyDiagrams // TODO: @vidakovic prepare a nicer theme // theme 'fineract-default' // pdfThemes { // local 'fineract-default', { // themeDir = "$projectDir/src/resources/themes" // } // } // fontsDir "$projectDir/src/resources/fonts" dependsOn(':fineract-client:clean', ':fineract-client:buildAsciidoc') } task doc(type: Zip) { dependsOn(asciidoctor, asciidoctorPdf) into("fineract-${project.version}/html") { from("$buildDir/docs/html") { include "**/*" exclude "**/.asciidoctor" } } into("fineract-${project.version}/pdf") { from("$buildDir/docs/pdf") { include "**/index.pdf" exclude "**/.asciidoctor" rename { "fineract-${project.version}.pdf" } } } archiveFileName = "${project.name}-${project.version}.zip" }