18 Commits

Author SHA1 Message Date
5e5999676d feat: add --indent flag to control line indentation in remind output
- Introduces an 'indent' integer flag to the CLI for specifying the
  number of spaces to indent lines in the remind output.
- Updates Task.ToRemind to accept an indent parameter and apply heading
  spaces accordingly.
- Adjusts main.go to pass the indent value from the flag to ToRemind.
v4
2026-01-15 00:13:24 +01:00
1099f4ab97 Revert "fix(parser): exclude "url" metadata from Remind output (since version 06.02.02 of remind)"
This reverts commit ec9df87d68.
2026-01-14 23:30:45 +01:00
ec9df87d68 fix(parser): exclude "url" metadata from Remind output (since version 06.02.02 of remind)
Previously, only "due" metadata was excluded when generating Remind
output. This change also skips "url" metadata, preventing it from
appearing in the Remind string.

Version 06.02.02 of remind supports "url" metadata.
2026-01-11 21:54:39 +01:00
e2d27367fe Remove version suffix from module path v3 2025-12-17 00:34:55 +01:00
f332c1708a feat!: migrate module to v3
- Update module path to v3 in go.mod and imports
- BREAKING CHANGE: consumers must update import paths to use v3
2025-12-17 00:20:43 +01:00
daffdf4441 feat(parser): support multiple values per metadata key in Task
BREAKING CHANGE: The Task struct's Metadata field now maps to slices of
strings (map[string][]string) instead of single strings. This allows
tasks to have multiple values for the same metadata key. All code
interacting with Metadata must be updated to handle slices. Version
bumped to v3.0.0.
2025-12-17 00:16:16 +01:00
bfb1bb3433 chore: update version to v2.0.0 in main.go
To make `go install` happy :-|
2025-11-26 16:39:10 +01:00
676ef83e50 chore: bump version to v2 in main.go 2025-11-26 16:24:55 +01:00
adbc2cf364 fix(parser): improve priority calculation accuracy using math.Round
Refactored PriorityAsRemind to use floating point division and rounding
for more precise priority mapping.
2025-11-26 16:24:28 +01:00
32cb827d26 docs: add README and LICENSE files 2025-11-25 17:35:19 +01:00
6022248a2f feat: add cobra CLI with input/output flags and debug option
- Add --input/-i and --output/-o flags for file selection
- Add --debug flag to print intermediate JSON to stderr
- Print errors during parsing
2025-11-25 17:28:49 +01:00
389c1c3d25 feat(parser): add ToRemind method to Task for Remind-compatible string output
Implements Task.ToRemind(), which generates a Remind-formatted string
including due date, metadata, projects, contexts, completion status, and
priority.
2025-11-25 17:15:28 +01:00
4b44c012e6 fix(parser): exclude @todo from contexts and support quoted location metadata
- Prevents '@todo' from being added to task contexts.
- Adds parsing for location metadata with quoted values, allowing
  spaces.
2025-11-25 17:14:48 +01:00
5ef3057d98 refactor(parser): simplify ParseLine logic for completed, priority, and date parsing
- Refactor ParseLine to use token-based parsing for completed status,
  priority, and dates.
- Improve handling of priority and creation date for both completed and
  incomplete tasks.
2025-11-25 00:41:36 +01:00
57ac41ff72 fix(parser): correct priority calculation for 'Z' to return 0
Previously, the priority calculation did not handle 'Z' correctly,
resulting in a non-zero value. Now, 'Z' returns 0 as intended, and the
step size is calculated for a linear scale.
2025-11-25 00:40:16 +01:00
20e327d9dd refactor(parser): translate comments from Italian to English 2025-11-24 23:40:31 +01:00
76f33f281c chore(docs): move SPECS.md and description.svg to docs/ directory 2025-11-24 23:34:57 +01:00
9cfc9abc93 feat: initial parser for todo.txt format with spec and test cases
- Add parser for todo.txt tasks supporting priority, dates, projects,
  contexts, and key:value metadata
- Include full todo.txt format specification (SPECS.md) and visual
  description (description.svg)
- Add sample test.todo.txt file with valid, borderline, and malformed
  cases
- Initialize Go module and main entrypoint for parsing and JSON output
- Add .gitignore for binary artifacts
2025-11-24 23:30:45 +01:00