Upon opening the application, the SR Plugin causes the whole Obsidian App to freeze as soon as the plugin loads, as in no action is possible.
This is quite concerning on mobile. If I didn't have a 1s delay due to plugin groups I would have had to completely reset my vault because of this spaced repetition plugin bug.
This is may be somehow connected to the flashcards parser functionality changed in 1.12.6, since this is the last step shown if I turn on the debugger functionality on desktop obsidian (see screenshots). Also if I remove all tags (as in no flashcards notes), then the app starts normally.
I've found this error only happens in the plugin versions 1.12.6+. (tested .5, .6, .7, .8, .9)
I'm now using the 1.12.5 version, as it at least allows opening the application. It still comes with bugs and errors, but ...
After trying out a few things, there is a markdown in the context which by itself causes 77s freezing.
To Reproduce
Open the app with the markdown file as flashcard
wait 1 second
try to click navigation or anything else. Application frozen.
Wait for a few minutes for it to unfreeze, hoping it completes (if you have a single markdown file, else forget it).
Expected behavior
The app is functional.
Screenshots
v1.12.5 (doesn't freeze)
v1.12.9 (freezes, as any above 1.12.6 does too)
OS of your device
MacOS 14.4.1 (23E224)
Obsidian version
v1.6.7
Plugin version
v1.12.6/7/8/9
Installer version
'5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.4.14 Chrome/114.0.5735.289 Electron/25.8.1 Safari/537.36'
Additional context
The console output of a single markdown file, which nevertheless causes the application to load for 77s on desktop obsidian:
plugin:obsidian-spaced-repetition:12980 Text to parse:
<<<
## Important Concepts
### Text Functions
- **`lower(string)`**: Converts the given string to lowercase.
Example:
```sql
SELECT lower('The') FROM textfun;
-- Result: 'the'
upper(string): Converts the given string to uppercase.
Example:
SELECT upper('tom') FROM textfun;
-- Result: 'TOM'
substring(string from int for int): Extracts a substring from the specified position and for the specified length.
Example:
SELECT substring('Thomas' from 2 for 3) FROM textfun;
-- Result: 'hom'
substring(string from pattern): Extracts a substring that matches a POSIX regular expression.
Example:
SELECT substring('Thomas' from '...$') FROM textfun;
-- Result: 'mas'
position(substring in string): Finds the position of a substring within a string.
Example:
SELECT position('om' in 'Thomas') FROM textfun;
-- Result: 3
overlay(string placing string from int for int): Replaces a substring within a string starting from a specified position.
Example:
SELECT overlay('Txxxxas' placing 'hom' from 2 for 4) FROM textfun;
-- Result: 'Thomas'
trim([leading | trailing | both] [characters] from string): Removes the longest string of characters (spaces by default) from the start, end, or both ends of a string.
Example:
SELECT trim(both 'x' from 'xTomxx') FROM textfun;
-- Result: 'Tom'
translate(string, from, to): Translates characters in a string from one set to another, similar to the Unix tr command. The from and to strings must be of equal length.
Example:
SELECT translate('th.p/', 'tp.', 'TP_') FROM textfun;
-- Result: 'Th_P/'
bit_length(string): Returns the number of bits in a string.
Example:
SELECT bit_length('Jose') FROM textfun;
-- Result: 32
char_length(string) / character_length(string): Returns the number of characters in a string.
Example:
SELECT char_length('Jose') FROM textfun;
-- Result: 4
octet_length(string): Returns the number of bytes in a string.
Example:
SELECT octet_length('Jose') FROM textfun;
-- Result: 4
split_part(string, delimiter, field): Splits a string by a delimiter and returns the part specified by the field index.
Example:
SELECT split_part('https://www.pg4e.com/neon/150000', '/', 4) FROM textfun;
-- Result: 'neon'
plugin:obsidian-spaced-repetition:12702 The parsers grammar is provided below. You can test it with https://peggyjs.org/online.html.
plugin:obsidian-spaced-repetition:12705 {info: 'Copy the grammar by right-clicking on the property…hen, paste it in https://peggyjs.org/online.html.', grammar: '{\n // The fallback case is important if we want…000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff])\n'}
plugin:obsidian-spaced-repetition:12717 New parser generated in 28 milliseconds.
plugin:obsidian-spaced-repetition:12996 Parsed cards:
[]
plugin:obsidian-spaced-repetition:28196 SR: Decks _Deck {deckName: 'root', newFlashcards: Array(0), dueFlashcards: Array(0), subdecks: Array(0), parent: null}
plugin:obsidian-spaced-repetition:28197 SR: Sync took 77842ms
Describe the bug
Upon opening the application, the SR Plugin causes the whole Obsidian App to freeze as soon as the plugin loads, as in no action is possible.
This is quite concerning on mobile. If I didn't have a 1s delay due to
plugin groups
I would have had to completely reset my vault because of this spaced repetition plugin bug.This is may be somehow connected to the flashcards parser functionality changed in 1.12.6, since this is the last step shown if I turn on the debugger functionality on desktop obsidian (see screenshots). Also if I remove all tags (as in no flashcards notes), then the app starts normally.
I've found this error only happens in the plugin versions 1.12.6+. (tested .5, .6, .7, .8, .9) I'm now using the 1.12.5 version, as it at least allows opening the application. It still comes with bugs and errors, but ...
After trying out a few things, there is a markdown in the context which by itself causes 77s freezing.
To Reproduce
Expected behavior
The app is functional.
Screenshots
v1.12.5 (doesn't freeze)
v1.12.9 (freezes, as any above 1.12.6 does too)
OS of your device
MacOS 14.4.1 (23E224)
Obsidian version
v1.6.7
Plugin version
v1.12.6/7/8/9
Installer version
'5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.4.14 Chrome/114.0.5735.289 Electron/25.8.1 Safari/537.36'
Additional context
The console output of a single markdown file, which nevertheless causes the application to load for 77s on desktop obsidian:
upper(string)
: Converts the given string to uppercase.Example:
substring(string from int for int)
: Extracts a substring from the specified position and for the specified length.Example:
substring(string from pattern)
: Extracts a substring that matches a POSIX regular expression.Example:
position(substring in string)
: Finds the position of a substring within a string.Example:
overlay(string placing string from int for int)
: Replaces a substring within a string starting from a specified position.Example:
trim([leading | trailing | both] [characters] from string)
: Removes the longest string of characters (spaces by default) from the start, end, or both ends of a string.Example:
translate(string, from, to)
: Translates characters in a string from one set to another, similar to the Unixtr
command. Thefrom
andto
strings must be of equal length.Example:
bit_length(string)
: Returns the number of bits in a string.Example:
char_length(string)
/character_length(string)
: Returns the number of characters in a string.Example:
octet_length(string)
: Returns the number of bytes in a string.Example:
split_part(string, delimiter, field)
: Splits a string by a delimiter and returns the part specified by the field index.Example:
The markdown file: uC13-35 Text Function In SQL 20240823-1747.md
Config file
data.json