style: format the repository with prettier
These files were already out of step with the project's Prettier config before this branch of work; running `pnpm format` finally swept them up. No semantic changes. Kept separate from the functional commits so the reformatting does not bury them in diff noise.
This commit is contained in:
50 files changed
+643
-678
No files matched your search
@@ -6,16 +6,16 @@ title: Calendar Toolbox API
|
||||
|
||||
库的代码组织在基础包 `com.onixbyte.calendar` 下,结构如下:
|
||||
|
||||
| 包 | 描述 |
|
||||
|---|---|
|
||||
| `com.onixbyte.calendar` | 根日历对象 |
|
||||
| `com.onixbyte.calendar.component` | iCalendar 组件(VEVENT、VTODO 等) |
|
||||
| `com.onixbyte.calendar.component.property` | 组件级属性 |
|
||||
| `com.onixbyte.calendar.property` | 日历级属性 |
|
||||
| `com.onixbyte.calendar.parameter` | iCalendar 属性参数 |
|
||||
| `com.onixbyte.calendar.recurrence` | 重复规则类型 |
|
||||
| `com.onixbyte.calendar.value` | 值类型 |
|
||||
| `com.onixbyte.calendar.util` | 格式化工具类 |
|
||||
| 包 | 描述 |
|
||||
| ------------------------------------------ | ---------------------------------- |
|
||||
| `com.onixbyte.calendar` | 根日历对象 |
|
||||
| `com.onixbyte.calendar.component` | iCalendar 组件(VEVENT、VTODO 等) |
|
||||
| `com.onixbyte.calendar.component.property` | 组件级属性 |
|
||||
| `com.onixbyte.calendar.property` | 日历级属性 |
|
||||
| `com.onixbyte.calendar.parameter` | iCalendar 属性参数 |
|
||||
| `com.onixbyte.calendar.recurrence` | 重复规则类型 |
|
||||
| `com.onixbyte.calendar.value` | 值类型 |
|
||||
| `com.onixbyte.calendar.util` | 格式化工具类 |
|
||||
|
||||
---
|
||||
|
||||
@@ -46,19 +46,19 @@ String icsContent = calendar.formatted();
|
||||
|
||||
所有日历级属性位于 `com.onixbyte.calendar.property`,实现 `CalendarProperty` 接口。
|
||||
|
||||
| 类 | iCalendar 属性 | 描述 |
|
||||
|---|---|---|
|
||||
| `CalendarScale` | `CALSCALE` | 日历系统(例如 GREGORIAN) |
|
||||
| `Method` | `METHOD` | iCalendar 方法(例如 PUBLISH、REQUEST) |
|
||||
| `ProductIdentifier` | `PRODID` | 日历的产品标识符 |
|
||||
| `Version` | `VERSION` | iCalendar 版本(例如 2.0) |
|
||||
| `Owner` | `X-OWNER` | 日历所有者 |
|
||||
| `PrimaryCalendar` | `X-PRIMARY-CALENDAR` | 是否为主日历 |
|
||||
| `PublishedTTL` | `X-PUBLISHED-TTL` | 已发布日历的生存时间 |
|
||||
| `CalendarDescription` | `X-CALENDAR-DESC` | 日历描述 |
|
||||
| `CalendarName` | `X-CALENDAR-NAME` | 日历名称 |
|
||||
| `CalendarId` | `X-CALENDAR-ID` | 日历标识符 |
|
||||
| `CustomCalendarProperty` | `X-*` | 自定义日历属性 |
|
||||
| 类 | iCalendar 属性 | 描述 |
|
||||
| ------------------------ | -------------------- | --------------------------------------- |
|
||||
| `CalendarScale` | `CALSCALE` | 日历系统(例如 GREGORIAN) |
|
||||
| `Method` | `METHOD` | iCalendar 方法(例如 PUBLISH、REQUEST) |
|
||||
| `ProductIdentifier` | `PRODID` | 日历的产品标识符 |
|
||||
| `Version` | `VERSION` | iCalendar 版本(例如 2.0) |
|
||||
| `Owner` | `X-OWNER` | 日历所有者 |
|
||||
| `PrimaryCalendar` | `X-PRIMARY-CALENDAR` | 是否为主日历 |
|
||||
| `PublishedTTL` | `X-PUBLISHED-TTL` | 已发布日历的生存时间 |
|
||||
| `CalendarDescription` | `X-CALENDAR-DESC` | 日历描述 |
|
||||
| `CalendarName` | `X-CALENDAR-NAME` | 日历名称 |
|
||||
| `CalendarId` | `X-CALENDAR-ID` | 日历标识符 |
|
||||
| `CustomCalendarProperty` | `X-*` | 自定义日历属性 |
|
||||
|
||||
自定义属性使用 Builder 创建:
|
||||
|
||||
@@ -276,50 +276,50 @@ Alarm emailAlarm = Alarm.builder()
|
||||
|
||||
组件属性位于 `com.onixbyte.calendar.component.property`,实现 `ComponentProperty` 接口。
|
||||
|
||||
| 类 | iCalendar 属性 | 描述 |
|
||||
|---|---|---|
|
||||
| `Action` | `ACTION` | 闹钟操作类型(AUDIO、DISPLAY、EMAIL) |
|
||||
| `Attachment` | `ATTACH` | 文档附件 |
|
||||
| `Attendee` | `ATTENDEE` | 事件/任务参与者 |
|
||||
| `Categories` | `CATEGORIES` | 类别或标签 |
|
||||
| `Classification` | `CLASS` | 访问分类(PUBLIC、PRIVATE、CONFIDENTIAL) |
|
||||
| `Comment` | `COMMENT` | 评论 |
|
||||
| `Contact` | `CONTACT` | 联系信息 |
|
||||
| `DateTimeCompleted` | `COMPLETED` | 完成日期时间 |
|
||||
| `DateTimeCreated` | `CREATED` | 创建日期时间 |
|
||||
| `DateTimeDue` | `DUE` | 截止日期时间 |
|
||||
| `DateTimeEnd` | `DTEND` | 结束日期时间 |
|
||||
| `DateTimeStamp` | `DTSTAMP` | 日期时间戳 |
|
||||
| `DateTimeStart` | `DTSTART` | 开始日期时间 |
|
||||
| `Description` | `DESCRIPTION` | 描述 |
|
||||
| `ExceptionDateTimes` | `EXDATE` | 例外日期时间 |
|
||||
| `FreeBusyTime` | `FREEBUSY` | 空闲/忙碌时间段 |
|
||||
| `GeographicPosition` | `GEO` | 地理位置(纬度/经度) |
|
||||
| `LastModified` | `LAST-MODIFIED` | 最后修改日期时间 |
|
||||
| `Location` | `LOCATION` | 地点 |
|
||||
| `Organiser` | `ORGANIZER` | 组织者 |
|
||||
| `PercentComplete` | `PERCENT-COMPLETE` | 完成百分比 |
|
||||
| `Priority` | `PRIORITY` | 优先级 |
|
||||
| `RecurrenceDateTimes` | `RDATE` | 重复日期时间 |
|
||||
| `RecurrenceId` | `RECURRENCE-ID` | 重复实例标识符 |
|
||||
| `RecurrenceRule` | `RRULE` | 重复规则 |
|
||||
| `RelatedTo` | `RELATED-TO` | 相关组件引用 |
|
||||
| `RepeatCount` | `REPEAT` | 闹钟重复次数 |
|
||||
| `RequestStatus` | `REQUEST-STATUS` | 请求状态 |
|
||||
| `Resources` | `RESOURCES` | 资源 |
|
||||
| `SequenceNumber` | `SEQUENCE` | 序列号(修订版本) |
|
||||
| `Status` | `STATUS` | 组件状态(TENTATIVE、CONFIRMED、CANCELLED 等) |
|
||||
| `Summary` | `SUMMARY` | 标题或摘要 |
|
||||
| `TimeTransparency` | `TRANSP` | 时间透明度(OPAQUE、TRANSPARENT) |
|
||||
| `TimeZoneIdentifier` | `TZID` | 时区标识符 |
|
||||
| `TimeZoneName` | `TZNAME` | 时区名称 |
|
||||
| `TimeZoneOffsetFrom` | `TZOFFSETFROM` | 相对于 UTC 的时区偏移(原) |
|
||||
| `TimeZoneOffsetTo` | `TZOFFSETTO` | 相对于 UTC 的时区偏移(目标) |
|
||||
| `TimeZoneUrl` | `TZURL` | 时区 URL |
|
||||
| `Trigger` | `TRIGGER` | 闹钟触发器 |
|
||||
| `UniformResourceLocator` | `URL` | 关联 URL |
|
||||
| `UniqueIdentifier` | `UID` | 唯一标识符 |
|
||||
| `CustomComponentProperty` | `X-*` | 自定义组件属性 |
|
||||
| 类 | iCalendar 属性 | 描述 |
|
||||
| ------------------------- | ------------------ | ---------------------------------------------- |
|
||||
| `Action` | `ACTION` | 闹钟操作类型(AUDIO、DISPLAY、EMAIL) |
|
||||
| `Attachment` | `ATTACH` | 文档附件 |
|
||||
| `Attendee` | `ATTENDEE` | 事件/任务参与者 |
|
||||
| `Categories` | `CATEGORIES` | 类别或标签 |
|
||||
| `Classification` | `CLASS` | 访问分类(PUBLIC、PRIVATE、CONFIDENTIAL) |
|
||||
| `Comment` | `COMMENT` | 评论 |
|
||||
| `Contact` | `CONTACT` | 联系信息 |
|
||||
| `DateTimeCompleted` | `COMPLETED` | 完成日期时间 |
|
||||
| `DateTimeCreated` | `CREATED` | 创建日期时间 |
|
||||
| `DateTimeDue` | `DUE` | 截止日期时间 |
|
||||
| `DateTimeEnd` | `DTEND` | 结束日期时间 |
|
||||
| `DateTimeStamp` | `DTSTAMP` | 日期时间戳 |
|
||||
| `DateTimeStart` | `DTSTART` | 开始日期时间 |
|
||||
| `Description` | `DESCRIPTION` | 描述 |
|
||||
| `ExceptionDateTimes` | `EXDATE` | 例外日期时间 |
|
||||
| `FreeBusyTime` | `FREEBUSY` | 空闲/忙碌时间段 |
|
||||
| `GeographicPosition` | `GEO` | 地理位置(纬度/经度) |
|
||||
| `LastModified` | `LAST-MODIFIED` | 最后修改日期时间 |
|
||||
| `Location` | `LOCATION` | 地点 |
|
||||
| `Organiser` | `ORGANIZER` | 组织者 |
|
||||
| `PercentComplete` | `PERCENT-COMPLETE` | 完成百分比 |
|
||||
| `Priority` | `PRIORITY` | 优先级 |
|
||||
| `RecurrenceDateTimes` | `RDATE` | 重复日期时间 |
|
||||
| `RecurrenceId` | `RECURRENCE-ID` | 重复实例标识符 |
|
||||
| `RecurrenceRule` | `RRULE` | 重复规则 |
|
||||
| `RelatedTo` | `RELATED-TO` | 相关组件引用 |
|
||||
| `RepeatCount` | `REPEAT` | 闹钟重复次数 |
|
||||
| `RequestStatus` | `REQUEST-STATUS` | 请求状态 |
|
||||
| `Resources` | `RESOURCES` | 资源 |
|
||||
| `SequenceNumber` | `SEQUENCE` | 序列号(修订版本) |
|
||||
| `Status` | `STATUS` | 组件状态(TENTATIVE、CONFIRMED、CANCELLED 等) |
|
||||
| `Summary` | `SUMMARY` | 标题或摘要 |
|
||||
| `TimeTransparency` | `TRANSP` | 时间透明度(OPAQUE、TRANSPARENT) |
|
||||
| `TimeZoneIdentifier` | `TZID` | 时区标识符 |
|
||||
| `TimeZoneName` | `TZNAME` | 时区名称 |
|
||||
| `TimeZoneOffsetFrom` | `TZOFFSETFROM` | 相对于 UTC 的时区偏移(原) |
|
||||
| `TimeZoneOffsetTo` | `TZOFFSETTO` | 相对于 UTC 的时区偏移(目标) |
|
||||
| `TimeZoneUrl` | `TZURL` | 时区 URL |
|
||||
| `Trigger` | `TRIGGER` | 闹钟触发器 |
|
||||
| `UniformResourceLocator` | `URL` | 关联 URL |
|
||||
| `UniqueIdentifier` | `UID` | 唯一标识符 |
|
||||
| `CustomComponentProperty` | `X-*` | 自定义组件属性 |
|
||||
|
||||
---
|
||||
|
||||
@@ -327,28 +327,28 @@ Alarm emailAlarm = Alarm.builder()
|
||||
|
||||
参数位于 `com.onixbyte.calendar.parameter`,为组件属性提供额外限定。
|
||||
|
||||
| 类 | iCalendar 参数 | 描述 |
|
||||
|---|---|---|
|
||||
| `AlarmTriggerRelationship` | `RELATED` | 触发器关联(START、END) |
|
||||
| `AlternateTextRepresentation` | `ALTREP` | 替代文本 URI |
|
||||
| `CalendarUserType` | `CUTYPE` | 日历用户类型(INDIVIDUAL、GROUP、RESOURCE 等) |
|
||||
| `CommonName` | `CN` | 通用名称 |
|
||||
| `Delegatees` | `DELEGATED-TO` | 受托人 |
|
||||
| `Delegators` | `DELEGATED-FROM` | 委托人 |
|
||||
| `DirectoryEntryReference` | `DIR` | 目录条目 URI |
|
||||
| `FormatType` | `FMTTYPE` | 格式类型(MIME 类型) |
|
||||
| `FreeBusyTimeType` | `FBTYPE` | 空闲/忙碌时间类型 |
|
||||
| `InlineEncoding` | `ENCODING` | 内联编码(BASE64) |
|
||||
| `Language` | `LANGUAGE` | 语言 |
|
||||
| `Membership` | `MEMBER` | 组成员 |
|
||||
| `ParticipationRole` | `ROLE` | 参与角色(CHAIR、REQ-PARTICIPANT 等) |
|
||||
| `ParticipationStatus` | `PARTSTAT` | 参与状态(ACCEPTED、DECLINED 等) |
|
||||
| `RecurrenceIdentifierRange` | `RANGE` | 重复范围(THISANDPRIOR、THISANDFUTURE) |
|
||||
| `RelationshipType` | `RELTYPE` | 关系类型(PARENT、CHILD、SIBLING) |
|
||||
| `RsvpExpectation` | `RSVP` | RSVP 期望(TRUE、FALSE) |
|
||||
| `SentBy` | `SENT-BY` | 发送者 |
|
||||
| `TimeZoneIdentifier` | `TZID` | 时区标识符 |
|
||||
| `ValueDataType` | `VALUE` | 值数据类型(DATE、DATE-TIME 等) |
|
||||
| 类 | iCalendar 参数 | 描述 |
|
||||
| ----------------------------- | ---------------- | ---------------------------------------------- |
|
||||
| `AlarmTriggerRelationship` | `RELATED` | 触发器关联(START、END) |
|
||||
| `AlternateTextRepresentation` | `ALTREP` | 替代文本 URI |
|
||||
| `CalendarUserType` | `CUTYPE` | 日历用户类型(INDIVIDUAL、GROUP、RESOURCE 等) |
|
||||
| `CommonName` | `CN` | 通用名称 |
|
||||
| `Delegatees` | `DELEGATED-TO` | 受托人 |
|
||||
| `Delegators` | `DELEGATED-FROM` | 委托人 |
|
||||
| `DirectoryEntryReference` | `DIR` | 目录条目 URI |
|
||||
| `FormatType` | `FMTTYPE` | 格式类型(MIME 类型) |
|
||||
| `FreeBusyTimeType` | `FBTYPE` | 空闲/忙碌时间类型 |
|
||||
| `InlineEncoding` | `ENCODING` | 内联编码(BASE64) |
|
||||
| `Language` | `LANGUAGE` | 语言 |
|
||||
| `Membership` | `MEMBER` | 组成员 |
|
||||
| `ParticipationRole` | `ROLE` | 参与角色(CHAIR、REQ-PARTICIPANT 等) |
|
||||
| `ParticipationStatus` | `PARTSTAT` | 参与状态(ACCEPTED、DECLINED 等) |
|
||||
| `RecurrenceIdentifierRange` | `RANGE` | 重复范围(THISANDPRIOR、THISANDFUTURE) |
|
||||
| `RelationshipType` | `RELTYPE` | 关系类型(PARENT、CHILD、SIBLING) |
|
||||
| `RsvpExpectation` | `RSVP` | RSVP 期望(TRUE、FALSE) |
|
||||
| `SentBy` | `SENT-BY` | 发送者 |
|
||||
| `TimeZoneIdentifier` | `TZID` | 时区标识符 |
|
||||
| `ValueDataType` | `VALUE` | 值数据类型(DATE、DATE-TIME 等) |
|
||||
|
||||
---
|
||||
|
||||
@@ -356,10 +356,10 @@ Alarm emailAlarm = Alarm.builder()
|
||||
|
||||
位于 `com.onixbyte.calendar.recurrence`。
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| `Frequency` | 重复频率常量(DAILY、WEEKLY、MONTHLY、YEARLY),用于重复规则 |
|
||||
| `WeekdayNum` | 重复规则的星期序号(例如第 2 个星期一) |
|
||||
| 类 | 描述 |
|
||||
| ------------ | ------------------------------------------------------------ |
|
||||
| `Frequency` | 重复频率常量(DAILY、WEEKLY、MONTHLY、YEARLY),用于重复规则 |
|
||||
| `WeekdayNum` | 重复规则的星期序号(例如第 2 个星期一) |
|
||||
|
||||
---
|
||||
|
||||
@@ -367,12 +367,12 @@ Alarm emailAlarm = Alarm.builder()
|
||||
|
||||
位于 `com.onixbyte.calendar.value`。
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| `FreeBusyTimeValue` | 表示空闲/忙碌时间值 |
|
||||
| `PeriodOfTime` | 表示一个时间段,包含开始和结束 |
|
||||
| `PropertyValue` | 属性的基础值类型 |
|
||||
| `UtcOffset` | UTC 偏移值(例如 `-05:00`、`+01:00`) |
|
||||
| 类 | 描述 |
|
||||
| ------------------- | ------------------------------------- |
|
||||
| `FreeBusyTimeValue` | 表示空闲/忙碌时间值 |
|
||||
| `PeriodOfTime` | 表示一个时间段,包含开始和结束 |
|
||||
| `PropertyValue` | 属性的基础值类型 |
|
||||
| `UtcOffset` | UTC 偏移值(例如 `-05:00`、`+01:00`) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -22,10 +22,8 @@ Calendar Toolbox 是一个 Java 库,旨在简化遵循 iCalendar 规范(RFC
|
||||
|
||||
<Tabs>
|
||||
<Tab label="Gradle with Kotlin DSL">
|
||||
```kotlin title="build.gradle.kts"
|
||||
dependencies {
|
||||
implementation("com.onixbyte:calendar-toolbox:1.1.0")
|
||||
}
|
||||
```kotlin title="build.gradle.kts" dependencies{" "}
|
||||
{implementation("com.onixbyte:calendar-toolbox:1.1.0")}
|
||||
```
|
||||
</Tab>
|
||||
<Tab label="Maven">
|
||||
|
||||
@@ -6,19 +6,19 @@ title: Captcha API
|
||||
|
||||
库的代码组织在基础包 `com.onixbyte.captcha` 下,结构如下:
|
||||
|
||||
| 包 | 描述 |
|
||||
|---|---|
|
||||
| `com.onixbyte.captcha` | 核心接口 |
|
||||
| `com.onixbyte.captcha.impl` | 默认实现 |
|
||||
| `com.onixbyte.captcha.text` | 文本生成器和渲染器接口 |
|
||||
| `com.onixbyte.captcha.text.impl` | 文本生成器和渲染器实现 |
|
||||
| `com.onixbyte.captcha.text.enums` | 文本相关枚举 |
|
||||
| `com.onixbyte.captcha.background` | 背景生成器接口 |
|
||||
| `com.onixbyte.captcha.background.impl` | 背景生成器实现 |
|
||||
| `com.onixbyte.captcha.noise` | 噪点生成器接口 |
|
||||
| `com.onixbyte.captcha.noise.impl` | 噪点生成器实现 |
|
||||
| `com.onixbyte.captcha.gimpy` | 扭曲引擎接口 |
|
||||
| `com.onixbyte.captcha.gimpy.impl` | 扭曲引擎实现 |
|
||||
| 包 | 描述 |
|
||||
| -------------------------------------- | ---------------------- |
|
||||
| `com.onixbyte.captcha` | 核心接口 |
|
||||
| `com.onixbyte.captcha.impl` | 默认实现 |
|
||||
| `com.onixbyte.captcha.text` | 文本生成器和渲染器接口 |
|
||||
| `com.onixbyte.captcha.text.impl` | 文本生成器和渲染器实现 |
|
||||
| `com.onixbyte.captcha.text.enums` | 文本相关枚举 |
|
||||
| `com.onixbyte.captcha.background` | 背景生成器接口 |
|
||||
| `com.onixbyte.captcha.background.impl` | 背景生成器实现 |
|
||||
| `com.onixbyte.captcha.noise` | 噪点生成器接口 |
|
||||
| `com.onixbyte.captcha.noise.impl` | 噪点生成器实现 |
|
||||
| `com.onixbyte.captcha.gimpy` | 扭曲引擎接口 |
|
||||
| `com.onixbyte.captcha.gimpy.impl` | 扭曲引擎实现 |
|
||||
|
||||
---
|
||||
|
||||
@@ -45,17 +45,17 @@ BufferedImage image = captcha.createImage(text);
|
||||
|
||||
### DefaultCaptchaProducer Builder
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| `textProducer` | `DefaultTextProducer.builder().build()` | 文本生成器 |
|
||||
| `wordRenderer` | `DefaultWordRenderer.builder().build()` | 文字渲染器 |
|
||||
| `gimpyEngine` | `WaterRipple.builder().build()` | 扭曲引擎 |
|
||||
| `backgroundProducer` | `DefaultBackgroundProducer.builder().build()` | 背景生成器 |
|
||||
| `width` | `200` | 验证码图片宽度 |
|
||||
| `height` | `50` | 验证码图片高度 |
|
||||
| `borderDrawn` | `true` | 是否绘制边框 |
|
||||
| `borderColour` | `Color.BLACK` | 边框颜色 |
|
||||
| `borderThickness` | `1` | 边框厚度 |
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| -------------------- | --------------------------------------------- | -------------- |
|
||||
| `textProducer` | `DefaultTextProducer.builder().build()` | 文本生成器 |
|
||||
| `wordRenderer` | `DefaultWordRenderer.builder().build()` | 文字渲染器 |
|
||||
| `gimpyEngine` | `WaterRipple.builder().build()` | 扭曲引擎 |
|
||||
| `backgroundProducer` | `DefaultBackgroundProducer.builder().build()` | 背景生成器 |
|
||||
| `width` | `200` | 验证码图片宽度 |
|
||||
| `height` | `50` | 验证码图片高度 |
|
||||
| `borderDrawn` | `true` | 是否绘制边框 |
|
||||
| `borderColour` | `Color.BLACK` | 边框颜色 |
|
||||
| `borderThickness` | `1` | 边框厚度 |
|
||||
|
||||
---
|
||||
|
||||
@@ -82,10 +82,10 @@ DefaultTextProducer textProducer = DefaultTextProducer.builder()
|
||||
.build();
|
||||
```
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| `length` | `6` | 生成文本的长度 |
|
||||
| `chars` | `a-z`、`A-Z`、`0-9`(共 62 个字符) | 生成文本使用的字符集 |
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| -------- | ----------------------------------- | -------------------- |
|
||||
| `length` | `6` | 生成文本的长度 |
|
||||
| `chars` | `a-z`、`A-Z`、`0-9`(共 62 个字符) | 生成文本使用的字符集 |
|
||||
|
||||
### WordRenderer
|
||||
|
||||
@@ -111,24 +111,24 @@ DefaultWordRenderer wordRenderer = DefaultWordRenderer.builder()
|
||||
.build();
|
||||
```
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| `fontSize` | `40` | 字号(像素) |
|
||||
| `fonts` | `["Arial", "Courier"]` | 字体族(随机选择) |
|
||||
| `fontColour` | `Color.BLACK` | 字体颜色 |
|
||||
| `charSpace` | `2` | 字符间距(像素) |
|
||||
| `fontStyle` | `FontStyle.BOLD` | 字体样式 |
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| ------------ | ---------------------- | ------------------ |
|
||||
| `fontSize` | `40` | 字号(像素) |
|
||||
| `fonts` | `["Arial", "Courier"]` | 字体族(随机选择) |
|
||||
| `fontColour` | `Color.BLACK` | 字体颜色 |
|
||||
| `charSpace` | `2` | 字符间距(像素) |
|
||||
| `fontStyle` | `FontStyle.BOLD` | 字体样式 |
|
||||
|
||||
### FontStyle
|
||||
|
||||
定义 CAPTCHA 文字渲染支持的字体样式。
|
||||
|
||||
| 值 | 对应的 AWT 常量 | 描述 |
|
||||
|---|---|---|
|
||||
| `PLAIN` | `java.awt.Font.PLAIN` | 普通样式 |
|
||||
| `BOLD` | `java.awt.Font.BOLD` | 粗体 |
|
||||
| `ITALIC` | `java.awt.Font.ITALIC` | 斜体 |
|
||||
| `BOLD_ITALIC` | `java.awt.Font.BOLD | Font.ITALIC` | 粗斜体 |
|
||||
| 值 | 对应的 AWT 常量 | 描述 |
|
||||
| ------------- | ---------------------- | ------------ | ------ |
|
||||
| `PLAIN` | `java.awt.Font.PLAIN` | 普通样式 |
|
||||
| `BOLD` | `java.awt.Font.BOLD` | 粗体 |
|
||||
| `ITALIC` | `java.awt.Font.ITALIC` | 斜体 |
|
||||
| `BOLD_ITALIC` | `java.awt.Font.BOLD | Font.ITALIC` | 粗斜体 |
|
||||
|
||||
---
|
||||
|
||||
@@ -152,8 +152,8 @@ WaterRipple gimpy = WaterRipple.builder()
|
||||
.build();
|
||||
```
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| --------------- | ---------------------------------------- | ---------- |
|
||||
| `noiseProducer` | `DefaultNoiseProducer.builder().build()` | 噪点生成器 |
|
||||
|
||||
### FishEyeGimpy
|
||||
@@ -175,8 +175,8 @@ ShadowGimpy gimpy = ShadowGimpy.builder()
|
||||
.build();
|
||||
```
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| --------------- | ---------------------------------------- | ---------- |
|
||||
| `noiseProducer` | `DefaultNoiseProducer.builder().build()` | 噪点生成器 |
|
||||
|
||||
---
|
||||
@@ -204,8 +204,8 @@ DefaultNoiseProducer noise = DefaultNoiseProducer.builder()
|
||||
.build();
|
||||
```
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| ------------- | ------------- | -------- |
|
||||
| `noiseColour` | `Color.BLACK` | 噪点颜色 |
|
||||
|
||||
#### NoNoiseProducer
|
||||
@@ -242,7 +242,7 @@ DefaultBackgroundProducer background = DefaultBackgroundProducer.builder()
|
||||
.build();
|
||||
```
|
||||
|
||||
| 方法 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| 方法 | 默认值 | 描述 |
|
||||
| ------------ | ------------------ | ------------ |
|
||||
| `colourFrom` | `Color.LIGHT_GRAY` | 渐变起始颜色 |
|
||||
| `colourTo` | `Color.WHITE` | 渐变结束颜色 |
|
||||
| `colourTo` | `Color.WHITE` | 渐变结束颜色 |
|
||||
@@ -23,10 +23,7 @@ Captcha 是一个用于生成 CAPTCHA 验证码图片的 Java 库。本项目是
|
||||
|
||||
<Tabs>
|
||||
<Tab label="Gradle with Kotlin DSL">
|
||||
```kotlin title="build.gradle.kts"
|
||||
dependencies {
|
||||
implementation("com.onixbyte:captcha:1.0.0")
|
||||
}
|
||||
```kotlin title="build.gradle.kts" dependencies {implementation("com.onixbyte:captcha:1.0.0")}
|
||||
```
|
||||
</Tab>
|
||||
<Tab label="Maven">
|
||||
|
||||
@@ -23,6 +23,7 @@ Skills 会被直接部署到 Claude Code 自身的 Skills 目录(`~/.claude/sk
|
||||
| Windows (amd64) | `ccsm-windows-amd64.exe` |
|
||||
|
||||
将二进制文件放到 `PATH` 中的某个目录,并重命名为 `ccsm`(Windows 上为 `ccsm.exe`)。
|
||||
|
||||
</Tab>
|
||||
<Tab label="Cargo 安装">
|
||||
```bash
|
||||
@@ -109,10 +110,10 @@ ccsm marketplace remove my-marketplace
|
||||
|
||||
CCSM 支持两种部署模式:
|
||||
|
||||
| 模式 | 行为 | 适用场景 |
|
||||
|------|------|----------|
|
||||
| `copy`(默认) | 将文件物理复制到 `~/.claude/skills/<name>/` | 日常使用 — 安全且自包含 |
|
||||
| `link` | 创建指向本地存储的符号链接 | Skill 开发 — 对源文件的修改会立即生效 |
|
||||
| 模式 | 行为 | 适用场景 |
|
||||
| -------------- | ------------------------------------------- | ------------------------------------- |
|
||||
| `copy`(默认) | 将文件物理复制到 `~/.claude/skills/<name>/` | 日常使用 — 安全且自包含 |
|
||||
| `link` | 创建指向本地存储的符号链接 | Skill 开发 — 对源文件的修改会立即生效 |
|
||||
|
||||
可在配置中设置默认模式,也可在安装时单独指定:
|
||||
|
||||
@@ -158,21 +159,21 @@ your-marketplace-repo/
|
||||
|
||||
**顶层字段:**
|
||||
|
||||
| 字段 | 必需 | 说明 |
|
||||
|------|------|------|
|
||||
| `name` | 是 | Marketplace 的显示名称 |
|
||||
| `version` | 否 | 用于自行追踪的任意版本号 |
|
||||
| `skills` | 否 | Skill 条目数组(默认为 `[]`) |
|
||||
| 字段 | 必需 | 说明 |
|
||||
| --------- | ---- | ----------------------------- |
|
||||
| `name` | 是 | Marketplace 的显示名称 |
|
||||
| `version` | 否 | 用于自行追踪的任意版本号 |
|
||||
| `skills` | 否 | Skill 条目数组(默认为 `[]`) |
|
||||
|
||||
**Skill 条目字段:**
|
||||
|
||||
| 字段 | 必需 | 说明 |
|
||||
|------|------|------|
|
||||
| `name` | 是 | Skill 的唯一标识符(用于 `ccsm install <name>`) |
|
||||
| `description` | 是 | 在 `ccsm search` 输出中显示的一行摘要 |
|
||||
| `repository` | 是 | Skill 的公开 Git 仓库 URL |
|
||||
| `branch` | 否 | 安装时使用的 Git 分支(先尝试 `main`,再回退到 `master`) |
|
||||
| `path` | 否 | 仓库中 Skill 文件所在的子目录 — 支持单个仓库托管多个 Skills |
|
||||
| 字段 | 必需 | 说明 |
|
||||
| ------------- | ---- | ----------------------------------------------------------- |
|
||||
| `name` | 是 | Skill 的唯一标识符(用于 `ccsm install <name>`) |
|
||||
| `description` | 是 | 在 `ccsm search` 输出中显示的一行摘要 |
|
||||
| `repository` | 是 | Skill 的公开 Git 仓库 URL |
|
||||
| `branch` | 否 | 安装时使用的 Git 分支(先尝试 `main`,再回退到 `master`) |
|
||||
| `path` | 否 | 仓库中 Skill 文件所在的子目录 — 支持单个仓库托管多个 Skills |
|
||||
|
||||
### 工作原理
|
||||
|
||||
@@ -202,12 +203,12 @@ my-skill-repo/
|
||||
|
||||
## 数据存储位置
|
||||
|
||||
| 路径 | 用途 |
|
||||
|------|------|
|
||||
| `~/.claude/skills/` | Claude Code 的 Skills 目录 —— Skills 的部署目标 |
|
||||
| `~/.config/ccsm/config.json` | CCSM 配置文件(已注册的 Marketplace、默认模式) |
|
||||
| `~/.config/ccsm/marketplaces/` | 缓存的 Marketplace 清单 |
|
||||
| `~/.config/ccsm/skills/` | 下载的 Skill 文件(本地存储) |
|
||||
| 路径 | 用途 |
|
||||
| ------------------------------ | ----------------------------------------------- |
|
||||
| `~/.claude/skills/` | Claude Code 的 Skills 目录 —— Skills 的部署目标 |
|
||||
| `~/.config/ccsm/config.json` | CCSM 配置文件(已注册的 Marketplace、默认模式) |
|
||||
| `~/.config/ccsm/marketplaces/` | 缓存的 Marketplace 清单 |
|
||||
| `~/.config/ccsm/skills/` | 下载的 Skill 文件(本地存储) |
|
||||
|
||||
在 Windows 上,`~/.config/` 对应 `C:\Users\<user>\AppData\Roaming\`。
|
||||
|
||||
|
||||
@@ -6,64 +6,64 @@ title: Delta Force Guide API
|
||||
|
||||
后端是基于 Spring Boot 3 的应用程序,代码组织在基础包 `com.onixbyte.deltaforceguide` 下:
|
||||
|
||||
| 包 | 描述 |
|
||||
|---|---|
|
||||
| `controller` | REST API 端点控制器 |
|
||||
| `service` | 业务逻辑层 |
|
||||
| `repository` | MyBatis 数据访问层 |
|
||||
| `domain` | JPA 实体与领域对象 |
|
||||
| `config` | Spring 配置(安全、缓存等) |
|
||||
| `properties` | 配置属性类 |
|
||||
| `enumeration` | 枚举类型 |
|
||||
| `shared` | 共享工具类 |
|
||||
| 包 | 描述 |
|
||||
| ------------- | --------------------------- |
|
||||
| `controller` | REST API 端点控制器 |
|
||||
| `service` | 业务逻辑层 |
|
||||
| `repository` | MyBatis 数据访问层 |
|
||||
| `domain` | JPA 实体与领域对象 |
|
||||
| `config` | Spring 配置(安全、缓存等) |
|
||||
| `properties` | 配置属性类 |
|
||||
| `enumeration` | 枚举类型 |
|
||||
| `shared` | 共享工具类 |
|
||||
|
||||
## API 端点
|
||||
|
||||
### 认证
|
||||
|
||||
| 方法 | 路径 | 描述 | 认证 |
|
||||
|---|---|---|---|
|
||||
| `POST` | `/api/auth/login` | 使用凭证登录 | 否 |
|
||||
| `POST` | `/api/auth/refresh` | 刷新 access token | 否 |
|
||||
| `GET` | `/api/auth/profile` | 获取当前用户信息 | 是 |
|
||||
| 方法 | 路径 | 描述 | 认证 |
|
||||
| ------ | ------------------- | ----------------- | ---- |
|
||||
| `POST` | `/api/auth/login` | 使用凭证登录 | 否 |
|
||||
| `POST` | `/api/auth/refresh` | 刷新 access token | 否 |
|
||||
| `GET` | `/api/auth/profile` | 获取当前用户信息 | 是 |
|
||||
|
||||
### 枪械
|
||||
|
||||
| 方法 | 路径 | 描述 |
|
||||
|---|---|---|
|
||||
| `GET` | `/api/firearms` | 枪械列表(分页,可按类型筛选) |
|
||||
| `GET` | `/api/firearms/:id` | 按 ID 获取枪械详情 |
|
||||
| `POST` | `/api/firearms` | 创建新枪械 |
|
||||
| `PUT` | `/api/firearms/:id` | 更新枪械信息 |
|
||||
| `DELETE` | `/api/firearms/:id` | 删除枪械 |
|
||||
| 方法 | 路径 | 描述 |
|
||||
| -------- | ------------------- | ------------------------------ |
|
||||
| `GET` | `/api/firearms` | 枪械列表(分页,可按类型筛选) |
|
||||
| `GET` | `/api/firearms/:id` | 按 ID 获取枪械详情 |
|
||||
| `POST` | `/api/firearms` | 创建新枪械 |
|
||||
| `PUT` | `/api/firearms/:id` | 更新枪械信息 |
|
||||
| `DELETE` | `/api/firearms/:id` | 删除枪械 |
|
||||
|
||||
### 改装
|
||||
|
||||
| 方法 | 路径 | 描述 |
|
||||
|---|---|---|
|
||||
| `GET` | `/api/modifications` | 改装列表(分页,可按枪械和标签筛选) |
|
||||
| `GET` | `/api/modifications/:id` | 按 ID 获取改装详情 |
|
||||
| `POST` | `/api/modifications` | 创建改装 |
|
||||
| `POST` | `/api/modifications/batch` | 批量创建改装 |
|
||||
| `PUT` | `/api/modifications/:id` | 更新改装 |
|
||||
| `DELETE` | `/api/modifications/:id` | 删除改装 |
|
||||
| `DELETE` | `/api/modifications/batch-delete` | 批量删除改装 |
|
||||
| 方法 | 路径 | 描述 |
|
||||
| -------- | --------------------------------- | ------------------------------------ |
|
||||
| `GET` | `/api/modifications` | 改装列表(分页,可按枪械和标签筛选) |
|
||||
| `GET` | `/api/modifications/:id` | 按 ID 获取改装详情 |
|
||||
| `POST` | `/api/modifications` | 创建改装 |
|
||||
| `POST` | `/api/modifications/batch` | 批量创建改装 |
|
||||
| `PUT` | `/api/modifications/:id` | 更新改装 |
|
||||
| `DELETE` | `/api/modifications/:id` | 删除改装 |
|
||||
| `DELETE` | `/api/modifications/batch-delete` | 批量删除改装 |
|
||||
|
||||
### 标签
|
||||
|
||||
| 方法 | 路径 | 描述 |
|
||||
|---|---|---|
|
||||
| 方法 | 路径 | 描述 |
|
||||
| ----- | ----------- | ------------ |
|
||||
| `GET` | `/api/tags` | 获取所有标签 |
|
||||
|
||||
## 前端路由
|
||||
|
||||
| 路径 | 布局 | 页面 | 描述 |
|
||||
|---|---|---|---|
|
||||
| `/` | 主布局 | 枪械浏览 | 首页 — 枪械列表 |
|
||||
| `/firearms` | 主布局 | 枪械浏览 | 枪械详情与搜索 |
|
||||
| `/mod-codes` | 主布局 | 改装代码 | 改装代码库 |
|
||||
| `/legal` | 主布局 | 法律信息 | 法律与隐私信息 |
|
||||
| `/login` | 空白布局 | 登录 | 用户认证页面 |
|
||||
| 路径 | 布局 | 页面 | 描述 |
|
||||
| ------------ | -------- | -------- | --------------- |
|
||||
| `/` | 主布局 | 枪械浏览 | 首页 — 枪械列表 |
|
||||
| `/firearms` | 主布局 | 枪械浏览 | 枪械详情与搜索 |
|
||||
| `/mod-codes` | 主布局 | 改装代码 | 改装代码库 |
|
||||
| `/legal` | 主布局 | 法律信息 | 法律与隐私信息 |
|
||||
| `/login` | 空白布局 | 登录 | 用户认证页面 |
|
||||
|
||||
## 前端状态管理
|
||||
|
||||
@@ -82,10 +82,10 @@ Redux Toolkit 结合 Redux Persist 管理以下状态:
|
||||
|
||||
## 基础设施
|
||||
|
||||
| 组件 | 技术 |
|
||||
|---|---|
|
||||
| 数据库 | PostgreSQL(使用 Flyway 进行数据库迁移) |
|
||||
| 缓存 | Redis(会话和 token 存储) |
|
||||
| 文件存储 | AWS S3(枪械图片) |
|
||||
| 容器化 | Docker |
|
||||
| 部署 | Docker Compose + Nginx |
|
||||
| 组件 | 技术 |
|
||||
| -------- | ---------------------------------------- |
|
||||
| 数据库 | PostgreSQL(使用 Flyway 进行数据库迁移) |
|
||||
| 缓存 | Redis(会话和 token 存储) |
|
||||
| 文件存储 | AWS S3(枪械图片) |
|
||||
| 容器化 | Docker |
|
||||
| 部署 | Docker Compose + Nginx |
|
||||
@@ -25,12 +25,12 @@ Delta Force Guide 是一个全栈 Web 应用,为游戏 Delta Force(三角洲
|
||||
|
||||
## 架构
|
||||
|
||||
| 组件 | 技术栈 |
|
||||
|---|---|
|
||||
| 组件 | 技术栈 |
|
||||
| -------- | --------------------------------------------------------------------------------------------------- |
|
||||
| **前端** | React 19、TypeScript、Tailwind CSS 4、Ant Design 6、React Router 7、Redux Toolkit、TanStack Virtual |
|
||||
| **后端** | Spring Boot 3、Java 21、PostgreSQL、MyBatis、Flyway、Redis |
|
||||
| **认证** | JWT(access 和 refresh token)、验证码集成 |
|
||||
| **存储** | AWS S3(图片上传) |
|
||||
| **后端** | Spring Boot 3、Java 21、PostgreSQL、MyBatis、Flyway、Redis |
|
||||
| **认证** | JWT(access 和 refresh token)、验证码集成 |
|
||||
| **存储** | AWS S3(图片上传) |
|
||||
|
||||
前端是由 Vite 构建的静态站点,通过 API 与 Spring Boot 后端通信。认证采用 JWT access 和 refresh token 机制,refresh token 通过 Redis 管理。
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ title: OnixByte Toolbox API
|
||||
|
||||
所有模块均在 `com.onixbyte` group ID 下发布。每个模块有自己独立的基础包:
|
||||
|
||||
| 模块 | Maven Artifact | 基础包 |
|
||||
|---|---|---|
|
||||
| Common Toolbox | `common-toolbox` | `com.onixbyte.common` |
|
||||
| Crypto Toolbox | `crypto-toolbox` | `com.onixbyte.crypto` |
|
||||
| Math Toolbox | `math-toolbox` | `com.onixbyte.math` |
|
||||
| Tuple | `tuple` | `com.onixbyte.tuple` |
|
||||
| 模块 | Maven Artifact | 基础包 |
|
||||
| ------------------ | -------------------- | -------------------------------- |
|
||||
| Common Toolbox | `common-toolbox` | `com.onixbyte.common` |
|
||||
| Crypto Toolbox | `crypto-toolbox` | `com.onixbyte.crypto` |
|
||||
| Math Toolbox | `math-toolbox` | `com.onixbyte.math` |
|
||||
| Tuple | `tuple` | `com.onixbyte.tuple` |
|
||||
| Identity Generator | `identity-generator` | `com.onixbyte.identitygenerator` |
|
||||
|
||||
---
|
||||
@@ -28,16 +28,16 @@ import com.onixbyte.common.adapter.ObjectMapAdapter;
|
||||
|
||||
### 工具类
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| `AesUtil` | AES 对称加密/解密,支持密钥生成 |
|
||||
| `Base64Util` | Base64 编解码,支持多种字符集 |
|
||||
| `BoolUtil` | 布尔值解析与转换工具 |
|
||||
| `BranchUtil` | 条件分支辅助,支持函数式链式调用 |
|
||||
| `CollectionUtil` | 集合操作 — 分组、分区、合并 |
|
||||
| `HashUtil` | 哈希工具,支持 MD5、SHA-1、SHA-256、SHA-512 |
|
||||
| `MapUtil` | Map 构建、合并和转换辅助 |
|
||||
| `RangeUtil` | 数值范围操作,支持边界处理 |
|
||||
| 类 | 描述 |
|
||||
| ---------------- | ------------------------------------------- |
|
||||
| `AesUtil` | AES 对称加密/解密,支持密钥生成 |
|
||||
| `Base64Util` | Base64 编解码,支持多种字符集 |
|
||||
| `BoolUtil` | 布尔值解析与转换工具 |
|
||||
| `BranchUtil` | 条件分支辅助,支持函数式链式调用 |
|
||||
| `CollectionUtil` | 集合操作 — 分组、分区、合并 |
|
||||
| `HashUtil` | 哈希工具,支持 MD5、SHA-1、SHA-256、SHA-512 |
|
||||
| `MapUtil` | Map 构建、合并和转换辅助 |
|
||||
| `RangeUtil` | 数值范围操作,支持边界处理 |
|
||||
|
||||
**AesUtil 示例:**
|
||||
|
||||
@@ -70,12 +70,12 @@ var grouped = CollectionUtil.groupBy(users, User::getDepartment);
|
||||
|
||||
### 密钥加载器
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| `RSAPrivateKeyLoader` | 从 PEM 字符串加载 RSA 私钥 |
|
||||
| `RSAPublicKeyLoader` | 从 PEM 字符串加载 RSA 公钥 |
|
||||
| `ECPrivateKeyLoader` | 从 PEM 字符串加载 ECDSA 私钥 |
|
||||
| `ECPublicKeyLoader` | 从 PEM 字符串加载 ECDSA 公钥 |
|
||||
| 类 | 描述 |
|
||||
| --------------------- | ---------------------------- |
|
||||
| `RSAPrivateKeyLoader` | 从 PEM 字符串加载 RSA 私钥 |
|
||||
| `RSAPublicKeyLoader` | 从 PEM 字符串加载 RSA 公钥 |
|
||||
| `ECPrivateKeyLoader` | 从 PEM 字符串加载 ECDSA 私钥 |
|
||||
| `ECPublicKeyLoader` | 从 PEM 字符串加载 ECDSA 公钥 |
|
||||
|
||||
所有密钥加载器实现 `PrivateKeyLoader` 或 `PublicKeyLoader` 接口。
|
||||
|
||||
@@ -99,8 +99,8 @@ var ecPublicKey = new ECPublicKeyLoader().load(pemString);
|
||||
|
||||
### 异常
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| 类 | 描述 |
|
||||
| --------------------- | -------------------------- |
|
||||
| `KeyLoadingException` | PEM 格式密钥解析失败时抛出 |
|
||||
|
||||
---
|
||||
@@ -111,10 +111,10 @@ var ecPublicKey = new ECPublicKeyLoader().load(pemString);
|
||||
|
||||
### 核心类
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| `Calculator` | 统计计算器 — 均值、中位数、方差、标准差、总和、最小值、最大值 |
|
||||
| `PercentileCalculator` | 百分位数计算器,支持可配置的插值策略 |
|
||||
| 类 | 描述 |
|
||||
| ---------------------- | ------------------------------------------------------------- |
|
||||
| `Calculator` | 统计计算器 — 均值、中位数、方差、标准差、总和、最小值、最大值 |
|
||||
| `PercentileCalculator` | 百分位数计算器,支持可配置的插值策略 |
|
||||
|
||||
**Calculator 示例:**
|
||||
|
||||
@@ -135,8 +135,8 @@ double p99 = calculator.calculate(99);
|
||||
|
||||
### 数据模型
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| 类 | 描述 |
|
||||
| ---------------- | --------------------------------------------- |
|
||||
| `QuartileBounds` | 包含 Q1、中位数(Q2)、Q3 值及 IQR 和须线边界 |
|
||||
|
||||
---
|
||||
@@ -147,11 +147,11 @@ double p99 = calculator.calculate(99);
|
||||
|
||||
### 类
|
||||
|
||||
| 类 | 类型参数 | 可变性 |
|
||||
|---|---|---|
|
||||
| `Tuple<A, B>` | 两个元素 | 可变 |
|
||||
| `ImmutableTuple<A, B>` | 两个元素 | 不可变 |
|
||||
| `Triple<A, B, C>` | 三个元素 | 可变 |
|
||||
| 类 | 类型参数 | 可变性 |
|
||||
| -------------------------- | -------- | ------ |
|
||||
| `Tuple<A, B>` | 两个元素 | 可变 |
|
||||
| `ImmutableTuple<A, B>` | 两个元素 | 不可变 |
|
||||
| `Triple<A, B, C>` | 三个元素 | 可变 |
|
||||
| `ImmutableTriple<A, B, C>` | 三个元素 | 不可变 |
|
||||
|
||||
**示例:**
|
||||
@@ -183,10 +183,10 @@ Integer c = triple.getThird();
|
||||
|
||||
### 实现
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| `SequentialUuidGenerator` | 生成时间排序的顺序 UUID(优化数据库索引性能) |
|
||||
| `SnowflakeIdentityGenerator` | 雪花算法分布式唯一 ID 生成 |
|
||||
| 类 | 描述 |
|
||||
| ---------------------------- | --------------------------------------------- |
|
||||
| `SequentialUuidGenerator` | 生成时间排序的顺序 UUID(优化数据库索引性能) |
|
||||
| `SnowflakeIdentityGenerator` | 雪花算法分布式唯一 ID 生成 |
|
||||
|
||||
**顺序 UUID:**
|
||||
|
||||
@@ -204,6 +204,6 @@ long id = generator.nextId(); // 64 位雪花 ID
|
||||
|
||||
### 异常
|
||||
|
||||
| 类 | 描述 |
|
||||
|---|---|
|
||||
| 类 | 描述 |
|
||||
| ----------------- | ------------------------------------------ |
|
||||
| `TimingException` | 系统时钟回拨时抛出,保证 ID 唯一性不受影响 |
|
||||
@@ -12,14 +12,14 @@ OnixByte Toolbox 是一个面向 Java 应用的开发工具包,提供了一系
|
||||
|
||||
## 模块
|
||||
|
||||
| 模块 | Artifact ID | 描述 |
|
||||
|--------------------|----------------------|-----------------------------------|
|
||||
| 模块 | Artifact ID | 描述 |
|
||||
| ------------------ | -------------------- | ----------------------------------------------------- |
|
||||
| Common Toolbox | `common-toolbox` | 日常工具类 — AES 加密、哈希、Base64、集合、分支、范围 |
|
||||
| Crypto Toolbox | `crypto-toolbox` | RSA 和 ECDSA 算法的公私钥加载 |
|
||||
| Math Toolbox | `math-toolbox` | 统计计算、百分位数分析、四分位数计算 |
|
||||
| Tuple | `tuple` | 泛型二元组和三元组,含不可变版本 |
|
||||
| Identity Generator | `identity-generator` | 雪花算法和顺序 UUID 唯一标识符生成 |
|
||||
| Version Catalogue | `version-catalogue` | OnixByte 项目的集中式 Gradle 版本目录 |
|
||||
| Crypto Toolbox | `crypto-toolbox` | RSA 和 ECDSA 算法的公私钥加载 |
|
||||
| Math Toolbox | `math-toolbox` | 统计计算、百分位数分析、四分位数计算 |
|
||||
| Tuple | `tuple` | 泛型二元组和三元组,含不可变版本 |
|
||||
| Identity Generator | `identity-generator` | 雪花算法和顺序 UUID 唯一标识符生成 |
|
||||
| Version Catalogue | `version-catalogue` | OnixByte 项目的集中式 Gradle 版本目录 |
|
||||
|
||||
## 安装
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@ import { Tabs, Tab } from "@rspress/core/theme"
|
||||
|
||||
每个地区暴露四个属性:
|
||||
|
||||
| 属性 | 类型 | 描述 | 示例 |
|
||||
|---|---|---|---|
|
||||
| `abbreviation` | String | ISO 3166-1 alpha-2 缩写 | `HK`、`US`、`GB`、`RU` |
|
||||
| `code` | String | ISO 3166-1 alpha-3 代码 | `HKG`、`USA`、`GBR`、`RUS` |
|
||||
| `callingCode` | String | E.164 国际拨号前缀 | `852`、`1`、`44`、`7` |
|
||||
| `locale` | String | 默认语言和地区标签 | `zh_HK`、`en_US`、`en_GB`、`ru_RU` |
|
||||
| 属性 | 类型 | 描述 | 示例 |
|
||||
| -------------- | ------ | ----------------------- | ---------------------------------- |
|
||||
| `abbreviation` | String | ISO 3166-1 alpha-2 缩写 | `HK`、`US`、`GB`、`RU` |
|
||||
| `code` | String | ISO 3166-1 alpha-3 代码 | `HKG`、`USA`、`GBR`、`RUS` |
|
||||
| `callingCode` | String | E.164 国际拨号前缀 | `852`、`1`、`44`、`7` |
|
||||
| `locale` | String | 默认语言和地区标签 | `zh_HK`、`en_US`、`en_GB`、`ru_RU` |
|
||||
|
||||
## 安装
|
||||
|
||||
|
||||
@@ -20,16 +20,8 @@ import { Tabs, Tab } from "@rspress/core/theme"
|
||||
## 安装
|
||||
|
||||
<Tabs>
|
||||
<Tab label="npm">
|
||||
```bash
|
||||
npm install vite-plugin-port-checker -D
|
||||
```
|
||||
</Tab>
|
||||
<Tab label="pnpm">
|
||||
```bash
|
||||
pnpm add vite-plugin-port-checker -D
|
||||
```
|
||||
</Tab>
|
||||
<Tab label="npm">```bash npm install vite-plugin-port-checker -D ```</Tab>
|
||||
<Tab label="pnpm">```bash pnpm add vite-plugin-port-checker -D ```</Tab>
|
||||
</Tabs>
|
||||
|
||||
## 使用
|
||||
|
||||
Reference in new issue
Block a user