Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

91 lines
3.0 KiB
Kotlin

import com.varabyte.kobweb.gradle.application.util.configAsKobwebApplication
import com.varabyte.kobwebx.gradle.markdown.handlers.SilkCalloutBlockquoteHandler
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.compose.compiler)
id("com.varabyte.kobweb.application")
id("com.varabyte.kobwebx.markdown")
alias(libs.plugins.kotlinx.serialization)
}
group = "playground"
version = "1.0-SNAPSHOT"
kobweb {
app {
index {
interceptUrls {
enableSelfHosting()
}
}
}
markdown {
defaultLayout.set(".components.layouts.MarkdownLayout")
imports.add(".components.widgets.*")
process.set { markdownEntries ->
generateMarkdown("markdown/listing.md", buildString {
// Disable the layout for this page; it looks weird when centered
appendLine("""
---
layout:
---
""".trimIndent()
)
appendLine("# Listing Index")
markdownEntries.sortedBy { it.route }.forEach { entry ->
appendLine("* [${entry.filePath}](${entry.route})")
}
})
}
handlers.blockquote.set(SilkCalloutBlockquoteHandler(labels = mapOf("QUOTE" to "")))
}
kspProcessorDependency.set("com.varabyte.kobweb:site-processors")
}
val generateTestMarkdownTask = tasks.register("generateTestMarkdown") {
// $name here to create a unique output directory just for this task
val genOutputDir = layout.buildDirectory.dir("generated/$name/src/jsMain/resources/markdown")
outputs.dir(genOutputDir)
doLast {
genOutputDir.get().file("markdown/GenerateTest.md").asFile.apply {
parentFile.mkdirs()
writeText("""
# HELLO WORLD
""".trimIndent()
)
println("Generated $absolutePath")
}
}
}
kobweb.markdown.addSource(generateTestMarkdownTask)
kobweb.markdown.addSource(project.layout.projectDirectory.dir("src/jsMain/resources/markdown-src"), ".")
kotlin {
configAsKobwebApplication(includeServer = true)
sourceSets {
jsMain.dependencies {
implementation(libs.compose.runtime)
implementation(libs.compose.html.core)
implementation(libs.kotlinx.serialization.json)
implementation("com.varabyte.kobweb:kobweb-core")
implementation("com.varabyte.kobweb:kobweb-silk")
implementation("com.varabyte.kobwebx:silk-icons-fa")
implementation("com.varabyte.kobwebx:silk-icons-mdi")
implementation("com.varabyte.kobwebx:kobwebx-markdown")
implementation("com.varabyte.kobwebx:kobwebx-serialization-kotlinx")
implementation(project(":sitelib"))
implementation(project(":worker"))
}
jvmMain.dependencies {
implementation("com.varabyte.kobweb:kobweb-api")
implementation(project(":sitelib"))
}
}
}