llaumgui you can add an event listener using javascript that prevents the default link action when trying to open in the current tab and instead navigates inside the single page application using Mithril router methods, like m.route.set(path)
or some of the shortcut methods defined by Flarum on the app.history
object.
For example that's how Flarum makes the logo link open in the same tab (the logo link is part of the original nojs page HTML and not part of a Mithril template):
https://github.com/flarum/framework/blob/v1.7.1/framework/core/js/src/forum/ForumApplication.ts#L128-L131
The app.session.user
part below the code I linked is to force a refresh of the notification count when clicking the logo, you don't have to copy that part unless you also want to refresh that information.
For more advanced use cases, you might want to build your header as a Mithril component that can use the m.route.Link
component for internal routing, then mount that component to the header at page load.