{"id":17383872,"url":"https://github.com/mcandre/nile","last_synced_at":"2025-04-15T10:09:45.347Z","repository":{"id":64823480,"uuid":"578464901","full_name":"mcandre/nile","owner":"mcandre","description":"ebook normalizer","archived":false,"fork":false,"pushed_at":"2025-04-01T00:30:54.000Z","size":4370,"stargazers_count":14,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T10:09:23.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcandre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-15T05:46:20.000Z","updated_at":"2025-04-01T00:30:58.000Z","dependencies_parsed_at":"2024-05-28T03:34:31.190Z","dependency_job_id":"faf4c39a-a6ee-4ba3-8929-ff794ecb3a45","html_url":"https://github.com/mcandre/nile","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fnile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fnile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fnile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Fnile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcandre","download_url":"https://codeload.github.com/mcandre/nile/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249048738,"owners_count":21204306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-16T07:44:02.760Z","updated_at":"2025-04-15T10:09:45.341Z","avatar_url":"https://github.com/mcandre.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nile: ebook normalizer\n\n# EXAMPLE\n\n```console\n$ cd examples\n\n$ nile shakespeare.epub\n\n$ ls\nshakespeare.epub\nshakespeare.normalized.epub\n```\n\nSee `nile -h` for more detail.\n\n# ABOUT\n\nnile 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.\n\nnile patches up common ePUB structural integrity quirks, for an easier reading experience.\n\n![the nile viewed from orbit](nile.jpg)\n\n# WARNINGS\n\nThe 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.\n\nSome 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.\n\nSome 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.\n\n# LICENSE\n\nBSD-2-Clause\n\n# RUNTIME REQUIREMENTS\n\n* [GNU](https://www.gnu.org/)/[BSD](https://en.wikipedia.org/wiki/Berkeley_Software_Distribution) [findutils](https://en.wikipedia.org/wiki/Find_(Unix))\n* [GNU](https://www.gnu.org/) compatible [readlink](https://www.gnu.org/software/coreutils/manual/html_node/readlink-invocation.html)\n* POSIX compatible [sh](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html)\n* If the ebook filename, or any compressed entry filenames, contain non-ASCII runes, then the active shell interpreter encoding must support that encoding.\n* [tidy-html5](https://github.com/htacg/tidy-html5) 5.6+\n* [xmlstarlet](https://xmlstar.sourceforge.net/) 1.6.1+\n* [zip](https://infozip.sourceforge.net/)\n\n# INSTALL\n\nFor more information on installing or uninstalling nile, see [INSTALL.md](INSTALL.md).\n\n# CONTRIBUTING\n\nFor more information on developing nile itself, see [DEVELOPMENT.md](DEVELOPMENT.md).\n\n# SEE ALSO\n\n* [bao](https://github.com/mcandre/bao), a PDF compressor\n* [Calibre](https://calibre-ebook.com/), a comprehensive personal ebook library manager\n* [Pandoc](https://pandoc.org/), a file format converter\n* [Sigil](https://sigil-ebook.com/), an ebook editor\n* [tigris](https://github.com/mcandre/tigris), (Kindle) comic archival utilities\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcandre%2Fnile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcandre%2Fnile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcandre%2Fnile/lists"}