Skip to content

Commit

Permalink
docs: New Reference section, about supported themes (#1577)
Browse files Browse the repository at this point in the history
* test: Extract method verifyMarkdown

* test: Standardise comments in approved files

* test: Approval tests no longer need running twice to update output

This was done by separating the calls to verify() out to separate it() blocks.
I took the opportunity to improve the names of approved files too.
This also removes some repetition in verify() calls.

* docs,vault: Update names and content of snippets

* refactor: Move minimalSupportedStatuses() to its own file

* refactor: Move itsSupportedStatuses() to its own file

* jsdoc: Remove out-of-date todos

* refactor: Simplify imports from src/Config/Themes

* vault: Remove reference to Primary theme

It turns out that it supports fewer custom checkboxes than
AnuPpuccin - and is currently a legacy theme.

* docs: Add per-theme/snippet pages, in new Reference section

* docs: Add sample tasks and screenshot to ITS Theme page

* docs: Add detail to Minimal theme docs

* docs: Note that I'll support more themes in future.

* vault: Reset appearance to 'Default theme; no snippets'

So it is easier to try out different themes and snippets.

* docs: Add detail to SlRvb's Alternate Checkboxes docs

* vault: Correct a filename in renamed file
  • Loading branch information
claremacrae authored Jan 23, 2023
1 parent 8758c34 commit 2ed910d
Show file tree
Hide file tree
Showing 30 changed files with 612 additions and 197 deletions.
93 changes: 9 additions & 84 deletions docs/getting-started/statuses.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Each column shows an example task with the given status type.

The tasks shown are purely examples for context. The `~` column is just an arbitrary example to show `NON_TASK`'s behaviour'. You can assign each of these types to any of your custom statuses.

<!-- placeholder to force blank line before table --> <!-- include: DocsSamplesForStatuses.test.Status_Transitions status-types.approved.md -->
<!-- placeholder to force blank line before included text --> <!-- include: DocsSamplesForStatuses.test.Status_Transitions status-types.approved.md -->

| Operation | TODO | IN_PROGRESS | DONE | CANCELLED | NON_TASK |
| ----- | ----- | ----- | ----- | ----- | ----- |
Expand All @@ -63,7 +63,7 @@ The tasks shown are purely examples for context. The `~` column is just an arbit
| Name for `group by status.type` | 2 TODO | 1 IN_PROGRESS | 3 DONE | 4 CANCELLED | 5 NON_TASK |
| Name for `group by status.name` | Todo | In Progress | Done | Cancelled | My custom status |

<!-- placeholder to force blank line after table --> <!-- endInclude -->
<!-- placeholder to force blank line after included text --> <!-- endInclude -->

{: .warning }
The `group by` results of the above table are subject to change.
Expand All @@ -90,7 +90,7 @@ Tasks supports custom task statuses.

This table shows the statuses provided by default:

<!-- placeholder to force blank line before table --> <!-- include: DocsSamplesForStatuses.test.DefaultStatuses_core-statuses.approved.md -->
<!-- placeholder to force blank line before included text --> <!-- include: DocsSamplesForStatuses.test.DefaultStatuses_core-statuses.approved.md -->

| Status Character | Status Name<br>`status.name includes...`<br>`sort by status.name`<br>`group by status.name` | Next Status Character | Status Type<br>`status.type is...`<br>`sort by status.type`<br>`group by status.type` | Needs Custom Styling |
| ----- | ----- | ----- | ----- | ----- |
Expand All @@ -99,7 +99,7 @@ This table shows the statuses provided by default:
| `x` | Done | `space` | `DONE` | No |
| `-` | Cancelled | `space` | `CANCELLED` | Yes |

<!-- placeholder to force blank line after table --> <!-- endInclude -->
<!-- placeholder to force blank line after included text --> <!-- endInclude -->

### Editing core statuses

Expand All @@ -119,10 +119,11 @@ It will soon be possible to edit these custom statuses, and enable `Todo` -> `In

### First choose your styling scheme

First, decide which CSS Snippet or Theme you wish to use, to style your checkboxes.
You can use any snippet or theme you wish. If you are already using a snippet or theme that supports "custom checkboxes", you should stick with that.

{: .info }
We will later enhance this documentation with a more thorough list of available CSS Snippets and Themes that style task checkboxes.
If, however, you are using the default theme, or a theme that doesn't know style "custom checkboxes", you will need to pick one.

[Status Collections]({{ site.baseurl }}{% link reference/status-collections/index.md %}) has a list of the ones that Tasks already has one-click support for, to help you choose.

### Editing custom statuses

Expand All @@ -133,83 +134,6 @@ Then see [How to set up your custom statuses]({{ site.baseurl }}{% link how-to/s
{: .warning }
Remember to set up your chosen CSS Snippet or Theme before setting up the custom statuses.

### Minimal supported statuses

<!-- placeholder to force blank line before table --> <!-- include: DocsSamplesForStatuses.test.DefaultStatuses_minimal-supported-statuses.approved.md -->

| Status Character | Status Name<br>`status.name includes...`<br>`sort by status.name`<br>`group by status.name` | Next Status Character | Status Type<br>`status.type is...`<br>`sort by status.type`<br>`group by status.type` | Needs Custom Styling |
| ----- | ----- | ----- | ----- | ----- |
| `space` | to-do | `x` | `TODO` | No |
| `/` | incomplete | `x` | `IN_PROGRESS` | Yes |
| `x` | done | `x` | `DONE` | No |
| `-` | canceled | `x` | `CANCELLED` | Yes |
| `>` | forwarded | `x` | `TODO` | Yes |
| `<` | scheduling | `x` | `TODO` | Yes |
| `?` | question | `x` | `TODO` | Yes |
| `!` | important | `x` | `TODO` | Yes |
| `*` | star | `x` | `TODO` | Yes |
| `"` | quote | `x` | `TODO` | Yes |
| `l` | location | `x` | `TODO` | Yes |
| `b` | bookmark | `x` | `TODO` | Yes |
| `i` | information | `x` | `TODO` | Yes |
| `S` | savings | `x` | `TODO` | Yes |
| `I` | idea | `x` | `TODO` | Yes |
| `p` | pros | `x` | `TODO` | Yes |
| `c` | cons | `x` | `TODO` | Yes |
| `f` | fire | `x` | `TODO` | Yes |
| `k` | key | `x` | `TODO` | Yes |
| `w` | win | `x` | `TODO` | Yes |
| `u` | up | `x` | `TODO` | Yes |
| `d` | down | `x` | `TODO` | Yes |

<!-- placeholder to force blank line after table --> <!-- endInclude -->

### ITS Theme supported statuses

<!-- placeholder to force blank line before table --> <!-- include: DocsSamplesForStatuses.test.DefaultStatuses_its-theme-supported-statuses.approved.md -->

| Status Character | Status Name<br>`status.name includes...`<br>`sort by status.name`<br>`group by status.name` | Next Status Character | Status Type<br>`status.type is...`<br>`sort by status.type`<br>`group by status.type` | Needs Custom Styling |
| ----- | ----- | ----- | ----- | ----- |
| `space` | Unchecked | `x` | `TODO` | No |
| `x` | Regular | `x` | `DONE` | No |
| `X` | Checked | `x` | `DONE` | Yes |
| `-` | Dropped | `x` | `CANCELLED` | Yes |
| `>` | Forward | `x` | `TODO` | Yes |
| `D` | Date | `x` | `TODO` | Yes |
| `?` | Question | `x` | `TODO` | Yes |
| `/` | Half Done | `x` | `IN_PROGRESS` | Yes |
| `+` | Add | `x` | `TODO` | Yes |
| `R` | Research | `x` | `TODO` | Yes |
| `!` | Important | `x` | `TODO` | Yes |
| `i` | Idea | `x` | `TODO` | Yes |
| `B` | Brainstorm | `x` | `TODO` | Yes |
| `P` | Pro | `x` | `TODO` | Yes |
| `C` | Con | `x` | `TODO` | Yes |
| `Q` | Quote | `x` | `TODO` | Yes |
| `N` | Note | `x` | `TODO` | Yes |
| `b` | Bookmark | `x` | `TODO` | Yes |
| `I` | Information | `x` | `TODO` | Yes |
| `p` | Paraphrase | `x` | `TODO` | Yes |
| `L` | Location | `x` | `TODO` | Yes |
| `E` | Example | `x` | `TODO` | Yes |
| `A` | Answer | `x` | `TODO` | Yes |
| `r` | Reward | `x` | `TODO` | Yes |
| `c` | Choice | `x` | `TODO` | Yes |
| `d` | Doing | `x` | `TODO` | Yes |
| `T` | Time | `x` | `TODO` | Yes |
| `@` | Character / Person | `x` | `TODO` | Yes |
| `t` | Talk | `x` | `TODO` | Yes |
| `O` | Outline / Plot | `x` | `TODO` | Yes |
| `~` | Conflict | `x` | `TODO` | Yes |
| `W` | World | `x` | `TODO` | Yes |
| `f` | Clue / Find | `x` | `TODO` | Yes |
| `F` | Foreshadow | `x` | `TODO` | Yes |
| `H` | Favorite / Health | `x` | `TODO` | Yes |
| `&` | Symbolism | `x` | `TODO` | Yes |
| `s` | Secret | `x` | `TODO` | Yes |

<!-- placeholder to force blank line after table --> <!-- endInclude -->

## Using Statuses

### Editing your tasks
Expand Down Expand Up @@ -244,6 +168,7 @@ We envisage adding `status.symbol`.

- [How to set up your custom statuses]({{ site.baseurl }}{% link how-to/set-up-custom-statuses.md %}).
- [How to style custom statuses]({{ site.baseurl }}{% link how-to/style-custom-statuses.md %}).
- [Status Collections]({{ site.baseurl }}{% link reference/status-collections/index.md %}).

---

Expand Down
4 changes: 2 additions & 2 deletions docs/how-to/set-up-custom-statuses.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ We also see that each status consists of:

Suppose that you wanted to create a set of 3 statuses that cycle between each other:

<!-- placeholder to force blank line before table --> <!-- include: DocsSamplesForStatuses.test.DefaultStatuses_important-cycle.approved.md -->
<!-- placeholder to force blank line before included text --> <!-- include: DocsSamplesForStatuses.test.DefaultStatuses_important-cycle.approved.md -->

| Status Character | Status Name<br>`status.name includes...`<br>`sort by status.name`<br>`group by status.name` | Next Status Character | Status Type<br>`status.type is...`<br>`sort by status.type`<br>`group by status.type` | Needs Custom Styling |
| ----- | ----- | ----- | ----- | ----- |
| `!` | Important | `D` | `TODO` | Yes |
| `D` | Doing - Important | `X` | `IN_PROGRESS` | Yes |
| `X` | Done - Important | `!` | `DONE` | Yes |

<!-- placeholder to force blank line after table --> <!-- endInclude -->
<!-- placeholder to force blank line after included text --> <!-- endInclude -->

### The Steps

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/theme-its-reading-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/theme-minimal-reading-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions docs/reference/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
layout: default
title: Reference
nav_order: 9
has_children: true
---

# Reference
{: .no_toc }

This section provides reference material - content which is typically too detailed for other parts of the documentation.
60 changes: 60 additions & 0 deletions docs/reference/status-collections/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
layout: default
title: Status Collections
nav_order: 1
parent: Reference
has_children: true
has_toc: true
---

# Status Collections
{: .no_toc }

<details open markdown="block">
<summary>
Table of contents
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>

## Background

{: .released }
Custom statuses were introduced in Tasks X.Y.Z

You can control the behaviour of your tasks (such as what happens when you click on a checkbox), using Tasks' [Custom Statuses]({{ site.baseurl }}{% link getting-started/statuses.md %}) feature.

The theme and snippet authors generally refer to this as 'custom checkboxes'.

Tasks only knows how to display two core statuses, `[space]` and `[x]`.

So before setting up custom statuses, you need to decide which CSS Snippet or Theme to adopt. This section will help with that.

## Your current Theme or CSS Snippet

If you are already happy with a Theme or CSS Snippet that supports custom checkboxes, you can stop reading this section, and move on to configuring Tasks to use it: see [How to set up your custom statuses]({{ site.baseurl }}{% link how-to/set-up-custom-statuses.md %}).

## Selecting a Theme or CSS Snippet

Tasks provides easy one-click set up of all the Themes and CSS Snippets in the 'Table of Contents' below.

## Our recommendation: SlRvb’s Alternate Checkboxes

If you are unsure which to use, we recommend using a CSS Snippet rather than a Theme:

- Themes are very opinionated about lots of aspects of presenting your markdown.
- CSS Snippets can generally be used with a wide variety of Themes, so they keep your options a lot more open.

The very widely used [SlRvb’s Alternate Checkboxes]({{ site.baseurl }}{% link reference/status-collections/slrvb-alternate-checkboxes-snippet.md %}) snippet is excellent, and we recommend starting with that.

However, you can also browse through the pages in this section, to see the other options that Tasks is aware of.

## Coming soon

We plan to add one-click support for these themes in a future release:

- [AnuPpuccin](https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Themes/AnuPpuccin)
- [Aura](https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Themes/Aura)
- [LYT Mode](https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Themes/LYT+Mode)
127 changes: 127 additions & 0 deletions docs/reference/status-collections/its-theme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
layout: default
title: ITS Theme
parent: Status Collections
grand_parent: Reference
has_toc: false
---

# ITS Theme
{: .no_toc }

<details open markdown="block">
<summary>
Table of contents
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>

---

## Introduction

This theme offers the same checkboxes as [SlRvb's Alternate Checkboxes]({{ site.baseurl }}{% link reference/status-collections/slrvb-alternate-checkboxes-snippet.md %}), which works in combination with other themes too, so is more flexible.

| Location | Link |
| ------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GitHub: | <https://github.com/SlRvb/Obsidian--ITS-Theme> |
| Obsidian Hub: | [ITS Theme](https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Themes/ITS+Theme) |
| Test note in Tasks-Demo vault: | [Theme - ITS Theme](https://github.com/obsidian-tasks-group/obsidian-tasks/blob/main/resources/sample_vaults/Tasks-Demo/Styling/Theme%20-%20ITS%20Theme.md) |

## Screenshot

![Sample tasks show in Reading mode, with the ITS Theme](../../../images/theme-its-reading-view.png)

## Supported statuses

<!-- snippet: DocsSamplesForStatuses.test.Theme_ITS Text.approved.txt -->
```txt
- [ ] #task `space` Unchecked
- [x] #task `x` Regular
- [X] #task `X` Checked
- [-] #task `-` Dropped
- [>] #task `>` Forward
- [D] #task `D` Date
- [?] #task `?` Question
- [/] #task `/` Half Done
- [+] #task `+` Add
- [R] #task `R` Research
- [!] #task `!` Important
- [i] #task `i` Idea
- [B] #task `B` Brainstorm
- [P] #task `P` Pro
- [C] #task `C` Con
- [Q] #task `Q` Quote
- [N] #task `N` Note
- [b] #task `b` Bookmark
- [I] #task `I` Information
- [p] #task `p` Paraphrase
- [L] #task `L` Location
- [E] #task `E` Example
- [A] #task `A` Answer
- [r] #task `r` Reward
- [c] #task `c` Choice
- [d] #task `d` Doing
- [T] #task `T` Time
- [@] #task `@` Character / Person
- [t] #task `t` Talk
- [O] #task `O` Outline / Plot
- [~] #task `~` Conflict
- [W] #task `W` World
- [f] #task `f` Clue / Find
- [F] #task `F` Foreshadow
- [H] #task `H` Favorite / Health
- [&] #task `&` Symbolism
- [s] #task `s` Secret
```
<!-- endSnippet -->

## Tasks' one-click addition

Tasks' setting pane has a one-click button to add the following information, representing the custom checkboxes in this plugin.

<!-- placeholder to force blank line before included text --> <!-- include: DocsSamplesForStatuses.test.Theme_ITS Table.approved.md -->

| Status Character | Status Name<br>`status.name includes...`<br>`sort by status.name`<br>`group by status.name` | Next Status Character | Status Type<br>`status.type is...`<br>`sort by status.type`<br>`group by status.type` | Needs Custom Styling |
| ----- | ----- | ----- | ----- | ----- |
| `space` | Unchecked | `x` | `TODO` | No |
| `x` | Regular | `x` | `DONE` | No |
| `X` | Checked | `x` | `DONE` | Yes |
| `-` | Dropped | `x` | `CANCELLED` | Yes |
| `>` | Forward | `x` | `TODO` | Yes |
| `D` | Date | `x` | `TODO` | Yes |
| `?` | Question | `x` | `TODO` | Yes |
| `/` | Half Done | `x` | `IN_PROGRESS` | Yes |
| `+` | Add | `x` | `TODO` | Yes |
| `R` | Research | `x` | `TODO` | Yes |
| `!` | Important | `x` | `TODO` | Yes |
| `i` | Idea | `x` | `TODO` | Yes |
| `B` | Brainstorm | `x` | `TODO` | Yes |
| `P` | Pro | `x` | `TODO` | Yes |
| `C` | Con | `x` | `TODO` | Yes |
| `Q` | Quote | `x` | `TODO` | Yes |
| `N` | Note | `x` | `TODO` | Yes |
| `b` | Bookmark | `x` | `TODO` | Yes |
| `I` | Information | `x` | `TODO` | Yes |
| `p` | Paraphrase | `x` | `TODO` | Yes |
| `L` | Location | `x` | `TODO` | Yes |
| `E` | Example | `x` | `TODO` | Yes |
| `A` | Answer | `x` | `TODO` | Yes |
| `r` | Reward | `x` | `TODO` | Yes |
| `c` | Choice | `x` | `TODO` | Yes |
| `d` | Doing | `x` | `TODO` | Yes |
| `T` | Time | `x` | `TODO` | Yes |
| `@` | Character / Person | `x` | `TODO` | Yes |
| `t` | Talk | `x` | `TODO` | Yes |
| `O` | Outline / Plot | `x` | `TODO` | Yes |
| `~` | Conflict | `x` | `TODO` | Yes |
| `W` | World | `x` | `TODO` | Yes |
| `f` | Clue / Find | `x` | `TODO` | Yes |
| `F` | Foreshadow | `x` | `TODO` | Yes |
| `H` | Favorite / Health | `x` | `TODO` | Yes |
| `&` | Symbolism | `x` | `TODO` | Yes |
| `s` | Secret | `x` | `TODO` | Yes |

<!-- placeholder to force blank line after included text --> <!-- endInclude -->
Loading

0 comments on commit 2ed910d

Please sign in to comment.