makemd icon indicating copy to clipboard operation
makemd copied to clipboard

"Transform into Folder" does not display space note due to missing def.json

Open Kiggi opened this issue 7 months ago • 3 comments

  • Obsidian version 1.8.10 (most recent)
  • Make.md version 1.1.6 (most recent)
  • Tested on Windows, Linux and Android

When transforming a note to a folder, the content of the note does not get displayed in the space overview. This is likely due to a missing def.json in the .space folder of the newly created folder.

Steps to reproduce

First, create a note:

Image

Right-click the note in the navigator and select "Transform to Folder". Afterwards left-click on the new folder to view the newly created space:

Image

The content, which was previously in the note, is now missing from this page. However, the minimized note embed block is still visible and the link to the previous note content can be accessed, when maximizing it. The content of the note is not embedded however and the collapse button has no effect.

Image

When clicking on the link to the space's note however, the embedded note still gets opened correctly.

Expected behavior

Image

After transforming the note into a folder, the note's content should be displayed in the space overview in the same way, as when creating the folder from the Navigator directly.

Cause

After some brief investigation of the plugin code and the created folder structure, I am fairly certain, I have found the cause of this issue. It appears that when the new folder is created, the action does not create a .space subfolder. Therefore the def.json file is also missing, which leads to the note's content not being able to be found.

Workaround

After transforming the note to a folder, open it in the system explorer, create the .space subfolder and copy the default def.json file into the .space subfolder. Afterwards, the previously created note content should display in the folder correctly:

Image

If it does not, restart Obsidian or use the "Reload app without saving" command.

The default def.json I used for this example was:

{"_joins":[],"_contexts":[],"_links":[],"_sort":{"field":"rank","asc":false,"group":false,"recursive":false},"_template":"","_templateName":"","defaultSticker":"","readMode":false}

Kiggi avatar May 26 '25 00:05 Kiggi

Thank You for finding and documenting this. I was loosing my mind, thought my sync service messed notes up

ateret avatar Jun 16 '25 20:06 ateret

Up on this, very disturbing to not be able to find your written note

a-scolan avatar Jul 31 '25 10:07 a-scolan

Hi @a-scolan, had You tested the fix You created? Does it seems to work?

ateret avatar Aug 22 '25 10:08 ateret