1 个不稳定版本
新 0.1.0 | 2024 年 8 月 23 日 |
---|
8 在 #txt-file
39KB
671 行
libdonow
一个针对 todo.txt 格式的 Rust 库。该库支持该格式的所有功能,包括优先级、上下文、项目和到期日期。该库是 donow 应用的基础,这是一个使用 Tauri 框架编写的原生 todo.txt 应用程序。
libdonow 具有多种功能,可以轻松地处理 todo.txt 文件。您可以使用自定义的 TodoFile
包装结构体打开 todo.txt 文件,该结构体具有各种与文件交互的方法。
use libdonow::file::TodoFile;
fn main(){
let file = TodoFile::new("todo.txt");
file.rearrange();
file.save();
println!("{}", file);
let todo = file[0];
todo.toggle_status();
println!("{}", todo);
}
TodoFile 结构体还具有各种实现和方法,感觉像 Vec 结构体,但有一些额外功能。
该库还具有强大的功能来处理单个 todo 项。每个 todo 项都使用一些复杂的正则表达式功能进行解析,并存储在名为 Todo
的结构体中。该 Todo
结构体采用“仅所需”的方法,因此您有各种函数和实用程序来检索所需的内容,而无需解析整个 todo 项。
例如,TodoFile 结构体中的 get_projects
方法返回 todo.txt 文件中所有项目的 Vec。为此,它仅解析 todo.txt 文件中的项目,并返回它们。
for todo in &self.todos {
if let Ok(Some(project)) = todo.parse_project() {
projects.push(project);
}
}
有关该库的更多信息,请参阅 文档。
贡献
如果您想为该项目做出贡献,请随意fork 仓库并提交 pull request。
许可证
本项目受 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。
依赖项
~5.5–7.5MB
~133K SLoC