I've recently done this in Pages. About 200 pages, with text, photos, diagrams, table of contents, and a detailed index. I exported it as ePub (for Apple Books) and pdf (for distribution as an e-book and uploading to a self-publishing site for printing).
Pages did a great job with the text and text formatting, photos, internal and external links, generating a table of contents, and generating a table of illustrations with links to the pages they are on. I ended up doing diagrams elsewhere (in Numbers and OmniGraffle) and pasting those into Pages.
Pages, unlike Word, doesn't do indexes natively. I got around that by putting together a script to construct an index with page references. The resulting index wasn't quite formatted to "professional" publishing standards," but nevertheless provided a convenient way to look up people, places, and subjects.
One caveat. Once I got up over a 100 pages or so writing text in Pages became sluggish. But I tend to draft things in TextEdit or Drafts anyway, and then copy-paste in Pages anyway, so that was not an issue for me.
In general, Pages far exceeded my expectations. Easy to use, and nice looking output. Without a huge investment of time.
SG