Skip to main content

Obsidian block ID blocked by task ID

I would like to see you improve the task ID adding logic for the Obsidian integration, so that IDs are added before block IDs. As is, the IDs are added at the end of the line, after the block ID, which makes Obsidian not recognize the block ID anymore - thus breaking any link to this block.

5 comments

Log in to comment and vote

Comments5

  • Ingmar

    •

    Feb 27, 2025

    Here's my own script that I use to programmatically toggle task statuses and change the scheduled date. It manages to insert scehduled dates before block IDs, so perhaps it will be useful to you in implementing a solution to this issue:

    https://gist.github.com/FeralFlora/405404e2cfa1fc75053a2b2674b4de42

    See the "schedule" case.

  • Ingmar

    •

    Feb 27, 2025

    You can find tasks broken by misplaced task IDs using this query (from claremacrae, here):

    # Find tasks with un-parsed signifiers - fix by moving fields after description(description includes ⏫) OR (description includes 🔼) OR (description includes 🔽) OR (description includes 📅) OR (description includes ⏳) OR (description includes 🛫) OR (description includes ✅) OR (description includes ➕) OR (description includes 🔁)group by path
  • Ingmar

    •

    Feb 27, 2025

    Danny Hatcher (Customer Support) I've noticed that this behavior also breaks the date and metadata parsing of the Tasks plugin.

    See: https://publish.obsidian.md/tasks/Getting+Started/Getting+Started#Order+of+metadata%2Femojis

    Text (other than block IDs and tags) is not supposed to be present after metadata, as this breaks the parsing. From the page above:

    This means that you can only put block links (^link-name) and tags after metadata such as dates, priorities, recurrence rules. Anything else will break the parsing of dates, priorities and recurrence rules.

    When Morgen adds a task ID after an existing block link / ID, the block ID becomes regular text, breaking the parsing of all metadata associated with the task.

    I hope this additional detail will make Morgen prioritize a fix for this issue.


    You can reproduce this problem like so:

    1. Create a test file with the following content:
    • [ ] Test task ⏳ 2025-02-27 #test ^test
    not donepath includes {{query.file.path}}tags include #testgroup by scheduled
    1. Then add an ID to the task like so:

    - [ ] Test task ⏳ 2025-02-27 #test ^test 🆔 urxl2q

    1. See how the data parsing fails and the task is not grouped anymore

    See my screenshots below where I demonstrate this.

  • Ingmar

    •

    Dec 3, 2024

    As you can see here, Morgen is adding the Tasks plugin task ID after the native Obsidian block ID, thereby breaking the native block ID and any links to this block (see screenshots).

    Furthermore, this makes the Tasks plugin unable to parse the dates associated with the task. All in all, this is a serious bug that I hope you'll prioritize a fix for.

    Morgen tasks needs to add the task IDs before native block IDs, if present, like so:

    - [ ] A task ⏳ 2024-12-02 🆔 v0sApA #todo/next-action ^kickoff

  • Danny Hatcher (Customer Support) changed status to In Review
    •

    Oct 24, 2024