marijnh / Eloquent-JavaScript

The sources for the Eloquent JavaScript book
https://eloquentjavascript.net
3.01k stars 795 forks source link

Add `type` attribute to <link> tag in epub #396

Closed skotniczny closed 6 years ago

skotniczny commented 6 years ago

This enables generating correct mobi files with kindlegen. It seems that without type attribute Kindle ignores all styles.

Now ebook-convert generates only old mobi format. This can be changed with option --mobi-file-type=both. However, I prefer kindlegen because hybrid file generated witch ebook-convert and sent to Kindle by e-mail has broken SVG images (all SVGs with CSS styles are black). The same file transferred via USB looks good.

marijnh commented 6 years ago

because hybrid file generated witch ebook-convert and sent to Kindle by e-mail has broken SVG images (all SVGs with CSS styles are black). The same file transferred via USB looks good.

That's... odd. Does the sending by email go through regular plain email or through some Amazon system?

skotniczny commented 6 years ago

Calibre creator explained me that

When you send books by email they are re-processed by amazon. calibre has no control over that. Stick to USB transfer as much as possible.

marijnh commented 6 years ago

Hah, I see, that's terrible, but not very surprising. But since ebook-convert creates a 2 mb file, whereas kindlegen's output is 4.5 mb, as well as being a closed-source program with a non-trivial EULA, I'm going to keep using ebook-convert for the build on the website.

skotniczny commented 6 years ago

Yes, that is clear to me. However if you mean output size this is a bit more complex.

By default Calibre generates mobi files that contains the old format, which actually means conversion to… HTML 3.2 (SVG images are rasterized). KindleGen equivalent is ebook-convert --mobi-file-type=both. Then both produces combo KF8/MOBI file (two formats in one file). KindleGen with maximum compression option (kindlegen -c2) creates 3,5 MB file which is comparable with Calibre output.