Refactor handling of links in Markdown
Call load() on the built component tree
Defer opening the writer until view is loaded

As opening a writer will flush headers, we should only open
the writer once the view has been loaded, this enables error
handling to happen when views cannot be loaded.