From 314bee2d306948133804a86b48f312cb3efc8819 Mon Sep 17 00:00:00 2001 From: kigawa Date: Sun, 17 Aug 2025 15:32:09 +0900 Subject: [PATCH 1/2] update: bump dependencies and improve Route class with data class conversion, fix token reference in deploy workflow --- .github/workflows/deploy-maven-central.yml | 2 +- convention-plugins/src/main/kotlin/common.gradle.kts | 2 +- .../commonMain/kotlin/net/kigawa/renlin/router/route/Route.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-maven-central.yml b/.github/workflows/deploy-maven-central.yml index d4454fb..63dee59 100644 --- a/.github/workflows/deploy-maven-central.yml +++ b/.github/workflows/deploy-maven-central.yml @@ -75,7 +75,7 @@ jobs: if: success() uses: actions/github-script@v7 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GIT_TOKEN }} script: | const pr = context.payload.pull_request; if (pr) { diff --git a/convention-plugins/src/main/kotlin/common.gradle.kts b/convention-plugins/src/main/kotlin/common.gradle.kts index c8f8af5..c003747 100644 --- a/convention-plugins/src/main/kotlin/common.gradle.kts +++ b/convention-plugins/src/main/kotlin/common.gradle.kts @@ -29,7 +29,7 @@ kotlin { } sourceSets["commonMain"].dependencies { implementation("net.kigawa:hakate:3.3.1") - implementation("net.kigawa:renlin:1.0.1") + implementation("net.kigawa:renlin:1.3.1") } sourceSets["commonTest"].dependencies { diff --git a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/Route.kt b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/Route.kt index 090c8ae..da8935c 100644 --- a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/Route.kt +++ b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/Route.kt @@ -2,7 +2,7 @@ package net.kigawa.renlin.router.route import net.kigawa.kutil.kutil.api.io.fs.KuPath -class Route(private val path: KuPath) { +data class Route(val path: KuPath) { fun isMach(path: KuPath): Boolean { return this.path == path } From 501cf41bc8e30135e82dc1bc57ed7e9eae3f2779 Mon Sep 17 00:00:00 2001 From: kigawa Date: Sun, 17 Aug 2025 16:20:23 +0900 Subject: [PATCH 2/2] update: restructure components and improve DSL consistency in Router and Sample modules --- .../net/kigawa/renlin/router/link/Link.kt | 5 +- .../renlin/router/route/tag/RouteComponent.kt | 20 ++++---- .../router/route/tag/RouterComponent.kt | 7 ++- .../kotlin/sample/SampleComponent.kt | 31 ++++++------ sample/src/commonMain/kotlin/sample/Sub.kt | 47 +++++++++---------- 5 files changed, 52 insertions(+), 58 deletions(-) diff --git a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/link/Link.kt b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/link/Link.kt index 9d8cfc8..58a59ac 100644 --- a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/link/Link.kt +++ b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/link/Link.kt @@ -1,7 +1,6 @@ package net.kigawa.renlin.router.link -import net.kigawa.renlin.tag.Tag +import net.kigawa.renlin.component.component import net.kigawa.renlin.tag.a -import net.kigawa.renlin.tag.component.Component1 -val link = a.component { } \ No newline at end of file +val link = a.component { } \ No newline at end of file diff --git a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouteComponent.kt b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouteComponent.kt index 0e2f6ea..4501ddf 100644 --- a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouteComponent.kt +++ b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouteComponent.kt @@ -1,42 +1,42 @@ package net.kigawa.renlin.router.route.tag +import net.kigawa.renlin.component.Component1 import net.kigawa.renlin.dsl.DslBase import net.kigawa.renlin.dsl.RegisteredDslData import net.kigawa.renlin.dsl.StatedDsl import net.kigawa.renlin.router.route.Route import net.kigawa.renlin.state.DslState import net.kigawa.renlin.tag.Tag -import net.kigawa.renlin.tag.component.Component1 import net.kigawa.renlin.w3c.category.ContentCategory import net.kigawa.renlin.w3c.element.TagNode import kotlin.uuid.ExperimentalUuidApi import kotlin.uuid.Uuid -class RouteComponent( +class RouteComponent( val routerDsl: RouterDsl, val route: Route, -) : - Component1, StatedDsl> { - override fun newDsl(dslState: DslState): StatedDsl { - return object : DslBase(dslState) { +): Component1, CONTENT_CATEGORY, StatedDsl.() -> Unit> { + fun newDsl(dslState: DslState): StatedDsl { + return object: DslBase(dslState) { override fun applyElement(element: TagNode): () -> Unit { return {} } } } + @OptIn(ExperimentalUuidApi::class) override fun render( - parentDsl: StatedDsl<*>, - block: StatedDsl.() -> Unit, key: String?, + parentDsl: StatedDsl, + arg1: StatedDsl.() -> Unit, key: String?, ) { if (!route.isMach(routerDsl.routePath)) return val key = key ?: Uuid.random().toString() val dslState = parentDsl.dslState.getOrCreateSubDslState(key, this) val dsl = newDsl(dslState) - dsl.block() + dsl.arg1() parentDsl.registerSubDsl(RegisteredDslData(dsl, this, { - render(parentDsl, block, key) + render(parentDsl, arg1, key) }, key)) } diff --git a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouterComponent.kt b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouterComponent.kt index 1ba9e0c..d7d6cbd 100644 --- a/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouterComponent.kt +++ b/renlin-router/src/commonMain/kotlin/net/kigawa/renlin/router/route/tag/RouterComponent.kt @@ -1,15 +1,14 @@ package net.kigawa.renlin.router.route.tag +import net.kigawa.renlin.component.StructuredComponent import net.kigawa.renlin.router.route.provider.RouterProvider import net.kigawa.renlin.state.DslState import net.kigawa.renlin.tag.Tag -import net.kigawa.renlin.tag.component.StructuredComponent import net.kigawa.renlin.w3c.category.ContentCategory -class RouterComponent( +class RouterComponent( private val routerProvider: RouterProvider, -) : - StructuredComponent, RouterDsl> { +): StructuredComponent, CONTENT_CATEGORY, RouterDsl> { override fun newDsl(dslState: DslState): RouterDsl { return RouterDsl(routerProvider, dslState) } diff --git a/sample/src/commonMain/kotlin/sample/SampleComponent.kt b/sample/src/commonMain/kotlin/sample/SampleComponent.kt index d68f622..5efb1b5 100644 --- a/sample/src/commonMain/kotlin/sample/SampleComponent.kt +++ b/sample/src/commonMain/kotlin/sample/SampleComponent.kt @@ -1,5 +1,6 @@ package sample +import net.kigawa.renlin.component.component import net.kigawa.renlin.router.route.tag.route import net.kigawa.renlin.router.route.tag.router import net.kigawa.renlin.tag.div @@ -17,13 +18,17 @@ class SampleComponent( router().invoke { route(Routes.top).invoke { - p { - t("top") + div { + p { + t("top") + } } } route(Routes.page).invoke { - p { - t("page") + div { + p { + t("page") + } } } } @@ -33,9 +38,7 @@ class SampleComponent( +"repeat " } } - sub.display { - - } + sub.display() fragment { div { @@ -50,17 +53,13 @@ class SampleComponent( } } // fragment { - sub.display { - - } + sub.display () // } - sub.controller { - - } - p { + sub.controller () + div { + p { // key = "uuid 5" + } } - sub.test {} - sub.test1 {} } } diff --git a/sample/src/commonMain/kotlin/sample/Sub.kt b/sample/src/commonMain/kotlin/sample/Sub.kt index 36dec0a..99fd3c9 100644 --- a/sample/src/commonMain/kotlin/sample/Sub.kt +++ b/sample/src/commonMain/kotlin/sample/Sub.kt @@ -2,13 +2,10 @@ package sample import net.kigawa.hakate.api.HakateInitializer import net.kigawa.hakate.api.state.MutableState +import net.kigawa.renlin.component.component import net.kigawa.renlin.tag.div -import net.kigawa.renlin.tag.fragment import net.kigawa.renlin.tag.p import net.kigawa.renlin.tag.text -import net.kigawa.renlin.w3c.category.integration.FlowPhrasingIntegration -import net.kigawa.renlin.w3c.category.native.FlowContent -import net.kigawa.renlin.w3c.category.native.PhrasingContent import net.kigawa.renlin.w3c.category.t interface MarginValue @@ -18,37 +15,37 @@ class Sub { val state: MutableState = HakateInitializer().newStateDispatcher().newState("state") val display = div.component { - t("display") - div(key = "key display") { - val value = state.useValue() - t("display1", key = "key display1") - div { - t("display1-1", key = "key display1-1") - p { - t("display1-1-1 $value", key = "key display1-1-1") - text { + div { + t("display") + div(key = "key display") { + val value = state.useValue() + t("display1", key = "key display1") + div { + t("display1-1", key = "key display1-1") + p { + t("display1-1-1 $value", key = "key display1-1-1") + text { // margin = "asd" + } } } } - } - div { - t("display2") div { - t("display2-1") + t("display2") + div { + t("display2-1") + } } - } - div { - t("display3") + div { + t("display3") + } } } val controller = div.component { - t("controller") - + div { + t("controller") + } } - val test = fragment().component { } - val test1 = fragment().component { } - val test2 = fragment().component { } } \ No newline at end of file