• Stars
    star
    630
  • Rank 71,328 (Top 2 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fast, standalone EPUB to Kobo EPUB conversion tool.

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

More Repositories

1

BookBrowser

eBook server supporting ePub, MOBI and PDF books.
Go
608
star
2

NickelMenu

The easiest way to launch scripts, change settings, and run actions on Kobo e-readers.
C++
558
star
3

ePubViewer

ePub viewer with dictionary, themes, search, offline support, and more
JavaScript
346
star
4

kobopatch-patches

Patches for use with kobopatch.
Go
232
star
5

easy-novnc

Single-binary noVNC instance, web UI, and multi-host proxy.
Go
178
star
6

bootnext

Windows tray icon to set the EFI BootNext variable.
C#
88
star
7

kobopatch

An improved patching system for Kobo eReaders.
Go
84
star
8

dictutil

Tools, documentation, and libraries related to Kobo dictionaries.
Go
58
star
9

KoboStuff

Automatically updated Kobo firmware download page. Also see pgaskin/kfwproxy for the backend.
JavaScript
50
star
10

kobo-mods

My Kobo mods/hacks/tools which aren't patches and aren't in koboutils.
C++
42
star
11

repogen

Easy-to-use signed APT repository generator with a web-based package browser.
Go
42
star
12

lithiumpatch

Adds additional functionality to the Lithium EPUB Reader Android app.
Go
40
star
13

NickelHook

A library for creating mods for Kobo's eReader software, Nickel.
C
35
star
14

NickelTC

A dockerized, deterministic, automated, fixed, and fully-relocatable build of @NiLuJe's toolchain for Kobo eReaders.
Dockerfile
34
star
15

qrc

Go library and command-line tool to extract/decompile Qt resources from Qt resource (rcc) files and executables.
Go
29
star
16

pulseaudio-win32

An up-to-date PulseAudio build for Windows with an installer, service, socket support, bug fixes, and new features.
C
27
star
17

koboutils

Small utilities for doing stuff with Kobo eReaders.
Go
25
star
18

epubtool

A tool to manipulate ePub files.
Go
24
star
19

dictserver

Dictionary API server based on data from the Gutenberg Webster's Unabridged Dictionary.
Go
11
star
20

kobopatch-config

My kobopatch configuration
Shell
8
star
21

kfwproxy

API proxy for kobofirmware.
Go
6
star
22

ssh-sk-provider-gms

OpenSSH security key provider for Play Services on Android. WIP.
C
6
star
23

crb

Library and tools for parsing and exporting Chrome bookmarks.
Go
5
star
24

czlib

zlib bindings for Go without any external dependencies. Forked from DataDog/zlib.
Go
5
star
25

batterytile

Android battery QS tile (current, temperature, time, status).
Java
4
star
26

rpms

Various RPM specs for Fedora.
4
star
27

vscode-extension-download

A bookmarklet to download VSCode extensions as VSIX.
JavaScript
4
star
28

corsproxy

Proxies requests and adds CORS headers.
Go
3
star
29

kbdscr

A tool to show evdev button events graphically.
C
3
star
30

windy

Android live wallpaper visualizing local wind patterns. Based on the official Pixel 2017 windy live wallpaper, but has up-to-date data and additional options.
Java
3
star
31

vncpatch

Patches the RealVNC 4.x Android app to fix bugs and improve usability.
Shell
2
star
32

trellobackup

A simple tool to backup your Trello boards and attachments.
Go
2
star
33

chess

A multiplayer realtime web-based chess game.
HTML
2
star
34

trello-calendar-proxy

Adds additional features to the Trello Calendar Power-Up.
Go
2
star
35

innosoftfusiongo-ical

API serving Innosoft Fusion Go schedule data as an iCalendar feed, plus a web UI.
Go
2
star
36

snappr

CLI and library for pruning time-based snapshots with a flexible retention policy.
Go
2
star
37

ASM374

Assembler for the ELEC374 W23 CPU.
C
2
star
38

barlib

A simple but flexible library for implementing efficient, fast, responsive, and error-tolerant i3status replacements in Go.
Go
2
star
39

innosoftfusiongo-schedule

Generate weekly schedules from Innosoft Fusion Go data.
Go
1
star
40

libs

Single-file C libraries (and a few commands) I have written.
C
1
star
41

android_kiev

1
star
42

userstyles

Various UserCSS stylesheets. Also some Firefox userChrome stuff.
CSS
1
star
43

go-adbfs

Go fs.FS implementation for a connected Android device via the adb daemon without using shell commands.
Go
1
star
44

lua-sagemcom-openwrt

OpenWRT Lua library for controlling Sagemcom routers.
Lua
1
star
45

spicy-kvm

Almost like a KVM switch, but using SPICE, a virtual machine, and a dedicated GPU with a regular monitor connected to both machines.
C
1
star