Actually, the name “project” is too ambigious here, which is why I have replaced
it at some points with the more concrete word “task”. This is to mean that
tasks are items that work towards a particular, tangible goal but consist of
multiple steps to reach it. Project notes, then, capture the state of more
complex tasks with varying or multiple goals all interconnected in a specify
realm. Project notes are used for planning tasks and for capturing the current
state of affairs.
Topics, on the most abstract level, comprise areas of responsibility or activity
where not at every point in time there's something conrete to be done, but
periodic review is in order.
Related to PARA parlance (https://fortelabs.co/blog/para/), the mapping may not
be completely clear, as projects (in the sense of PARA) relate to both tasks and
project notes. Indeed, it could be the case that a project is small enough to
only have a associated task and no project notes (e.g., if everything is clear
and it's just „doing“), or a project (again in the sense of PARA) relate only to
some project notes (in my sense), e.g., when it's not yet clear or not yet
planned what needs to be done concretely or when even the goal(s) are not set
yet.
However, as far as I currently understand, the other items in the PARA
methodology map quite nicely to my terminology:
- Area of Responsibility ↔ Topics
- Resources ↔ Project Notes (or any other notes like my zettelkasten)
- Archive ↔ Archive (surprise!)
Maybe I should split my notes into two categories: project notes proper and
general notes containing information about not-necessarily-project-related
topics?
When appoints have been started but are then postponed to the future, I do not
want to see them on the WIP list. I could schedule them for the new date in
addition, but this would count the associated effort twice in the agenda view.
So let's just ignore timestamps in the future, they will show up when they are
due anyway.
This dynamic block will list all items (including their priority) that link to
the item at point or to any of its parent items. The use case for this is to
have a series of periodic appointments where certain topics should be
discussed (“jour fixe”), and where those topics can be referenced in those
appointments via backlinks. However, simple backlinks to an item on a fixed
date is not sufficient here, as there might not be enough time on that day to
discuss all items. To avoid having to manipulate all backlinks that could not
be discussed, one could simply add a reference to the parent item of all
appointments of the jour fixe series. Using the new dynamic block introduced
here, this item will be on the list of open topics until it's closed.
Somehow, using lispy in the minibuffer causes random indentations although
everythin is on the same line. This might not be an issue with lispy itself,
disabling it however makes the symptom go away. Since I am not using lispy
features in the minibuffer anyway, I can as well switch it off.
There's a new mode map `eshell-hist-mode-map` which already contains a binding
for `M-r`, so we have to redefine that key binding there to make it work.
It does not make sense to look in non-Org buffers for backlinks of items, but
this was indeed what happend until now: the function `db/org-get-location` only
checked whether the current buffer is associated with a file, and if so uses it
for querying the user for an item to select. This does not make sense, as
`db/org-get-location` is supposed to return a mark to an Org item.
This is now fixed by `db/org-get-location` to also check whether the current
buffer is also an Org buffer. It's as simple as that.
This function is not meant for interactive use, but instead should be used in
source blocks such as
```
(db/org-backlinks-to-item-at-point)
```
This will add a table of all items linking to the current item at point, and cut
be used in item templates, for example.
Background: I tried to achive this functionality with `org-ql` directly, but
somehow failed. This function simply encapsulates the corresponding call to
`org-ql-query`, adding the ID property of item at point automatically.