Custom Todos: Difference between revisions

Samh (talk | contribs)
No edit summary
Samh (talk | contribs)
m Samh moved page Todos to Custom Todos
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Shortcuts ==
{{Infobox Feature
| name = Custom Todos
| version = [[Release 3.5.0|3.5.0]]
| tier = Standard, Premium and Enterprise
}}


# TODO Task Label Prefixes & Variables
[[File:Screenshot 2026-06-17 at 14.57.14.png|thumb|Example: Input - ECH custom Todo]]
[[File:App-custom-todo.png|thumb|Example: Output - App custom Todo]]


TODO task labels support special prefixes and variables that control how tasks are rendered in the UI.
= Custom Todos =


## Prefixes
Todo task labels support special prefixes and variables that control how tasks are rendered in the UI.


Prefixes are detected by examining the **first character** of the label after trimming leading whitespace.
== Prefixes ==


### `.` (Dot) – Inline/Child Tasks
Prefixes are detected by examining the '''first character''' of the label after trimming leading whitespace.


Prefix a task label with `.` to make it an **inline child** of the preceding non-dot task. Child tasks are displayed in a grid row alongside their parent, creating a compact horizontal layout.
=== ''.'' (Dot) – Inline/Child Tasks ===


**Behaviour:**
Prefix a task label with <code>.</code> to make it an '''inline child''' of the preceding non-dot task. Child tasks are displayed in a grid row alongside their parent, creating a compact horizontal layout.
- The `.` prefix is stripped from the displayed label
- The task is grouped with the previous non-dot task as a child
- Displayed in a shared grid row (parent + children side by side)
- Checkbox is still shown (can be checked/unchecked)
- If a dot-prefixed task appears without a preceding parent, it is treated as a regular individual task


**Example:**
'''Behaviour:'''
```
 
* The <code>.</code> prefix is stripped from the displayed label
* The task is grouped with the previous non-dot task as a child
* Displayed in a shared grid row (parent + children side by side)
* Checkbox is still shown (can be checked/unchecked)
* If a dot-prefixed task appears without a preceding parent, it is treated as a regular individual task
 
'''Example:'''
 
<syntaxhighlight>
Monday Breakfast
Monday Breakfast
.Lunch
.Lunch
.Dinner
.Dinner
```
</syntaxhighlight>
Renders as a single row: `[☐ Monday Breakfast] [☐ Lunch] [☐ Dinner]`
 
=== <code>|</code> (Pipe) – Label-Only (No Checkbox) ===
 
Prefix a task label with <code>|</code> to render it as '''plain text without a checkbox'''. Useful for section headers, notes, or informational text within a todo list.


### `|` (Pipe) – Label-Only (No Checkbox)
'''Behaviour:'''


Prefix a task label with `|` to render it as **plain text without a checkbox**. Useful for section headers, notes, or informational text within a todo list.
* The <code>|</code> prefix is stripped from the displayed label
* No checkbox is rendered
* The item does not count toward the completed/total counter


**Behaviour:**
'''Example:'''
- The `|` prefix is stripped from the displayed label
- No checkbox is rendered
- The item does not count toward the completed/total counter


**Example:**
<syntaxhighlight>
```
|Important Notes
|Important Notes
Attend all morning sessions
Attend all morning sessions
|Evening Activities
|Evening Activities
```
</syntaxhighlight>
Renders as:
```
Important Notes          (plain text, no checkbox)
[☐ Attend all morning sessions]


Evening Activities      (plain text, no checkbox)
== Date Variables ==
```


## Date Variables
Task labels support the <code><nowiki>{{EventDate}}</nowiki></code> variable, which is replaced with the event's start date displayed as day and month numbers (e.g., ''16/06'').


Task labels support the `{{EventDate}}` variable, which is replaced with the event's start date displayed as day and month numbers (e.g., `16/06`).
=== Basic Usage ===


### Basic Usage
{| class="wikitable"
! Variable
! Replaced With
|-
| <code><nowiki>{{EventDate}}</nowiki></code>
| Event start date (e.g., ''16/06'')
|}


| Variable | Replaced With |
=== Offsets ===
|---|---|
| `{{EventDate}}` | Event start date (e.g., `16/06`) |


### Offsets
You can add or subtract days from the event date using <code>+</code> or <code>-</code>:


You can add or subtract days from the event date using `+` or `-`:
{| class="wikitable"
! Variable
! Replaced With
|-
| <code><nowiki>{{EventDate+1}}</nowiki></code>
| Event start date + 1 day
|-
| <code><nowiki>{{EventDate-1}}</nowiki></code>
| Event start date − 1 day
|-
| <code><nowiki>{{EventDate+3}}</nowiki></code>
| Event start date + 3 days
|-
| <code><nowiki>{{EventDate-2}}</nowiki></code>
| Event start date − 2 days
|}


| Variable | Replaced With |
Whitespace inside the braces is tolerated:
|---|---|
| `{{EventDate+1}}` | Event start date + 1 day |
| `{{EventDate-1}}` | Event start date − 1 day |
| `{{EventDate+3}}` | Event start date + 3 days |
| `{{EventDate-2}}` | Event start date − 2 days |


Whitespace inside the braces is tolerated:
* <code><nowiki>{{ EventDate + 1 }}</nowiki></code> → same as <code><nowiki>{{EventDate+1}}</nowiki></code>
* <code><nowiki>{{EventDate- 2}}</nowiki></code> → same as <code><nowiki>{{EventDate-2}}</nowiki></code>


- `{{ EventDate + 1 }}` → same as `{{EventDate+1}}`
Unknown variables (anything other than ''EventDate'') are left as-is.
- `{{EventDate- 2}}` → same as `{{EventDate-2}}`


Unknown variables (anything other than `EventDate`) are left as-is.
'''Example:'''


**Example:**
<syntaxhighlight>
```
{{EventDate}} Check-in at hotel
{{EventDate}} Check-in at hotel
{{EventDate+1}} Follow-up meeting
{{EventDate+1}} Follow-up meeting
```
</syntaxhighlight>
Renders as: `16/06 Check-in at hotel`, `17/06 Follow-up meeting` (assuming event starts June 16)


## Combining Prefixes and Variables
== Combining Prefixes and Variables ==


Prefixes and date variables can be used together:
Prefixes and date variables can be used together:


```
<syntaxhighlight>
|Schedule for {{EventDate}}
|Schedule for {{EventDate}}
Morning briefing
Morning briefing
. Afternoon workshop
. Afternoon workshop
. Evening networking
. Evening networking
```
</syntaxhighlight>
 
---