From 7e0b7e68ab9060f50b70e6b512818fa34b274af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Berg=20Glasius?= Date: Mon, 4 May 2026 16:07:00 +0200 Subject: [PATCH 1/6] refactor: replace hardcoded URLs with dynamic placeholders for improved configurability - Updated documentation links and project metadata to use placeholders (e.g., `@GITHUB_REPO_URL@`, `@REPO_SLUG@`). - Dynamically resolve repository details via Gradle project properties. - Enhanced documentation build process to replace tokens with computed values. --- build-logic/src/main/groovy/config.docs.gradle | 16 ++++++++++++++-- docs/build.gradle | 3 +-- docs/src/docs/index.tmpl | 16 ++++++++-------- gradle.properties | 2 ++ gradle/publish.gradle | 8 ++++---- plugin/build.gradle | 6 ++++-- 6 files changed, 33 insertions(+), 18 deletions(-) diff --git a/build-logic/src/main/groovy/config.docs.gradle b/build-logic/src/main/groovy/config.docs.gradle index 7ce6e44..712bff8 100644 --- a/build-logic/src/main/groovy/config.docs.gradle +++ b/build-logic/src/main/groovy/config.docs.gradle @@ -71,9 +71,12 @@ tasks.register('ghPagesRootIndexPage') { outputs.file(outputFile) doLast { + def githubUser = rootProject.findProperty('githubUser') as String + def githubProject = rootProject.findProperty('githubProject') as String + List versions = [] try { - def conn = URI.create('https://api.github.com/repos/gpc/grails-export/contents/?ref=gh-pages').toURL().openConnection() + def conn = URI.create("https://api.github.com/repos/${githubUser}/${githubProject}/contents/?ref=gh-pages").toURL().openConnection() conn.setRequestProperty('Accept', 'application/vnd.github+json') conn.setRequestProperty('User-Agent', 'gradle-docs-build') def parsed = new groovy.json.JsonSlurper().parse(conn.inputStream) @@ -91,8 +94,17 @@ tasks.register('ghPagesRootIndexPage') { ? versions.collect { v -> "" }.join('\n ') : '' + def tokens = [ + '@OTHER_VERSIONS_OPTIONS@': optionsHtml, + '@GITHUB_REPO_URL@' : "https://github.com/${githubUser}/${githubProject}", + '@GITHUB_ORG_URL@' : "https://github.com/${githubUser}", + '@REPO_SLUG@' : githubProject, + ] + def out = outputFile.get().asFile out.parentFile.mkdirs() - out.text = templateFile.get().asFile.text.replace('@OTHER_VERSIONS_OPTIONS@', optionsHtml) + def content = templateFile.get().asFile.text + tokens.each { token, value -> content = content.replace(token, value) } + out.text = content } } diff --git a/docs/build.gradle b/docs/build.gradle index f077b23..cffecf4 100644 --- a/docs/build.gradle +++ b/docs/build.gradle @@ -17,10 +17,9 @@ def asciidoctorAttributes = [ idprefix : '', idseparator : '-', version : project.version, - projectUrl : 'https://github.com/gpc/grails-export', + projectUrl : "https://github.com/${rootProject.findProperty('githubUser')}/${rootProject.findProperty('githubProject')}", sourcedir : "${rootProject.allprojects.find { it.name == 'grails-export' }.projectDir}/src/main/groovy", grailsVersion : grailsVersion -// grailsDocBase : "https://grails.apache.org/docs/${resolveGrailsDocsDirName(project.grailsVersion)}" ] tasks.named('asciidoctor', AsciidoctorTask) { diff --git a/docs/src/docs/index.tmpl b/docs/src/docs/index.tmpl index dfa0759..a13d6a0 100644 --- a/docs/src/docs/index.tmpl +++ b/docs/src/docs/index.tmpl @@ -287,7 +287,7 @@
- + @@ -307,13 +307,13 @@ Latest Release

Stable Version

@@ -305,6 +305,7 @@
Latest Release + @LATEST_VERSION@

Stable Version