blob: 0ce5359121f7b73616d0e3a8898b709a30dc64eb [file] [log] [blame]
/**
* 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:1.33'
}
}
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:1.33',
'org.jruby:jruby-complete:9.4.5.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"
}