Paragraph+List Block Range Transclusions

Use case or problem

I use Obsidian over outliner tools like LogSeq mainly because (in addition to other reasons like community plugins and vim) I find writing prose more natural over the endless bullet points of outliners. I also love Obsidian’s ability to link to a specific note’s heading (and heading content if embedded/transcluded), paragraph (‘block’), or list item / bullet point (and any sub-items if embedded/transcluded).

However, lists still have their place in prose. I frequently start a new paragraph as a sort of preamble to describe part of an upcoming list, then add a single newline and write the list itself. This is preferable to me because: ^qgjsz0

  • The preamble portion flows nicely with the rest of my prose and is easily copyable into emails/Github/Slack/etc.
  • Lists items are easier for me to read/process than prose when each item forms a cohesive and distinct thought in a similar category to other items
  • I can add sub-items to give extra details ^vx5xj4
    • As long as they are succinct

The paragraph/list above is an example of this, but I run into a problem when embedding links to blocks (![[note#^abcdef]]) this way. When only one newline separates a paragraph from a list, they are rendered close together in Live Preview (different than in this forum) and I consider them to be one collective idea (i.e., the paragraph preamble to the list is like the top-level ‘list’ item at 0 indent with all list items as subitems at 1 indent). But in the way Obsidian currently handles block link embeds, the paragraph and the list are always treated as separate blocks, so it is impossible to have a single link embed to the paragraph and render any following list items as well.

Proposed solution

I can embed the above bullet “I can add sub-items to give extra details” with ![[#^vx5xj4]], and in this case it correctly includes sub-item “As long as they are succinct”. I’d like to find a way to do this with the preamble paragraph text as well so that ![[#^qgjsz0]] displays the preamble and list. The only option I know of to do this is make the preamble an actual list item and indent the actual list to be under it, which is ugly, difficult to export, and doesn’t fit in with the remaining prose as it is essentially outlining. I could also just not have preambles for lists, but would prefer them for reasons listed above.

I’m curious if there’s a way around this / alternative solution, if others share the same interest for it to be an FR, and what problems I might be missing. For example, I prefer double-newlines between my paragraphs for readability, but maybe others don’t.

A workaround is plugin Quoth but as cool as it is, it might be too fragile for my needs. However, talking with the developer there gave me the idea of this transclusion syntax, which might solve not only this problem but allow arbitrary ranges of transclusion:

![[note#^beginning_^end]].

Any ‘blocks’ between ^beginning and ^end could be transcluded, or highlighted when clicking a regular link. I use _ because Block identifiers can only consist of letters, numbers, and dashes so there would not be conflicts.

4 Likes

Here’s another similar request: Transclude Range of Blocks.

Perhaps another workaround would be to use a heading to contain the preamble and list so that they can be embedded elsewhere. Of course this requires there be another heading immediately after the list. Here’s a related request: Header level support for Linking To/Embedding Ranges.

1 Like