jfcostello / AnyBlock-To-Markdown

Used LLM to Parse the verbose JSON files that make up AnyType exports and created a script to turn those files into simple Markdown with all of your relation data
23 stars 4 forks source link

Feedback / Issues #3

Open Biepa opened 1 week ago

Biepa commented 1 week ago

Hey, Thank you for creating this. It doesn't seem to work when you export a complete space. The files of my export are placed in folders. Like: image Should all files of all folders just be copied in one folder? I don't see this mentioned in the readme. Or is that mentioned with "place all JSON files...". Are files etc. also meant? EDIT: Moved all in one directory. That worked. Wasn't clear enough for me from the readme.

For me (NixOS) the pyyaml module for python was missing. Not sure if it is installed by default for other distributions.

How are files/attachments handled? Are they linked? If so, based on a relative path or all in one folder?

Biepa commented 1 week ago

Which log levels are available?

Biepa commented 1 week ago
  1. Numbered Lists aren't working for me. They all show "1."

  2. I would like to also not show properties like Old Anytype ID, Source file path and more

jfcostello commented 1 week ago

Hey, Thank you for creating this. It doesn't seem to work when you export a complete space. The files of my export are placed in folders. Like: image Should all files of all folders just be copied in one folder? I don't see this mentioned in the readme. Or is that mentioned with "place all JSON files...". Are files etc. also meant? EDIT: Moved all in one directory. That worked. Wasn't clear enough for me from the readme.

For me (NixOS) the pyyaml module for python was missing. Not sure if it is installed by default for other distributions.

How are files/attachments handled? Are they linked? If so, based on a relative path or all in one folder?

Glad you figured it out, yeah fixing up the readme is on my list for today - it could be alot clearer

I don't have strong support for files, I ended up not needing it myself, so they don't get linked in a good and proper way for something like Obsidian to pick up on. However, that should be very achievable, I might play around with it today and see if I can have it smartly link to the files, though I won't have time to deep dive on it if it ends up being a struggle

jfcostello commented 1 week ago

Which log levels are available?

In theory...

DEBUG - Detailed information for debugging INFO - General information about program execution WARNING - Indicates a potential problem (current default) ERROR - A more serious problem CRITICAL - A critical error that may prevent the program from running

However, testing it just there, and it's not working, and defaults to a very verbose log

jfcostello commented 1 week ago
  1. Numbered Lists aren't working for me. They all show "1."
  2. I would like to also not show properties like Old Anytype ID, Source file path and more

For 2, you should be able to add whichever properties you want to the ignore list on config.yaml. It's a bit of whack-a-mole, Anytype would always find new weird ones to add, so it might take a bit of trial and error spot checking the exports and adding properties you see

For 1, aha, not surprised by this - I never used numbered lists, so never even considered it. I suspect this is an easy fix and should be able to knock it off today

jfcostello commented 1 week ago

@Biepa numbered lists should be working now, I did some testing and am getting consistent results. Anyblock is annoying in that it doesn't keep track of the number, so there's logic in the converter to keep count and understand nesting, so there may be some weird edge cases where it breaks but it seems to be okay

zuulmaker commented 1 week ago

with my PR you should also find all json files, wherever they are in subfolders.

Biepa commented 6 days ago

@zuulmaker @jfcostello Thank you for working on it. I gave it a second round and noticed some other things. (If you don't have the time or just don't want to implement it, just let me know. I'm not demanding this of you :sweat_smile:. But in case this should become a python script useful for more people, here you go.)

Optional helpful features:

Missing features/bugs:

EDIT: BTW I had to add the python modules "chardet" and "tqdm" so you may note that in the readme. EDIT v2: In my opiniont the ">" should be used for the blocks of style "Callout" and "Quote"

zuulmaker commented 5 days ago

As I am in the same position, regarding the transfer from anytype to obsidian, I will have a look, when I get some time over the weekend. But no promises. ;-)

jfcostello commented 4 days ago

Cheers, zuulmaker!

Yeah some of those are probably pretty easy changes, I just won't have alot of time over the coming weeks

The > for sub bullets instead of tabs is a good shout, truthfully, I was exporting data into Obsidian with a view to then take that data also try an outliner like Logseq or Tana, so I was looking to create a hierarchy that worked with toggles. Basically, treated toggles and nested bullets very similarly as an outliner would view Toggle -> content -> bullet -> sub bullet as just four nested layers. But for most people, tabs would make more sense. At the very least this should be a configurable option. I'll definitely look into that if it's still an open issue next time I'm able to take a dive into this