kepubify

module
v4.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2022 License: MIT

README

kepubify

Kepubify converts EPUBs to Kobo EPUBs.

Website   Download   Documentation   Web Version   pkg.go.dev

About

Kepubify is standalone (it also works as a library or a webapp), converts most books in a fraction of a second (40-80x faster than Calibre), handles malformed HTML/XHTML without causing further issues, has multiple optional conversion options (punctuation smartening, custom CSS, text replacement, and more), has a full test suite, is interoperable with other applications, and is safe to use with untrusted books.

Two additional standalone utilities are included with kepubify. covergen pre-generates cover images to speed up library browsing on Kobo eReaders while providing higher-quality resizing. seriesmeta scans for EPUBs and KEPUBs, and updates the Kobo database with the Calibre or EPUB3 series metadata.

See the releases page for pre-built binaries for Windows, Linux, and macOS. See the website for more documentation, pre-built binaries for Windows, Linux, and macOS, and a web version.

Building

Kepubify requires Go 1.16 or later. To install kepubify directly, run go install github.com/pgaskin/kepubify@latest. To build from source, clone this repository, and run go build ./cmd/kepubify.

On Go 1.17 or later, additional optimizations are automatically used to significantly improve kepubify's performance by preventing unchanged files from being re-compressed. To use a backported version of these optimizations on Go 1.16, add the option -tags zip117 to the build/install command. If you are using kepubify as a library in another application with -tags zip117 enabled on Go 1.16, it must also use the backported package when passing a *zip.Reader to (*kepub.Converter).Transform.

To build seriesmeta, a C compiler must be installed and CGO must be enabled.

Note that kepubify uses a custom fork of golang.org/x/net/html. This fork provides additional options used by kepubify to allow reading malformed HTML/XHTML and to produce polyglot HTML/XHTML output for maximum compatibility. Previously, kepubify replaced it using a replace directive in go.mod, but since the fork is now a standalone package, this is not necessary anymore, and will no longer cause conflicts if used as a dependency in applications requiring golang.org/x/net/html directly.

Branches

This repository contains multiple main branches with code used by kepubify.

Branch Description Status
master Kepubify, seriesmeta, and covergen (this branch). kepubify
gh-pages Kepubify website and JS/WASM library. website
forks/html Fork of golang.org/x/net/html with additional features and modifications required by kepubify. forks - html
forks/go116-zip.go117 Fork of archive/zip from Go 1.17 backported to Go 1.16 for performance improvements. forks - go116-zip.go117

Directories

Path Synopsis
cmd
covergen
Command covergen (pre-)generates book covers for EPUB/KEPUB books.
Command covergen (pre-)generates book covers for EPUB/KEPUB books.
kepubify
Command kepubify is a fast, standalone, EPUB to KEPUB converter.
Command kepubify is a fast, standalone, EPUB to KEPUB converter.
seriesmeta
Command seriesmeta updates series metadata for EPUB/KEPUB books in the Kobo database.
Command seriesmeta updates series metadata for EPUB/KEPUB books in the Kobo database.
internal
zip
Package zip is an ugly hack to allow kepubify to be build on Go 1.16 with a backported archive/zip from Go 1.17 for much better performance.
Package zip is an ugly hack to allow kepubify to be build on Go 1.16 with a backported archive/zip from Go 1.17 for much better performance.
Package kepub converts EPUBs to KEPUBs.
Package kepub converts EPUBs to KEPUBs.
kobotest
Command kobotest tests kepub span logic (only, not divs or other kepub stuff, which is pretty straightforward anyways) against other kepubs.
Command kobotest tests kepub span logic (only, not divs or other kepub stuff, which is pretty straightforward anyways) against other kepubs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL