Major Mode for Reading EPUBs in Emacs
github.com
github.com
As for the pictures - I'm comfortable with them being Base64-encoded and encapsulated at the end of the FB2 file.
EPUB indeed is more feature reach but from my point of view that is all bloat and unnecessary complexity.
I haven't seen a single ebook which could actually benefit from EPUB features. Whatever features rich typesetting worth saving is rarely published this way anyway, they just use PDF (which is sad but true).
HTML also allows you to specify an image inline using Base64 encoding; soemthing like
<img src="data:image/png;base64, fhfhfhfh...">
I don't know what FB2 does, but it's definitely a solvable problem.[1]: https://en.wikipedia.org/wiki/FictionBook#Differences_from_o...
I recently bought an ebook and found that it was formatted in a custom font, so I "returned" it immediately. I guess this is a philosophical issue to some extent, but I don't think the typical novel is visual content, and I don't know what you're trying to accomplish by overriding my preferred settings for text presentation.
Besides, there's a big surface for bugs in epub. It happened to me to buy an ebook which froze my reader until I weeded out CSS, and fonts from it with Calibre. Ironically, it also, made it easier to read.
Page numbers can indeed be very useful for the purpose of non-electronic referencing of pieces of a text, especially if a printed edition of the book exists you need to collaborate with people having such but I would rather use simple anchor tags for this.
It's made for readers by readers, so no DRM. A non-starter for publishing corporations, sadly.
https://github.com/ashton314/homebrew-mm
This is really just a one-liner I put in a shell script to pass things to Pandoc so I could read them like a man page in my terminal.
Love the Emacs lib though. The more emacs I my life the better. :)
Both of these take advantage of the shr HTML renderer built into Emacs which in turn uses libxml2 to do the heavy lifting.
Books flush them right. eBook readers usually don't and when they do it's horribly typographically, because they don't use a smart algorithm for hyphenation and line splitting.
unzip -qc "$1" ".htm*" | w3m -T text/html -dump -cols 120
The bindings are even similar save for o for outline in pdf-tools and t for table of contents.
One suggestion would be a function to search the entire document since in buffer search will only search the current chapter.
Really awesome progress.
[0]: https://www.gnu.org/software/emacs/manual/html_node/emacs/Do...
Go emacs!
C-h a - apropos
C-h k <key sequence> - detailed docs on the command run by key sequence
C-h m - docs on current minor modes and major mode
C-h w <command> - what keystrokes will run command
There's a lot more as well.
I think a good 80% of them could work but you don't want to be halfway done an EPUB only to find out that code highlights weren't being rendered or that rending is halfway broken for some small percentage of the document.
The pop-ups can be pretty annoying, but just close them and persist; the download links are pretty legit.
This is literally the reason I'm excited to learn about nov.el and other epub readers; when I get an epub book, I sigh inwardly because there's 2-3 more steps to go before I can actually read it, e.g. email the file to my kindle address, wait for Amzn to ask me to verify it's not spam, then finally download it to my Kindle.
Example use case. Run M-x calibre-search , prompt appears type title:space tags:scifi search is populated with the titles and metadata of matching books and you type to narrow hit enter book opens.
Also open-last-book and open-recent-books. I could probably add this to my existing wrapper.
https://github.com/davatorium/rofi
Presumably would be about as easy to do in elisp.
A call to calibredb in a library of thousands of books on ssd is only 1/3 -> 1/2 a second
I bet there is a command line way to export a bibtex library, so it could be automated in elisp. It takes seconds though, and I only do it a few times a month. Doesn't matter though, I settled on this workflow because I was already using bibtex regularly for papers. Probably makes less sense if you aren't already happy with bibtex.
Ideally I have an epub that I read on my kobo ereader. Afterwards I have a number of annotations (highlights) that I have listed in plain text.
I would like to be have the epub and the highlights side by side and be able to snap directly to the highlights position within the epub in order to take further notes.
https://github.com/weirdNox/org-noter
If you want to get your annotations into org mode/emacs, look at this guy's work:
https://beepb00p.xyz/orger.html
I haven't yet tried it, but I think he does something similar.