diff --git a/.github/workflows/dokka.yml b/.github/workflows/dokka.yml new file mode 100644 index 000000000..252f3cd3d --- /dev/null +++ b/.github/workflows/dokka.yml @@ -0,0 +1,44 @@ +name: TerningPoint DesignSystem CI + +on: + push: + branches: [ develop ] + +jobs: + docs: + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Set up JDK 18 + uses: actions/setup-java@v4 + with: + java-version: 18 + distribution: "temurin" + + - name: Change gradlew permissions + run: chmod +x gradlew + + - name: Create Local Properties + run: touch local.properties + + - name: Set Local Properties + env: + BASE_URL: ${{ secrets.BASE_URL }} + NATIVE_APP_KEY: ${{ secrets.NATIVE_APP_KEY }} + NATIVEAPPKEY: ${{ secrets.NATIVEAPPKEY }} + run: | + echo base.url=\"$BASE_URL\" >> local.properties + echo native.app.key=\"$NATIVE_APP_KEY\" >> local.properties + echo nativeAppKey=\"$NATIVEAPPKEY\" >> local.properties + + - name: Build Documentation + run: ./gradlew dokkaHtml + + - name: Deploy Documentation to GitHub Pages + uses: JamesIves/github-pages-deploy-action@v4 + with: + BRANCH: gh-pages + FOLDER: core/build/dokka/html \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c8d5fa787..4f7c37a0e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -116,5 +116,4 @@ dependencies { // KakaoDependencies implementation(libs.kakao.user) - } diff --git a/build.gradle.kts b/build.gradle.kts index c5adb7afd..0e4b0d2f0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,6 +9,7 @@ plugins { alias(libs.plugins.android.test) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.kotlin.parcelize) apply false + alias(libs.plugins.dokka) apply false } buildscript { diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 869ba3374..b1e09da7e 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.dokka) } android { @@ -40,6 +41,15 @@ android { } } +tasks.dokkaHtml.configure { + dokkaSourceSets { + named("main") { + includes.from("docs.md") + noAndroidSdkLink.set(false) + } + } +} + dependencies { // Kotlin implementation(libs.kotlin) diff --git a/core/docs.md b/core/docs.md new file mode 100644 index 000000000..a2447db18 --- /dev/null +++ b/core/docs.md @@ -0,0 +1,38 @@ +# Package com.terning.core.designsystem.component.bottomsheet +바텀시트가 있는 패키지입니다. + +# Package com.terning.core.designsystem.component.button +버튼이 있는 패키지입니다. + +# Package com.terning.core.designsystem.component.datepicker +데이트 피커가 있는 패키지입니다. + +# Package com.terning.core.designsystem.component.dialog +다이얼로그가 있는 패키지입니다. + +# Package com.terning.core.designsystem.component.image +contentDescription을 사용하지 않는 Image가 담긴 패키지입니다. + +# Package com.terning.core.designsystem.component.item +여러 화면에서 쓰이는 아이템들이 들어있는 패키지입니다. + +# Package com.terning.core.designsystem.component.textfield +텍스트 필드가 있는 패키지입니다. + +# Package com.terning.core.designsystem.component.topappbar +탑바가 있는 패키지입니다. + +# Package com.terning.core.designsystem.theme +의 theme가 있는 패키지입니다. + +# Package com.terning.core.extension +확장함수를 모아놓은 패키지입니다. + +# Package com.terning.core.navigation +네비게이션 루트가 있는 패키지입니다. + +# Package com.terning.core.state +기본 상태를 나타내는 파일이 있는 패키지입니다. + +# Package com.terning.core.util +여러 곳에서 유용하게 쓰이는 객체를 모아놓은 패키지입니다. diff --git a/core/src/main/java/com/terning/core/designsystem/component/button/TerningBasicButton.kt b/core/src/main/java/com/terning/core/designsystem/component/button/TerningBasicButton.kt index cc4f86985..2b4ac9788 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/button/TerningBasicButton.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/button/TerningBasicButton.kt @@ -30,6 +30,17 @@ import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White import com.terning.core.util.NoRippleTheme +/** + * 기본 버튼 함수입니다. + * + * @param shape 버튼의 모양을 설정합니다. + * @param style 버튼 텍스트의 스타일을 정의합니다. + * @param paddingVertical 버튼의 위아래 패딩을 설정합니다. 패딩 값은 Dp 단위입니다. + * @param text 버튼에 표시될 텍스트입니다. + * @param onButtonClick 버튼 클릭 시 호출될 콜백 함수입니다. + * @param modifier 버튼에 적용할 Modifier입니다. + * @param isEnabled 버튼의 활성화 상태를 정의합니다. + */ @Composable fun TerningBasicButton( shape: Shape, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fcdb0aac4..29d2a6622 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -90,6 +90,9 @@ processPhoenix = "2.0.0" ## Web browser = "1.4.0" +## dokka +dokka = "1.9.0" + [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat" } @@ -182,4 +185,5 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } android-test = { id = "com.android.test", version.ref = "androidGradlePlugin" } ksp = {id = "com.google.devtools.ksp", version.ref = "ksp"} -kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlinParcelize" } \ No newline at end of file +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlinParcelize" } +dokka = {id = "org.jetbrains.dokka", version.ref = "dokka"} \ No newline at end of file