surgiie / project-cli
PHP Kanban 风格的待办事项 CLI。
Requires
- php: ^8.0
- illuminate/database: ^9.0
- nunomaduro/laravel-console-menu: ^3.2
- nunomaduro/laravel-desktop-notifier: ^2.7
- surgiie/console: ^3.1.0
Requires (Dev)
- laravel-zero/framework: ^9.2
- laravel/pint: ^1.2
- mockery/mockery: ^1.4.4
- pestphp/pest: ^1.21.3
README
一个简单的 PHP Kanban 风格的待办事项 CLI。
安装
-
确保已安装
sqlite
以及sqlite3
&pctnl
扩展。 -
运行
composer global require surgiie/project-cli
。在 Windows 上使用时请使用--ignore-platform-reqs
。
创建新看板
要创建新看板,运行:project new:board <看板名称>
这将创建以下目录:~/.project/boards/<看板名称>
还将创建以下 sqlite 数据库文件:~/.projects/boards/<看板名称>/database
。
设置/选择看板
要设置 CLI 将与之交互的默认看板,运行:project select <看板名称>
这允许 CLI 在运行命令时知道要交互哪个看板。
注意:这将在您创建第一个看板时自动完成。
创建任务状态
为看板任务创建状态,并在看板列表中使用它们作为标题。例如,您可能创建的常见状态集
project new:status "Todo" project new:status "Doing" project new:status "Done"
提示:为了获得最佳的渲染体验,请考虑将其保持在 3-5 个状态或您屏幕/终端大小可以渲染的状态数。3-4 个最佳,状态过多可能会导致看板渲染问题。
创建任务标签
可选地,您可以为看板任务创建标签。例如,您可能想按紧急程度标记任务
project new:tag "Urgent" project new:tag "Not Urgent"
创建任务
您可以通过运行 new:task
命令来创建任务
project new:task "某些任务描述" --status="待办" --tag="紧急" --due-date="2 周"
注意 任何可以被 Carbon 库解析的字符串值都可以在这里使用。
编辑任务
您可以使用 edit:task
命令编辑现有任务
project edit:task <新描述> --id="<任务 ID>" --status="<新状态>" --tag="<新标签>" --due-date="<新到期日期>"
移动任务
要“移动”任务,只需更新状态字段
project edit:task --id="1" --status="进行中"
使用终端编辑器创建任务描述
如果您更喜欢在终端编辑器中而不是命令行中键入任务描述,请使用 --editor 标志打开临时文件以键入描述。默认情况下,这将是在 Vim 中
project new:task --editor --status="待办" --tag="紧急"
一旦您关闭 vim,您将返回到命令进程,您的任务将被创建。
注意:如果您想使用其他基于终端的编辑器,可以像下面文档中所述,通过设置TERMINAL_EDITOR首选项来使用其他基于终端的编辑器的二进制文件。仅支持基于终端的编辑器,因为VSCode、Sublime等编辑器不会在与命令调用相同的终端进程中运行。如果您尝试将其设置为非基于终端的编辑器,系统将提示您在终端中输入描述。
显示看板
您可以使用show:board
命令显示您的看板,您将看到类似以下示例的内容
显示任务详情
要打印出单个带详细信息的任务,请运行带有您要查看的任务ID的show:task
命令
删除任务
要从看板中删除任务,请使用带有--id
选项的remove:task
命令。
project remove:task --id=20
注意 - 可以多次传递--id
选项以一次删除多个任务。
CLI首选项
您可以使用存储在sqlite数据库中的首选项来定制某些功能或输出。例如,要指定看板列的顺序
project set "STATUS_ORDER" "Todo, Doing, Done"
CLI将消耗此表中存储的值所设置的首选项。
以下是当前可以设置的一些选项列表
名称 | 描述 | 示例 | 默认值 |
---|---|---|---|
STATUS_ORDER |
显示在板上的状态顺序。 | project set STATUS_ORDER "Todo,Doing,Done" |
不适用 |
TERMINAL_EDITOR |
使用--editor 选项创建任务内容时要使用的终端编辑器。 |
project set TERMINAL_EDITOR "nano" |
vim |
DATE_TIMEZONE |
用于显示在板和/或任务详情上的日期的时区。必须是PHP的timezone_identifiers_list函数返回的有效列表 | project set DATE_TIMEZONE "America/New_York" |
America/Indiana/Indianapolis |