📝 Docs: 插件发布表单描述优化 (#3520)

This commit is contained in:
StarHeart 2025-06-17 17:03:06 +08:00 committed by GitHub
parent a0ecd63e7c
commit 6d35481209
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 52 additions and 6 deletions

View File

@ -3,6 +3,13 @@ title: "Adapter: {name}"
description: 发布适配器到 NoneBot 官方商店
labels: ["Adapter", "Publish"]
body:
- type: markdown
attributes:
value: |
# 发布须知
非特殊情况下,请通过 [NoneBot 适配器商店](https://nonebot.dev/store/adapters) 的发布表单进行插件发布信息填写。
- type: input
id: name
attributes:

View File

@ -3,6 +3,13 @@ title: "Bot: {name}"
description: 发布机器人到 NoneBot 官方商店
labels: ["Bot", "Publish"]
body:
- type: markdown
attributes:
value: |
# 发布须知
非特殊情况下,请通过 [NoneBot 机器人商店](https://nonebot.dev/store/bots) 的发布表单进行插件发布信息填写。
- type: input
id: name
attributes:

View File

@ -3,6 +3,14 @@ title: "Plugin: {name}"
description: 发布插件到 NoneBot 官方商店
labels: ["Plugin", "Publish"]
body:
- type: markdown
attributes:
value: |
# 发布须知
非特殊情况下,请通过 [NoneBot 插件商店](https://nonebot.dev/store/plugins) 的发布表单进行插件发布信息填写。
在发布前请阅读 [NoneBot 插件发布流程指导](https://nonebot.dev/docs/developer/plugin-publishing) 并确保满足其中所述条件。
- type: input
id: pypi
attributes:
@ -15,9 +23,9 @@ body:
- type: input
id: module
attributes:
label: 插件 import 包
description: 插件 import 包名
placeholder: e.g. nonebot_plugin_xxx
label: 插件模块
description: 加载插件时所使用的模块名称
placeholder: e.g. nonebot_plugin_apscheduler
validations:
required: true

View File

@ -1,5 +1,7 @@
import React from "react";
import Link from "@docusaurus/Link";
import { Form } from ".";
export default function PluginForm(): React.ReactNode {
@ -8,7 +10,7 @@ export default function PluginForm(): React.ReactNode {
name: "包信息",
items: [
{ type: "text", name: "pypi", labelText: "PyPI 项目名" },
{ type: "text", name: "module", labelText: "插件 import 包名" },
{ type: "text", name: "module", labelText: "插件模块名" },
],
},
{
@ -29,7 +31,25 @@ export default function PluginForm(): React.ReactNode {
);
};
const description = (
<p>
{" "}
<Link
className="text-primary"
href="https://nonebot.dev/docs/developer/plugin-publishing"
>
NoneBot
</Link>
</p>
);
return (
<Form type="plugin" formItems={formItems} handleSubmit={handleSubmit} />
<Form
type="plugin"
formItems={formItems}
handleSubmit={handleSubmit}
description={description}
/>
);
}

View File

@ -24,6 +24,7 @@ export type FormItemGroup = {
export type Props = {
children?: React.ReactNode;
description?: React.ReactNode;
type: Resource["resourceType"];
formItems: FormItemGroup[];
handleSubmit: (result: Record<string, string>) => void;
@ -32,6 +33,7 @@ export type Props = {
export function Form({
type,
children,
description,
formItems,
handleSubmit,
}: Props): React.ReactNode {
@ -65,7 +67,6 @@ export function Form({
);
if (currentStepNames.every((name) => result[name])) {
setCurrentStep(currentStep + 1);
} else {
}
};
const onPrev = () => currentStep > 0 && setCurrentStep(currentStep - 1);
@ -86,6 +87,9 @@ export function Form({
</li>
))}
</ul>
{description && currentStep === 0 && (
<div className="form-description">{description}</div>
)}
<div className="form-control w-full min-h-[300px]">
{children ||
formItems[currentStep].items.map((item) => (