Skip to content

Commit 064d9b8

Browse files
committed
refactor(docs): migrate to Fumadocs
1 parent 7044352 commit 064d9b8

47 files changed

Lines changed: 2269 additions & 5046 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

acidify-docs/.gitignore

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
1-
.DS_Store
2-
.next/
3-
.tsup/
4-
node_modules/
5-
*.log
6-
dist/
7-
.turbo/
8-
out/
1+
# deps
2+
/node_modules
3+
4+
# generated content
5+
.source
96

10-
public/kdoc/
7+
# test & build
8+
/coverage
9+
/.next/
10+
/out/
11+
/build
12+
*.tsbuildinfo
1113

12-
.vercel/
13-
.idea/
14-
.eslintcache
15-
.env
14+
# misc
15+
.DS_Store
16+
*.pem
17+
/.pnp
18+
.pnp.js
19+
npm-debug.log*
20+
yarn-debug.log*
21+
yarn-error.log*
1622

17-
tsup.config.bundled*
18-
tsconfig.tsbuildinfo
19-
tsconfig.vitest-temp.json
23+
# others
24+
.env*.local
25+
.vercel
26+
next-env.d.ts
2027

21-
_pagefind/
22-
docs/public/sitemap.xml
28+
public/kdoc/

acidify-docs/.prettierrc.json

Lines changed: 0 additions & 10 deletions
This file was deleted.

acidify-docs/app/[[...mdxPath]]/page.tsx

Lines changed: 0 additions & 33 deletions
This file was deleted.

acidify-docs/app/layout.tsx

Lines changed: 0 additions & 70 deletions
This file was deleted.

acidify-docs/app/nextra.d.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

acidify-docs/app/styles.css

Lines changed: 0 additions & 7 deletions
This file was deleted.

acidify-docs/biome.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/2.5.2/schema.json",
3+
"vcs": {
4+
"enabled": true,
5+
"clientKind": "git",
6+
"useIgnoreFile": true
7+
},
8+
"files": {
9+
"ignoreUnknown": true,
10+
"includes": ["**", "!node_modules", "!.next", "!dist", "!build", "!.source"]
11+
},
12+
"formatter": {
13+
"enabled": true,
14+
"indentStyle": "space",
15+
"indentWidth": 2
16+
},
17+
"linter": {
18+
"enabled": true,
19+
"rules": {
20+
"preset": "recommended"
21+
},
22+
"domains": {
23+
"next": "recommended",
24+
"react": "recommended"
25+
}
26+
},
27+
"assist": {
28+
"actions": {
29+
"source": {
30+
"organizeImports": "on"
31+
}
32+
}
33+
}
34+
}

acidify-docs/content/_meta.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

acidify-docs/content/core/_meta.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
# 在 Kotlin 中使用
1+
---
2+
title: 在 Kotlin 中使用
3+
---
24

35
## 引入依赖
46

5-
[![Maven Central](https://img.shields.io/maven-central/v/org.ntqqrev/acidify-core?label=Maven%20Central&logo=maven&color=blue)](https://central.sonatype.com/artifact/org.ntqqrev/acidify-core)
7+
[![Maven Central](https://img.shields.io/maven-central/v/org.ntqqrev/acidify-core?label=Maven%20Central&logo=maven&color=blue&style=flat-square)](https://central.sonatype.com/artifact/org.ntqqrev/acidify-core)
68

79
Acidify 的核心实现库 `acidify-core` 发布在 Maven Central 上。`acidify-core` 是一个 Kotlin Multiplatform 库,支持的平台如下:
810

@@ -85,9 +87,11 @@ val bot = Bot(
8587
- [`NopLogHandler`](/kdoc/acidify-core/org.ntqqrev.acidify.logging/-nop-log-handler/index.html):不输出任何日志。
8688
- [`SimpleLogHandler`](/kdoc/acidify-core/org.ntqqrev.acidify.logging/-simple-log-handler/index.html):将日志输出到控制台。
8789

88-
> [!tip]
89-
>
90-
> 以下代码均假设你在使用 Kotlin/JVM。如果你使用 Kotlin Multiplatform,可以参考[Yogurt 的源代码](https://github.com/LagrangeDev/acidify/tree/main/yogurt),其中包含了许多在 Kotlin Multiplatform 使用 `acidify-core` 的最佳实践,下文的很多示例均能在 Yogurt 的源代码中找到类似的实现。此外,不要忘记参考 [`acidify-core` 的 KDoc](/kdoc/index.html),其中包含了完整的 API 文档。
90+
{/* prettier-ignore */}
91+
<Callout>
92+
以下代码均假设你在使用 Kotlin/JVM。如果你使用 Kotlin Multiplatform,可以参考[Yogurt 的源代码](https://github.com/LagrangeDev/acidify/tree/main/yogurt),其中包含了许多在 Kotlin Multiplatform 使用 `acidify-core` 的最佳实践,下文的很多示例均能在 Yogurt 的源代码中找到类似的实现。此外,不要忘记参考 [`acidify-core` 的 KDoc](/kdoc/index.html),其中包含了完整的 API 文档。
93+
</Callout>
94+
{/* prettier-ignore-end */}
9195

9296
## 调用 Bot API
9397

@@ -192,23 +196,29 @@ bot.sendGroupMessage(group.uin) {
192196
}
193197
```
194198

195-
> [!note]
196-
>
197-
> `acidify-core` 中提供的消息发送功能较为底层,需要调用者自行提供许多元信息,例如被 @ 的成员名片、图片的宽高等。如果你希望使用更高层次的消息发送功能,请考虑使用 Yogurt 并配合应用端框架使用。
199+
{/* prettier-ignore */}
200+
<Callout>
201+
`acidify-core` 中提供的消息发送功能较为底层,需要调用者自行提供许多元信息,例如被 @ 的成员名片、图片的宽高等。如果你希望使用更高层次的消息发送功能,请考虑使用 Yogurt 并配合应用端框架使用。
202+
</Callout>
203+
{/* prettier-ignore-end */}
198204

199205
发送消息的 API 会返回一个 [`BotOutgoingMessageResult`](/kdoc/acidify-core/org.ntqqrev.acidify.message/-bot-outgoing-message-result/index.html) 对象,包含了消息的序列号和实际发送的时间。
200206

201207
## 处理事件
202208

203209
Bot 提供了一个 [`eventFlow`](/kdoc/acidify-core/org.ntqqrev.acidify/-bot/event-flow.html) 属性,它是一个 <code><a href="https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-shared-flow/">SharedFlow</a>&lt;<a href="/kdoc/acidify-core/org.ntqqrev.acidify.event/-acidify-event/index.html">AcidifyEvent</a>&gt;</code>,用于监听 Bot 产生的各种事件。你可以通过调用该 Flow 的 [`collect`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/collect.html) 方法来处理事件。
204210

205-
> [!note]
206-
>
207-
> `collect` 是一个 `suspend fun`,调用它会导致当前协程挂起并持续运行。因此,建议你在一个单独的协程中调用它(使用 [`CoroutineScope.launch`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/launch.html) 等方式),以免阻塞主协程。以下的代码示例均假设你已经启动了一个独立的协程来处理事件。
211+
{/* prettier-ignore */}
212+
<Callout>
213+
`collect` 是一个 `suspend fun`,调用它会导致当前协程挂起并持续运行。因此,建议你在一个单独的协程中调用它(使用 [`CoroutineScope.launch`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/launch.html) 等方式),以免阻塞主协程。以下的代码示例均假设你已经启动了一个独立的协程来处理事件。
214+
</Callout>
215+
{/* prettier-ignore-end */}
208216

209-
> [!warning]
210-
>
211-
> 任何在 `collect` 块中抛出的异常都会导致该协程终止,从而停止对事件的处理。因此,建议在处理事件时使用 `try-catch` 块来捕获并处理可能的异常,以确保事件处理器能够持续运行。也可以使用 [`runCatching`](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/run-catching.html) 来包装事件处理逻辑。以下示例均未展示异常处理逻辑,请根据实际情况添加。
217+
{/* prettier-ignore */}
218+
<Callout type="warning">
219+
任何在 `collect` 块中抛出的异常都会导致该协程终止,从而停止对事件的处理。因此,建议在处理事件时使用 `try-catch` 块来捕获并处理可能的异常,以确保事件处理器能够持续运行。也可以使用 [`runCatching`](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/run-catching.html) 来包装事件处理逻辑。以下示例均未展示异常处理逻辑,请根据实际情况添加。
220+
</Callout>
221+
{/* prettier-ignore-end */}
212222

213223
### 接收消息
214224

@@ -266,9 +276,7 @@ bot.eventFlow
266276
}
267277
```
268278

269-
> [!note]
270-
>
271-
> `eventFlow` 是一个热流 (Hot Flow),它会在 Bot 启动时立即开始产生事件。因此,你应该尽早开始监听该 Flow,以免错过重要事件。通常建议在调用 `login` 之前就开始监听 `eventFlow`
279+
`eventFlow` 是一个热流 (Hot Flow),它会在 Bot 启动时立即开始产生事件。因此,你应该尽早开始监听该 Flow,以免错过重要事件。通常建议在调用 `login` 之前就开始监听 `eventFlow`
272280

273281
### 处理好友/群聊请求
274282

0 commit comments

Comments
 (0)