Take a look at the
Asciidoctor Backends Repository. You can create a copy of the existing HTML5 backend and modify it to generate the HTML you want. For example, if you wanted to use HAML, you would likely want to cp the haml/html5 directory to something like haml/html5-custom. You would then edit the
document.html.haml file to meet your needs. To render it, you would use something like this:
asciidoctor -T <base>/asciidoctor-backends/haml/html5-custom <asciidoc file>
Alternatively, you could use an
asciidoctor extension. For example, you might create a
custom postprocessor that inserts your navigation bar. You can find complete working extensions in the
asciidoctor-extensions-lab repository.
HTH,
Rob