Boxed(盒子化)

一个轻量级的 Swift 包,用于在文本内容周围创建漂亮的 ASCII 和 emoji 框。 非常适合 CLI 应用程序、日志记录或任何您希望使文本输出更具视觉吸引力的地方。

特性

安装

Swift 包管理器

将以下内容添加到您的 Package.swift 文件中

dependencies: [
    .package(url: "https://github.com/yourusername/Boxed.git", from: "1.0.0")
]

使用

基本 ASCII 框

import Boxed

Boxed.ascii("Hello, World!")

输出

┌──────────────────────┐
│                      │
│     Hello, World!    │
│                      │
└──────────────────────┘

Emoji 框

import Boxed

Boxed.emoji("Welcome!\nTo my app")

输出

🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦
⬜️                    ⬜️
⬜️     Welcome!      ⬜️
⬜️     To my app     ⬜️
⬜️                    ⬜️
🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦

自定义选项

Boxed.ascii(
    "Custom Width Example",
    width: 40,
    centerFirstLine: true
)

Boxed.emoji(
    "Multiple\nLines\nOf\nText",
    width: 30,
    centerFirstLine: false
)

API 参考

ASCII 框

public static func ascii(
    _ message: String,
    width: Int = 120,
    centerFirstLine: Bool = true,
    boxStyle: BoxCharactersProvider = BoxStyle.ascii
)

Emoji 框

public static func emoji(
    _ message: String,
    width: Int = 120,
    centerFirstLine: Bool = true,
    boxStyle: BoxCharactersProvider = BoxStyle.ascii
)

参数

自定义框样式

您可以通过实现 BoxCharactersProvider 协议来创建自定义框样式

public protocol BoxCharactersProvider {
    var topLeft: Character { get }
    var topRight: Character { get }
    var bottomLeft: Character { get }
    var bottomRight: Character { get }
    var horizontal: Character { get }
    var vertical: Character { get }
}

贡献

欢迎贡献! 请随时提交 Pull Request。

许可证

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。