A small script to generate bulleted reports from my things 3 tasks
This repository has been archived on 2026-04-05. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Find a file
2024-02-28 09:24:54 +09:00
src BUG FIX: Report relevant notes after a project title when there are notes on a project 2024-02-28 09:24:54 +09:00
.envrc Add envrc 2022-08-23 10:00:22 +09:00
.gitignore Full swing off of python onto rust 2023-07-20 13:35:52 +09:00
Cargo.lock BUG FIX: Report relevant notes after a project title when there are notes on a project 2024-02-28 09:24:54 +09:00
Cargo.toml BUG FIX: Report relevant notes after a project title when there are notes on a project 2024-02-28 09:24:54 +09:00
README.md Update README 2023-07-24 14:44:25 +09:00
shell.nix Full swing off of python onto rust 2023-07-20 13:35:52 +09:00

things-3-report

A small program written in rust that digests my Things tasks into a format for Slack reporting.

Tasks are pulled out of Things using AppleScript over a JavaScript OSA Bridge. Tasks are then filtered and formatted based on the selected format schema.

Basic Task format

A task is returned as a markdown list element containing its title and optionally a list of information parsed from related tag sections in the notes portion of the task.

Tag specific additional bullets are included using a triple backtick (like GitHub code block markdown). Then instead of specifying the coding style as you would (for example typescript) you specify the relevant tag: MyTag. Running the program with a given --tags argument will cause related tag blocks to be included as sub-bullets.

Name Sanitization

Name tags found on projects and tasks are automatically sanitized by replacing vowel characters with lookalikes. This behavior can be disabled with the --no-sanitize argument.

Project Formatting

Projects make up a bullet level above tasks. Any tasks in the project will be nested under the project title following and project specific matched tag block comments in the project notes.

Area Formatting

Areas collect up projects, but instead of indenting them further, Area's are returned as section titles above the generated output. If only one area contains all of the reported tasks, then the area name is omitted entirely.

Cycle Message Formatting

The --mode cycle argument will output slightly different content. All tasks are collected at a project level, and only the project name is given. Cycle messages look back in time at the last 6 weeks and therefore have too many values to meaningfully output at full resolution.