diff --git a/build.gradle.kts b/build.gradle.kts
index 932a3914..b922219d 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -11,6 +11,7 @@ plugins {
alias(libs.plugins.download)
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.moko) apply false
+ alias(libs.plugins.jte) apply false
}
allprojects {
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index fbd28249..cda0cbcf 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -4,6 +4,7 @@ coroutines = "1.10.2"
serialization = "1.9.0"
okhttp = "5.1.0" # Major version is locked by Tachiyomi extensions
javalin = "6.7.0"
+jte = "3.2.1"
jackson = "2.18.3" # jackson version locked by javalin, ref: `io.javalin.core.util.OptionalDependency`
exposed = "0.61.0"
dex2jar = "v64" # Stuck until https://github.com/ThexXTURBOXx/dex2jar/issues/27 is fixed
@@ -49,9 +50,12 @@ okio = "com.squareup.okio:okio:3.15.0"
# Javalin api
javalin-core = { module = "io.javalin:javalin", version.ref = "javalin" }
javalin-openapi = { module = "io.javalin:javalin-openapi", version.ref = "javalin" }
+javalin-rendering = { module = "io.javalin:javalin-rendering", version.ref = "javalin" }
jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" }
jackson-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jackson" }
jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" }
+jte = { module = "gg.jte:jte", version.ref = "jte" }
+kte = { module = "gg.jte:jte-kotlin", version.ref = "jte" }
# GraphQL
graphql-kotlin-server = { module = "com.expediagroup:graphql-kotlin-server", version.ref = "graphqlkotlin" }
@@ -177,6 +181,9 @@ shadowjar = { id = "com.github.johnrengelman.shadow", version = "8.1.1"}
# Moko
moko = { id = "dev.icerock.mobile.multiplatform-resources", version.ref = "moko" }
+# JTE
+jte = { id = "gg.jte.gradle", version.ref = "jte" }
+
[bundles]
shared = [
"kotlin-stdlib-jdk8",
@@ -216,6 +223,8 @@ okhttp = [
javalin = [
"javalin-core",
#"javalin-openapi",
+ "javalin-rendering",
+ "jte",
]
jackson = [
"jackson-databind",
diff --git a/server/build.gradle.kts b/server/build.gradle.kts
index d463091a..fc2f47c5 100644
--- a/server/build.gradle.kts
+++ b/server/build.gradle.kts
@@ -25,6 +25,11 @@ plugins {
.get()
.pluginId,
)
+ id(
+ libs.plugins.jte
+ .get()
+ .pluginId,
+ )
}
dependencies {
@@ -96,6 +101,12 @@ dependencies {
implementation(libs.cron4j)
implementation(libs.cronUtils)
+
+ compileOnly(libs.kte)
+}
+
+jte {
+ generate()
}
application {
@@ -212,4 +223,8 @@ tasks {
)
}
}
+
+ runKtlintCheckOverMainSourceSet {
+ mustRunAfter(generateJte)
+ }
}
diff --git a/server/i18n/src/commonMain/moko-resources/values/base/strings.xml b/server/i18n/src/commonMain/moko-resources/values/base/strings.xml
index e5db31fb..3162ce19 100644
--- a/server/i18n/src/commonMain/moko-resources/values/base/strings.xml
+++ b/server/i18n/src/commonMain/moko-resources/values/base/strings.xml
@@ -80,4 +80,23 @@