$ cd examples
$ nile shakespeare.epub
$ ls
shakespeare.epub
shakespeare.normalized.epubSee nile -h for more detail.
nile normalizes ebooks. For example, Amazon Kindle ereaders often fail to render smart (double-)quotes, apostrophes, em dashes, and other common Unicode runes properly. These can corrupt the displayed page, interrupting the natural flow of content.
nile patches up common ePUB structural integrity quirks, for an easier reading experience.
The ebook pages must not contain intensely bizarre oddities, such as a Unicode non-breaking space as a literal rune, or else the ebook may trigger a generic Amazon WhisperSync upload error. For example, the .(x)htm(l) files within the ebook will need to be able to render well in macOS Quick Look and Google Chrome, prior to any sanitization with nile.
Some ebooks may present latent glitches, which can trigger when Calibre converting, such as after applying a custom book cover. This is due to oddities in how Calibre processes CSS.
Some ebooks may not upload at all! We apply some tidy cleanup preprocessing, but even that can't account for all possible ebook file corruption. Your mileage may vary.
BSD-2-Clause
- GNU or BSD findutils
- GNU compatible readlink
- POSIX compatible sh
- If the ebook filename, or any compressed entry filenames, contain non-ASCII runes, then the active shell interpreter encoding must support that encoding.
- tidy-html5 5.6+
- xmlstarlet 1.6.1+
- zip
For more information on installing or uninstalling nile, see INSTALL.md.
For more information on developing nile itself, see DEVELOPMENT.md.
