Commit Graph

669 Commits

Author SHA1 Message Date
Daniel - f3186b45f7
Allow limiting number of parent ascents when listing backlinks
Sometimes only the backlinks to the items itself might be interesting, or
backlinks to the current item and its direct parent.  To allow for easy
insertion of dynamic backlink blocks in those cases as well, include a
:parent-depth parameter.  The default value of nil means no limit is imposed, as
has been the case until now.
2022-06-20 18:01:11 +02:00
Daniel - e2181fa87a
Add helper function to replace variables in strings
Only a thin but hopefully helpful wrapper around `replace-regexp-in-string`.
2022-06-13 21:15:49 +02:00
Daniel - 1ac4e44f86
Silence some flycheck warnings 2022-06-13 21:06:44 +02:00
Daniel - 731039e84f
Add missing semicolon
Consistency above all!
2022-06-13 21:06:30 +02:00
Daniel - cff8720a44
Exclude NOTE entries in main org file as refile targets
The idea is that those entries represent project notes which should not get
tasks refiled as sub-items (sub-headings to structure these notes are fine,
though, and must be added directly).  To connect tasks with project notes, use
links and backlinks instead.

This helps to prevent accidental refiling of tasks under notes and loosing them
there.  A drawback is that `C-u org-refile` won't list notes as visiting targets
anymore; for this, use imenu instead.
2022-06-11 21:17:57 +02:00
Daniel - 7e2860a9d9
Try to increase readability of db/org-backlinks implementation
Mostly making use of pcase-*, but I am not quite sure whether the `(,foo . ,bar)
syntax really helps …

Also adjusted some comments and some formatting.
2022-06-11 09:25:25 +02:00
Daniel - b03a8f9517
Visually separate different groups of priorities in backlinks dblock
Use an hline for this, should increase readability.
2022-06-11 09:10:17 +02:00
Daniel - 10e01d4b3b
Transpose output of backlink dynamic block to emphasize backlinks
We are interested in the backlinks so we now put them first.  The backlink
targets (i.e., current item or any of its parents) are now grouped after the
priority of the item containing the backlink.
2022-06-10 18:46:22 +02:00
Daniel - b84eb291e3
Use org-ql regexp search to find backlins
This is because org-ql link queries seem to be broken when target links contain
brackets in their description.
2022-06-09 21:27:35 +02:00
Daniel - de314f6ac2
Refactor org link formatting functions to avoid duplicate code 2022-05-20 19:34:56 +02:00
Daniel - 2c01e1e09c
Do not format links directly in backlink dynamic block
They will show as links in links and will thus be mostly incomprehensible.
2022-05-20 19:22:57 +02:00
Daniel - c572451c14
Do not output headlines without backlinks in dynamic blocks 2022-05-20 19:09:39 +02:00
Daniel - 3dcbf3e800
Add deprecation marker to custom project package 2022-05-15 17:50:15 +02:00
Daniel - 05a126bfed
Introduce dynamic block to show backlinks of Org item at point
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.
2022-05-14 11:43:08 +02:00
Daniel - a36671dc61
Fix minor indentation glitch 2022-05-08 17:04:45 +02:00
Daniel - 9184756c07
Refactor function to return backlinks to item at point
Extract function to return actual list of backlinks, to later use it for
extracting backlinks of item at point and all its parents.
2022-05-05 22:08:02 +02:00
Daniel - 1b3acb5c20
Remove custom function to play radio stations
This is done via helm-emms nowadays.
2022-04-29 09:39:57 +02:00
Daniel - 8101a29d7a
Change default shortcut for "r" from scratch to refile
I am nowadays keeping my notes in the refile file, and not in the scratch
buffer.  Change the keybinding to reflect that.
2022-04-29 09:04:30 +02:00
Daniel - 92e30c7d47
Allow exclusion of individual track from favorite playlist
Filter for the tag `exclude-favorite-playlist` for this.
2022-04-23 18:57:39 +02:00
Daniel - 8f18c159d0
Code cosmetics
And not using `nconc`, as I am not quite sure whether it would also affect
`org-agenda-text-search-extra-files`.
2022-04-16 10:19:28 +02:00
Daniel - 341dec6a6a
Simplify code searching for backlinks
Reduce the conditional parts and extract common code.
2022-04-16 10:13:00 +02:00
Daniel - b670ee57f6
Only search Org buffers when querying for backlinks
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.
2022-04-16 10:08:11 +02:00
Daniel - 1d5f318b5b
Add function to return list of Org items linking to item at point
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.
2022-04-16 09:58:46 +02:00
Daniel - fdc32eaa6d
Clear refile cache when updating the headline of an org mode item 2022-04-02 08:56:18 +02:00
Daniel - 367c8969fc
Make going back and forth in timeline buffers more robust
Do not treat the headline as a valid line.
2022-03-31 14:22:52 +02:00
Daniel - 3c7ea1b987
Simplify extraction of timeline entries from timeline buffer 2022-03-31 13:35:12 +02:00
Daniel - e5818fdb8c
Remove 'marker text property in timelines
The marker is contained in the entry anyway, so let's use that.
2022-03-31 13:07:21 +02:00
Daniel - b80f05d49f
Add first version to move around rows in timelines 2022-03-31 13:05:09 +02:00
Daniel - 9f0a890b1c
Perform code cosmetics in timeline tools 2022-03-31 13:04:55 +02:00
Daniel - 8068107326
Stop before headline when going to previous timeline line 2022-03-31 12:41:39 +02:00
Daniel - 4428db4f82
Apply minor cosmetics 2022-03-30 08:44:15 +02:00
Daniel - cfc11ec807
Keep Org links after insertion by default
When inserting links multiple times, it's annoying to have to go back to the
original place the link points to and reinsert it into the stored link list.
Using a universal argument to toggle `org-link-keep-stored-after-insertion` is
also not an option, as I keep forgetting to use it.

Instead, by default keep all links after insertion.  To be able to handle the
growing list of links, we now provide a function `db/org-clear-stored-links` to
set the list of stored links to the empty list.
2022-03-30 08:42:06 +02:00
Daniel - 0db003d442
Try fixing adding note in headline update function
Let's not try to use the Org mode functions to add notes, but instead do it
directly manually.  I hope this works better now …
2022-03-24 20:16:50 +01:00
Daniel - 9d7e88df0e
Ensure functioning of Org Clock hydra even if no task is clocked
It happens sometimes that the clock is not active, in which case hydra tried to
replace strings in `org-clock-current-task`, then a nil value.  Fixed this.
2022-02-26 10:16:13 +01:00
Daniel - 83421c072a
Remove trailing whitespace after HTML rendering a file
Those whitespaces are neither necessary nor helpful.
2022-02-06 20:57:36 +01:00
Daniel - efb7500202
Add original value as default when changing Org item headlines
This allows to make simple changes to the original headline of an item.
2022-01-08 15:42:40 +01:00
Daniel - d23a8dc817
Fix adding notes when updating headlines
I think I just did it wrong, so let's try adding a note by calling
`org-add-note` directly.  So far it's working better, but I am not quite sure
whether I really did it right this time.  In any way, `org-add-note` keeps track
of all the bookkeeping for taking notes, so my code is simpler now :)
2022-01-08 09:11:02 +01:00
Daniel - 407f5d70f2
Add newlines when inserting templates
I find myself inserting these newlines whenever I insert a template, so let's
let them insert them automatically.
2022-01-02 09:31:29 +01:00
Daniel - 5bc7c70882
Add function to copy template of Org Mode item to location at point
This is a convenience function and has been bound to a shortcut for easier
usage.  This function is supposed to be the standard way to copy templates.
2021-12-15 09:43:50 +01:00
Daniel - 80eeca1e44
Add simple function to find template via special property
This allows both a more fine-grained and more flexible control over where
templates can be located and which templates are suppoed to be used for the item
at point.  This function could also be bound to a custom key binding to make it
easier to invoke.
2021-12-13 21:32:05 +01:00
Daniel - eafebe1cb9
Add simple function to directly render html from a file
This is simpler than opening the file in a buffer and calling shr-render-buffer,
with some buffer maneuvring afterwards.
2021-12-13 21:17:45 +01:00
Daniel - cedaae00e8
Make template copy function more robust
Instead of going upward from the end, we now just start from the beginning and
skip all drawers we may encounter.  This should also allow to copy subtrees in
templates, although adjustments to the headline indentations might be necessary
if the template and point are on different levels.
2021-12-13 21:17:18 +01:00
Daniel - 159c8c0eb6
First check for major mode when update Org item headline 2021-11-29 17:39:33 +01:00
Daniel - 5c36dba12c
Make function to update Org item headlines also work in agenda 2021-11-29 17:39:27 +01:00
Daniel - 25a7051c12
Add function to update headline of Org mode item and log note
This allows changing the headline of an item if it's scope changes and record
this change in a note.
2021-11-29 17:16:25 +01:00
Daniel - 6064f0e4b3
Add more test cases for base45 decoder 2021-11-07 10:04:16 +01:00
Daniel - b072e32988
Add more test cases for base45 decoder function 2021-11-07 09:10:09 +01:00
Daniel - 24bb768e3d
Simplify character conversion in base45-decode-string
This actually renders the separate translation function obsolete, it has been
inlined now.
2021-11-07 08:56:06 +01:00
Daniel - f1c3af9ea7
Add some regression tests for base45 decoder 2021-11-07 08:41:00 +01:00
Daniel - f52f48273a
Allow input of base45 decoder to also contain lower-case letters 2021-11-07 08:40:30 +01:00