{"id":13412824,"url":"https://github.com/1set/todotxt","last_synced_at":"2026-01-12T02:37:33.202Z","repository":{"id":39781906,"uuid":"310665831","full_name":"1set/todotxt","owner":"1set","description":"Parser for todo.txt files in Go ✅","archived":false,"fork":false,"pushed_at":"2023-09-21T04:48:11.000Z","size":63,"stargazers_count":23,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-07-31T20:51:28.921Z","etag":null,"topics":["go","golang","todo","todoapp","todolist","todotxt"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/1set.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-11-06T17:41:59.000Z","updated_at":"2024-07-30T04:06:44.000Z","dependencies_parsed_at":"2024-01-08T15:02:34.940Z","dependency_job_id":"6836818a-94ec-4bc2-abdc-65d2f1113df7","html_url":"https://github.com/1set/todotxt","commit_stats":null,"previous_names":["vt128/todotxt"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1set%2Ftodotxt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1set%2Ftodotxt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1set%2Ftodotxt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1set%2Ftodotxt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1set","download_url":"https://codeload.github.com/1set/todotxt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221495312,"owners_count":16832458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","todo","todoapp","todolist","todotxt"],"created_at":"2024-07-30T20:01:29.694Z","updated_at":"2026-01-12T02:37:33.193Z","avatar_url":"https://github.com/1set.png","language":"Go","funding_links":[],"categories":["File Handling","文件处理","Relational Databases","文件处理`处理文件和文件系统操作的库`"],"sub_categories":["Search and Analytic Databases","Advanced Console UIs","SQL 查询语句构建库","检索及分析资料库"],"readme":"# todotxt\n\nYet another a Go library for Gina Trapani's todo.txt files. ✅\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/1set/todotxt)](https://pkg.go.dev/github.com/1set/todotxt)\n[![License](https://img.shields.io/github/license/1set/todotxt)](https://github.com/1set/todotxt/blob/master/LICENSE)\n[![GitHub Action Workflow](https://github.com/1set/todotxt/workflows/build/badge.svg)](https://github.com/1set/todotxt/actions?workflow=build)\n[![Go Report Card](https://goreportcard.com/badge/github.com/1set/todotxt)](https://goreportcard.com/report/github.com/1set/todotxt)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/448bb14650984e21a7c41bcac221a1ba)](https://www.codacy.com/gh/1set/todotxt/dashboard)\n[![Codecov](https://codecov.io/gh/1set/todotxt/branch/master/graph/badge.svg)](https://codecov.io/gh/1set/todotxt)\n\n## Features\n\nBased on [**go-todotxt**](https://github.com/JamesClonk/go-todotxt) from [Fabio Berchtold](https://github.com/JamesClonk) with:\n\n- [x] Go mod support\n- [x] Segments for task string\n- [x] Task due today is not overdue\n- [x] Negative `Due()` for overdue tasks\n- [x] Support multiple options for sorting and filtering\n- [x] More sorting options: by ID, text, context, project\n- [x] Preset filters\n\n## Usage\n\nA quick start example:\n\n```go\nimport (\n\ttodo \"github.com/1set/todotxt\"\n)\n\n// ...\n\nif tasklist, err := todo.LoadFromPath(\"todo.txt\"); err != nil {\n    log.Fatal(err)\n} else {\n    tasks := tasklist.Filter(todo.FilterNotCompleted).Filter(todo.FilterDueToday, todo.FilterHasPriority)\n    _ = tasks.Sort(todo.SortPriorityAsc, todo.SortProjectAsc)\n    for i, t := range tasks {\n        fmt.Println(t.Todo)\n        // oh really?\n        tasks[i].Complete()\n    }\n    if err = tasks.WriteToPath(\"today-todo.txt\"); err != nil {\n        log.Fatal(err)\n    }\n}\n```\n\nFor more examples and details, please check the [Go Doc](https://pkg.go.dev/github.com/1set/todotxt).\n\n## Credits\n\n- Original [**go-todotxt**](https://github.com/JamesClonk/go-todotxt) authored by [Fabio Berchtold](https://github.com/JamesClonk)\n- Cool idea about [**todo.txt**](https://github.com/todotxt/todo.txt) from [Gina Trapani](http://todotxt.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1set%2Ftodotxt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1set%2Ftodotxt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1set%2Ftodotxt/lists"}