Future-proof block references in Logseq

I’ve recently moved my notes from Roam Research to Logseq. This has been quite a hassle, because as any note-taking app like these makes up it’s own way to enhance native markdown text format. For example to accommodate block references. Unfortunately, I’ve lost all of those in the process of moving, which can be painful if you heavily rely on them for providing context in your notes. Thankfully, I haven’t. However, I’d like to make sure next time I’m not to lose my data, at least for crucial pages.

I’ve come up with a simple workaround, which kinda sucks, but still useful in some cases. Let’s see.

Issue

If you open any Logseq page in a usual text editor, you’ll see that block references look like this:

	((64e30f89-f1de-492f-8800-c00a5ef74b00))

Which doesn’t make any sense outside of Logseq.

Solution

For crucial blocks of text, I do copy/pasting and then add a block link to the original block. To do this I copy block URL instead of block ref in the bullet context menu:

Then I use Logseq link notation to add URL at the end of the block:

[link anchor](link URL)

In the text editor it looks like this:

Crucial text copied from the original location [*](logseq://graph/Vault111111?block-id=64e30f89-f1de-492f-8800-c00a5ef74b00)

Now I can still access original block location to get the context but I’m also having the block intact in case some nuisance happen with Logseq app and I can’t access it.

Drawback

You won’t have block reference marked in the original location. In case you need it, you’ll have to add a corresponding link there.

Better solution

From the r/logseq commnunity:

when you copy a block id, logseq will automatically update the file to include that block’s id as a hidden property, so, even if you aren’t using logseq any more, and you come across a block ref, all you need to do is a global search on your graph for where that id was defined. Apps like VS Code can do this fairly easily.

You can open you Logseq Vault in VS Code with File > Open Folder command. Then you can search the whole vault (CMD+Shift+F) for the block ref you see on the page. It will look through all of your notes and find the original page, which has this block.

Conveniently this opens up for an opportunity for creating a script which replaces block refs with their actual content, in case you would have moved from Logseq. So there it is.

If you have found this post useful, please consider supporting my work with a donation on buymeacoffee.com/99rabbits. Half of the proceeds go to the Foundation "Come Back Alive", supporting Ukrainians.