#tasks #markdown #task #user-interface #parse-markdown #plain-text #todo

bin+lib marktask

一个用于解析和操作 Markdown 任务的 CLI 工具

2 个不稳定版本

0.2.0 2024年2月5日
0.1.0 2024年2月4日

#583 in 文本处理

Apache-2.0

18KB
327 代码行

Rust

marktask

marktask 是一个命令行界面 (CLI) 应用程序,用于解析和操作 Markdown 任务。它允许用户在 shell 环境中无缝地过滤、提取和转换任务信息。

功能

  • 解析 Markdown 格式的任务。
  • 提取具有截止日期、计划日期和开始日期的任务。
  • 根据完成状态过滤任务。
  • 使用 --overdue 选项过滤或包含过期任务。
  • 以纯文本或 JSON 格式输出任务,以便其他工具轻松消费。
  • 使用 --from--to 选项在特定日期范围内过滤任务。

安装

cargo build --release
mv target/release/marktask /usr/local/bin

用法

marktask 可用于与管道和其他 shell 环境中的命令一起使用。以下是一些入门示例

显示文件中的任务

marktask < tasks.md  # or
cat tasks.md | marktask

过滤包含特定文本的任务

cat tasks.md | marktask | grep "Project A"

此命令序列从 tasks.md 读取任务,解析它们,然后使用 grep 过滤与 "Project A" 相关的任务。

将任务转换为 JSON

为了与其他消费 JSON 的工具集成,marktask 可以上输任务为 JSON 格式

cat tasks.md | marktask --json

过滤过期任务

要排除输出中的过期任务,请使用 --overdue=false 选项。默认情况下,显示所有任务,包括过期任务

cat tasks.md | marktask --overdue=false

按日期范围过滤任务

要包括从特定日期开始的任务或从相对日期(如今天起一周)开始的任务

cat tasks.md | marktask --from 2024-01-01
cat tasks.md | marktask --from +1w  # Tasks starting from one week from today

要包括到特定日期的任务或到相对期限(如两天后)的任务

cat tasks.md | marktask --to 2024-01-31
cat tasks.md | marktask --to +2d  # Tasks up to two days from today

要包括在特定日期范围内或相对期限内完成任务

cat tasks.md | marktask --from 2024-01-01 --to 2024-01-31
cat tasks.md | marktask --from -1w --to +1m  # Tasks from last week to one month from today

许可证

本项目采用 Apache 许可证版本 2.0 - 有关详细信息,请参阅 LICENSE 文件。

依赖项

~5–7MB
~127K SLoC