You can do this fairly easily with a macro in Tiddlywiki. There are even “versions” of Tiddlywiki that behave like Roam that are free if you like that format.
I’ve been personally using it for years and I really like it for the fact that when you want to do something like this (or really anything else) you can with the built in tools/ a plug-in. There is a learning curve to it though. Luckily, there is also a great community willing to help whenever you have questions.
Beh in termini di programmini "di note" (perché questo alla fine sono Obsidian, Foam, ...) puoi prendere Joplin (FLOSS, electron, bacato ma va e supporta almeno gli allegati), CherryTree (python), RedNotebook (python), Osmo, TreeSheets, ce ne sono una valanga. Ma a tutti manca 30 per far 31...
Il problema IMO è che tutti questi sistemi sono stati disegnati da qualcuno che non li usa, ovvero che l'ha disegnati sentendo un'idea di qualcun altro che gli è piaciuta e l'ha implementata così come l'ha capita, c'ha giocato un po', poi l'interesse è passato, qualcun altro ha preso il posto e alla fine sono diventate soluzioni zoppe/parziali/insipide.
FORSE, non troppo convinto, quella del genere che potrebbe servirti meglio è https://tiddlyroam.org che puoi usare come app semi-desktop (via TiddlyDesktop) o direttamente da browser come mega-files html con tutto codificato in base64 dentro autogestito via js. Forse è il più "portabile", (quasi)zero setup con una seleziona umana di features. MA fa note. Non è una vera Kb, non è un vero PIM. Nessuno di quelli sopra lo è. Anche le wiki classiche (es. DokuWiki classica, da molti usata anche come sito web personale o di progetto, ma anche GitIT, MoinMoin, ...) non sono vere KB/PIM/strumenti generici. Ci fai qualcosa, ma solo quello. Appena vuoi una feature in più sei bloccato... I più sono pseudo-estensibili, ma fai prima a imparare Emacs da zero che non a estenderli veramente...
Qualcuno ha provato a fare implementazioni basiche anche solo di org-mode fuori da Emacs, per es. una delle più mature, Organice by 200ok.ch, single-page webapp js-backed, carina, molto più avanzata di tante. Ma iper limitata rispetto all'originale...
Puoi, forse, avvicinarti a quel che cerchi con più software diversi, es. Zotero/Archivy per gestire i files e link a questi via TiddlyRoam, copre una parte dei tuoi requisiti ma è macchinoso, non propriamente veloce da usare...