zsviczian / excalibrain

A graph view to navigate your Obsidian vault
MIT License
680 stars 17 forks source link

Excalibrain doesn't work on my mac because of "TypeError: t.values is not a function" #194

Closed benpla closed 8 months ago

benpla commented 8 months ago

Excalibrain doesn't work on my mac.

Excalidraw works normal, Excalibrain shows only start page. selected files on other panes or search will be recognized (Footer of Excalibrain drawing), but not showed. The drawing only shows "To get started":

grafik

The Console shows error:

grafik

Code for Line "3964":

grafik

Errors from startup

(1) The first error after Startup is ExcaliBrain URLParser: Invalid URL https://qisfsv.xxxxxx with "request failed"

(2) "Initialized Excalidraw Image Cache"

(3) "ExcaliBrain indexed 6036 URLs from 1765 unique hosts in 2325 of 3990 markdown files in 6.4 seconds"

(4) "Uncaught (in promise) TypeError: t.values is not a function" grafik

Versions:

Obsidian Version 1.5.3 (Installer 1.4.13) ExcaliBrain 0.2.11 ExcaliDraw 2.0.13

zsviczian commented 8 months ago

can I ask you to replace your main.js with this one? main.zip

Download and unpack the zip Copy the main.js to Vault/.obsidian/plugins/excalibrain folder note .obsidian is a hidden folder.

restart Obsidian and share the results from the console.

benpla commented 8 months ago

Thank You for the file. I've replaced the file and this is the console output: grafik

zsviczian commented 8 months ago

Let's do a second try. Here's a new main.js: main.zip

On the screenshot please open the toggles as shown: image

benpla commented 8 months ago

Many Thanks. Here a long image of recursively opened Data on Console. I have also saved the output as a log file, but this file seems very messy to me.

grafik

Sometimes it works when I click on a file in ExcaliBrain or change the file outside; sometimes it does not work. In the footer of ExcaliBrain, however, the selected file is always displayed, even if the drawing does not change.

grafik
zsviczian commented 8 months ago

This is because you are using a form of properties on the page that I wasn't aware of and seems dataview for those properties works differently. Can you send me the markdown file that is causing the errors? Hopefully based on the detailed log you can figure out which file it might be.

benpla commented 8 months ago

I have spotted it out on a little Test-Vault.

Way to Error

I copied my files in step by step and then reduced them until I came to a single error. I have a LOT of entries in my weekly logs (weekly logs are my backbone) like the one shown in the screenshot, here as Code:

- #log :: angemeldet für XYZ ✅ 2023-10-23 [time:: 2023-12-18], [d::1h] 

ExcaliBrain always throws an error "TypeError: t.values is not a function" if the inline field consists of the letter d. I use d as an abbreviation for duration so that it types faster because I make many entries of this type. I've also tested it with other letters and they don't produce an error: it really seems to be the specific d.

I don't know what the reasons are for this one letter not working. Unfortunately, I happened to grab this one. :-) Since I have a lot of log entries with duration field d in my files, I was of course overwhelmed in ExcaliBrain and it took a while to extract the behavior.

(My) Possible Solution

If the d is otherwise occupied (?) or cannot be used, I can replace it in all my files with a small script and use dur or similar in the future.

Here is the screenshot:

grafik

Test-Vault

Here my little test-vault: the last line in file 2023-w43 (the d-field) throws a "TypeError: t.values is not a function" obsi_test1.zip

zsviczian commented 8 months ago

Thanks. Fixed it. I've also added support for date fields. Will release soon.