For Dercuano I mostly just used Markdown (in Emacs and occasionally Vim, with Git) but then at the end I wrote a janky HTML renderer that outputs PDF in order to have a format people can read on cellphones. If I hadn't done such a rush job on the HTML renderer, I think it would have come out pretty well.
A couple of aspects that did work well were Latin Modern Mono Condensed Light (lmtlc), a TeX font derived from Computer Modern Teletype, page-number links, and Reportlab. lmtlc made it possible to produce a PDF that can display 80 columns of fixed-pitch text on a cellphone screen at a readable size, although I had to fall back to FreeMono for characters outside lmtlc’s repertoire and for boldface. And page numbers make it possible to follow links in Google Drive’s inept PDF viewer, which otherwise lacks any such ability and is disappointingly the Android default, with about 15 seconds of focused effort. Not great, but not bad for a 3700-page book. And Reportlab, a PDF output lib for Python 2, is just a pleasure to work with, which is a phrase very rarely found near the word “PDF”.
The PDF renderer is at https://github.com/kragen/dercuano/blob/master/genpdf.py but probably it would have been a better use of time to figure out how to do it in pandoc, which has an actual box model, even though Petersen isn't enthusiastic about his experience with it.
Readability on cellphone screens is really difficult, demanding a lot of compromise, and I'm very happy with what I was able to achieve there. With another couple of days I would have added hyphenation and justification, which would have made it considerably better still. The result is at http://canonical.org/~kragen/dercuano.20191230.pdf.