命令行界面 (CLI) 虽然由于终端功能的限制在图形化方面有所欠缺,但仍然可以从跨各种命令的精心设计和一致的美学中获益匪浅。这通常是图形用户界面 (GUI) 中设计系统所扮演的角色,但在终端环境中,这在很大程度上仍未被探索。
长期以来,Tuist 的终端体验一直缺乏设计系统,导致诸如间距不一致、信息过载和难以解析的输出等问题。这种情况促使我们创建了 SwiftTerminal,一个专门为 Swift 驱动的 CLI 设计的设计系统。
Noora 提供了一套美观、可定制且统一的设计系统,用于打造终端体验。它凝结了我们在构建 Tuist CLI 方面的丰富经验。我们很高兴与 Swift 社区分享它,旨在使构建终端体验成为一个令人愉悦的过程。
注意
该项目目前处于早期开发阶段。我们的计划是创建一个基本组件集,然后根据我们从社区收到的反馈对其进行迭代。
将 Noora
添加为项目的依赖项
import PackageDescription
let package = Package(
name: "Noora",
platforms: [.macOS("12.0")],
products: [
/** Your products **/
],
dependencies: [
.package(url: "https://github.com/tuist/Noora", .upToNextMajor(from: "0.15.0")),
],
targets: [
/** Your targets **/
]
)
然后你就可以开始使用 Noora 了。你需要首先创建一个 Noora
实例,然后每个可用的组件都表示为 Noora
实例中的一个函数。
Noora().yesOrNoChoicePrompt(
title: "Authentication",
question: "Would you like to authenticate?",
defaultAnswer: true,
description: "Authentication is required to use some CLI features."
)
查看我们的文档以查看组件及其用法。
git clone https://github.com/tuist/Noora.git
tuist generate
git clone https://github.com/tuist/Noora.git
Package.swift
文件要查看组件及其用法,请访问文档网站。