Add an option to link blocks from other pages (also with transclusion)

Is your feature request related to a problem? Please describe.

I was writing a page in Anytype that was deeply nested inside other pages and couldn’t be accessed easily other than searching for it by name. I was finishing up my work and wanted to create tasks for tomorrow when I realized that in order to find those tasks, I would need to search for the page and then locate the task. There wasn’t an easier option to locate those tasks on the main page (from the dashboard). The only option there was, was to create a task on the main page and link the page I was working on in order to continue my work. Then I realized that a feature I would really like is the option to link blocks.

Describe the solution you’d like

There should exist a possibility to link blocks (text, highlights, title, code…). This would allow the user to refer to the block he/she was writing in another page and use the link to simply lead the reader to the block in the original page. The link should lead precisely to the block it refers to. This solves the problem or having to copy things multiple times when having to reuse the block that already exists. The option to link the block should not turn the block into some special object type like a page and change it’s design but leave it as it is in the page.

58 Likes

@danijelcamdzic Oh, interesting, so this brings up a couple of things.

Your actual original use case is something that should be addressed more specifically by new object types and relations, coming in the database system. But AFAIK it won’t be a general system for “block linking”.

Then there is the question of whether you want the actual content of the block to be included on any page you link to it from (“transclusion”), or just a link to the block. And then what does that link look like? Is it just arbitrary text that you enter? (since blocks do not have “name/title”) Or an excerpt from the block text?

This also makes me think of the more common “anchor links”, which often work in other systems with e.g. Headers. Extending that to simply work with blocks and block IDs would be great.

Overall it probably makes sense to keep this feature request specific to a particular approach, e.g. “link block with arbitrary text” or “transclude/sync block contents into other pages”, and it would be good to have clarity as to which you were intending and which other people want. But there are certainly other block-level link and reference functions to consider. Roam Research has some good examples of possibly beneficial options.

3 Likes

@Oshyan Thank you for the response. Well I don’t imagine that copying the content of the block when linking would be very useful for me unless the contents update when the original block changes. If it can update then this would be the most desirable solution if you ask me. But anchor links should also be included as an option, since we can then link to page sections, headers etc. and use the first option to actually display specific blocks.

3 Likes

@danijelcamdzic Yeah, so “synced blocks” in Notion or Block References (and Emebds) in Roam are exactly what you describe as being the “most desirable solution”:

In Notion:

https://twitter.com/NotionHQ/status/1409850632270344192

In Roam, there are more options:

https://roamstack.com/kb/starter/6-block-references/

https://youtu.be/5jC9uwcbKqk

3 Likes

Actually it would better to have an option to do both - support embedding as well as hyperlinking to the page (similar to backlinks in Obsidian).

11 Likes

@danijelcamdzic

+1 for linking and transclusion of blocks.

Suggested/desired features:

  • Basic linking to a block: select some text, CTRL+K, search and select desired block. Selected text becomes link to said block.
  • Block Transclusion: in a new block, type a shortcut (/transclude or /include maybe?), search and select desired block. A transclusion is added (styled in a way that shows it’s a “portal” to the original block). Ideally that can be edited as well, which reflects on the original (unless user locks it to read only). It should also be a link to original block (except where the original content has links).
  • Inline Block Transclusion: ideally working exactly the same as above, but inline within an existing Block. Particularly useful for quoting short blocks.

By the way, when I say “search and select desired block”, I imagine this happening using the CTRL+K shortcut. That could be the main shortcut for linking anything, not just URL. Typing would filter through everything - Blocks, Objects, Relations, Sets etc. Of course depending on the type of object that is selected there might be limitations regarding how/what to display.

Edit: @Oshyan (or any other poweruser :slight_smile: ) do you suggest me doing a new feature request for this?

10 Likes

I think your request regarding the “universal link” shortcut would justify its own feature request, yes. This topic here is more about block link/embed than the actual linking process/UI/UX.

1 Like

+1 for both transclusion and hypher-linking a block.

My page became too long and so i thought of adding a Table of Contents to the top of the page linking to each subheadings in the same page which is not possible yet without block hypherlinking

7 Likes

Could the OP be edited to reflect the discussion, especially including the word “transclusion” in the title?

If not no problem, I can create a new request and include a link to this. Just thought using this thread would be cleaner!

2 Likes

It’s a good idea. I fully support and look forward to it

2 Likes

There should definitely be a contents block as well for this kind of thing that automatically builds a contents from header type blocks

2 Likes

This feature alone, if implemented, would make me switch to AnyType as my main PKM tool.

2 Likes

Notion does it now and it’s such a great feature for long form notes
image

Hello everyone :nerd_face: The topic gets really complicated. Help me with different feature requests please.

  1. Transclusion aka link to existing block is on the roadmap but will be implemented after public release
  2. Ability to add a link to current object to another pages from object settings will be introduced in the next two releases
  3. Block table of contents already exist in the app
2 Likes

Transclusion is significantly different from a link.
It’s when actual content from other pages are included elsewhere.
Ideally, that should act also as a portal to edit the source content.

Transclusion - MediaWiki.

I created a FR for this as requested, here

2 Likes

I was unclear with the naming but is exactly what I was thinking about. It is on the roadmap but will be implemented after public release.

2 Likes

Thanks @ignatovv !

How did I miss this?! Thanks

2 Likes