If you keep stuff within the existing structures then a theme component can work just fine and the amount of work is not enormous. The [[ is actually handy implementation wise cause it gives you a nice anchor of where to stop with auto complete.
A full workflow example could be:
- User types:
[[ - Composer fills in
]], cursor is in between the brackets. - User types search term eg:
[[in-line topic]] - As user is typing search is performed and results rendered in a autocomplete like
@mentions - Hit up/down/enter to select.
- Once selected
[[in-line topic]]is replaced withhttps://meta.discourse.org/t/in-line-topic-search-and-linking-e-g-roam-like-bracket-links/200454 - If user just moves cursor beyond
]]autocomplete closes and a[[in-line topic]]would just stay in the markdown
Overall building something like this is totally feasible in a theme component , does not amend any server side stuff and would be pretty straight forward to build. I would say an expert could swing something in a day or two, an intermediate would probably take a week or so.