${escapedTitle}
+${escapedSubtitle}
++ AMPERE + is an open-source cognitive engine built in Kotlin Multiplatform where AI reasoning is transparent by design. It's early, it's opinionated, and it's available now. +
+diff --git a/build.gradle.kts b/build.gradle.kts index 136bdb8..ce050d2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,9 @@ repositories { val fritz2Version = "1.0-RC5" kotlin { - jvm() + jvm { + withJava() + } js(IR) { browser() }.binaries.executable() @@ -24,6 +26,7 @@ kotlin { } val jvmMain by getting { dependencies { + implementation("org.commonmark:commonmark:0.21.0") } } val jsMain by getting { @@ -34,6 +37,21 @@ kotlin { } } +val generateBlogPages by tasks.registering(JavaExec::class) { + group = "build" + description = "Generate static HTML pages for blog posts (SSG)" + val jvmCompilation = kotlin.targets.getByName("jvm").compilations.getByName("main") + classpath = jvmCompilation.output.allOutputs + jvmCompilation.compileDependencyFiles + mainClass.set("codes.miley.generator.BlogGeneratorKt") + val jsDistDir = layout.buildDirectory.dir("dist/js/productionExecutable") + args = listOf(jsDistDir.get().asFile.absolutePath) + dependsOn("jvmJar") +} + +tasks.named("jsBrowserProductionWebpack") { + finalizedBy(generateBlogPages) +} + dependencies { add("kspCommonMainMetadata", "dev.fritz2:lenses-annotation-processor:$fritz2Version") } diff --git a/src/commonMain/resources/index.html b/src/commonMain/resources/index.html index 7d5cb20..22b1d9f 100644 --- a/src/commonMain/resources/index.html +++ b/src/commonMain/resources/index.html @@ -4,7 +4,9 @@
${escapedSubtitle}
++ AMPERE + is an open-source cognitive engine built in Kotlin Multiplatform where AI reasoning is transparent by design. It's early, it's opinionated, and it's available now. +
+Thoughts on Android development, AI, and building software.
+