Для того, чтобы перехватить — можно использовать этот
сигнал.
Кстати, почему не веб? Не важно, электрон или QWebEngine. Если вы его хорошо знаете, знаете как решить задачу на нем.
На QML я бы делал каждый стих в базе отдельной записью, грузил бы из базы в
модель, и отображал список — тогда было бы можно переходить к нужному, обрабатывать ссылки и т.д. как угодно, правда что будет с производительностью при таком подходе, если надо отображать и хранить сотни тысяч записей — я не знаю.