Multi-platform ebook reader

An ebook reader application supports PDF, DJVU, EPUB, FB2 and many more formats, running on Kindle, Kobo, PocketBook, Ubuntu Touch and Android devices.

Modules

android FFI bindings for android native APIs and Java Native Interface (JNI).
apps.filemanager.filemanagerbookinfo This module provides a way to display book information (filename and book metadata)
apps.filemanager.filemanagerconverter This module is responsible for converting files.
apps.filemanager.filemanagerutil This module contains miscellaneous helper functions for FileManager
apps.filemanager.lib.md Stream Utils
apps.reader.modules.readerlink ReaderLink is an abstraction for document-specific link interfaces.
apps.reader.modules.readerview ReaderView module handles all the screen painting for document browsing.
apps.reader.readerui
baseexporter Base for highlight exporters.
cache It's apparently unusable, purge it and refresh the snapshot.
cacheitem

NOTE: As far as size estimations go, the assumption is that a key, value pair should roughly take two words,

and the most common items we cache are Geom-like tables (i.e., 4 key-value pairs).
datetime This module contains date translations and helper functions for the KOReader frontend.
dbg This module provides development-only asserts and other debug guards.
depgraph DepGraph module.
device.generic.device Generic device abstraction.
device.gesturedetector This module detects gestures.
device.input An interface to get input events.
device.kindle.mockrtc Checks if the alarm we set matches the current time.
device.kobo.nickel_conf Access and modify values in Kobo eReader.conf used by Nickel.
device.sysfs_light
device.wakeupmgr RTC wakeup interface.
dispatcher This module is responsible for dispatching events.
docsettings This module is responsible for reading and writing metadata.lua files in the so-called sidecar directory (Wikipedia definition).
document.doccache ...otherwise, effectively disable the cache by making it single slot...
document.documentregistry This is a registry for document providers
document.koptinterface Interface to k2pdfoptlib backend.
dump A simple serialization function which won't do uservalues, functions, or loops.
ffi.blitbuffer Generic blitbuffer/GFX stuff that works on memory buffers
ffi.crypto LuaJIT FFI wrapper for libcrypto (OpenSSL).
ffi.framebuffer Framebuffer API.
ffi.freetype Freetype library interface (text rendering)
ffi.jpeg Module for JPEG decoding/encoding.
ffi.koptcontext

Leptonica cheatsheet:

-- Data structures:
PIX -- basic data structure - stores image
BOX -- stores rectangle (x, y, w, h)
BOXA -- array of BOX
NUMA -- array of numbers
ffi.loadlib Helper for loading native libraries.
ffi.md5 MD5 hash library.
ffi.mupdf MuPDF API

This is a FFI wrapper for what was a Lua-based API in the past Some kind of C wrapper is needed for muPDF since muPDF uses a setjmp/longjmp based approach to error/exception handling.

ffi.png Module for PNG decoding/encoding.
ffi.rtc Module for interfacing with the RTC (real time clock).
ffi.sdl2_0 Module for interfacing SDL 2.0 video/input facilities
ffi.utf8proc Module for utf8 string operations.
ffi.util Module for various utility functions.
ffi.webp Module for WebP decoding.
ffi.zipwriter Zip packing workflow & code from luarocks' zip.lua : https://github.com/luarocks/luarocks/blob/master/src/luarocks/tools/zip.lua Modified to not require lua-zlib (we can wrap zlib with ffi) cf: http://luajit.org/extffitutorial.html, which uses zlib as an example ! Simplified to take filename and content from strings and not from disk
ffi.zlib LuaJIT FFI wrapper for zlib.
ffi.zstd LuaJIT FFI wrapper for ZSTD.
gettext A pure Lua implementation of a gettext subset.
koplugin.HelloWorld This is a debug plugin to test Plugin functionality.
koplugin.QRClipboard This plugin generates a QR code from clipboard content.
koplugin.autodim Plugin for automatic dimming of the frontlight after an idle period.
koplugin.autowarmth Plugin for setting screen warmth based on the sun position and/or a time schedule
koplugin.calibre.metadata This module implements functions for loading, saving and editing calibre metadata files.
koplugin.coverimage
koplugin.exporter Export highlights to different targets.
koplugin.japanese Japanese language support for KOReader, modelled after Yomichan.
koplugin.japanese.deinflector Yomichan deinflector implementation in pure Lua.
koplugin.terminal module used for terminal emulator to override InputText
koplugin.terminal This plugin provides a terminal emulator (VT52 (+some ANSI and some VT100))
koplugin.vocabbuilder This plugin processes dictionary word lookups and uses spaced repetition to help you remember new words.
koplugin.wallabag
languagesupport Language-specific handling module.
logger Logger module.
luadata Handles append-mostly data such as KOReader's bookmarks and dictionary search history.
luadefaults Subclass of LuaSettings dedicated to handling the legacy global constants.
luasettings This module handles generic settings as well as KOReader's global settings system.
optmath Simple math helper functions
provider Registers an implementation of a feature.
random A set of functions to extend math.random and math.randomseed.
socketutil This module contains miscellaneous helper functions specific to our usage of LuaSocket/LuaSec.
sort This module contains a collection of comparison functions (or factories for comparison functions) for table.sort.
suntime -- Author: Martin Zwicknagl (zwim) -- Date: 2021-10-29 -- The current source code of this file can be found on https://github.com/zwim/suntime.
time A runtime optimized module to compare and do simple arithmetic with fixed point time values (which are called fts in here).
ui.bidi Bidirectional text and UI mirroring setup and helpers.
ui.data.css_tweaks CSS tweaks must have the following attributes: - id: unique ID identifying this tweak, to be stored in settings - title: menu item title (must not be too long) - css: stylesheet text to append to external stylesheet They may have the following optional attributes: - description: text displayed when holding on menu item - priority: higher numbers are appended after lower numbers (if not specified, default to 0) - conflictswith: a string with the id of another tweak that should be disabled when this tweak is enabled, or an array/table of tweaks ids, or a function(otherid) return true for ids conflicting.
ui.data.keyboardlayouts.generic_ime Generic input method engine --
ui.data.keyboardlayouts.ja_keyboard Japanese 12-key flick keyboard layout, modelled after Android's flick keyboard.
ui.data.keyboardlayouts.ja_keyboard_keys
ui.data.keyboardlayouts.ko_KR_helper
ui.data.keyboardlayouts.zh_keyboard Chinese stroke-based input method for Lua/KOReader.
ui.data.optionsutil This module contains miscellaneous helper functions for the creoptions and koptoptions.
ui.downloadmgr This module displays a PathChooser widget to choose a download directory.
ui.event Events are messages that are passed through the widget tree.
ui.font Font module.
ui.geometry Utilities for 2D geometry.
ui.hook_container HookContainer allows listeners to register and unregister a hook for speakers to execute.
ui.menusorter This module is responsible for constructing the KOReader menu based on a list of menu_items and a separate menu order.
ui.network.wpa_supplicant WPA client helper for Kobo.
ui.otamanager Checks for updates on the specified nightly build server.
ui.plugin.background_task_plugin BackgroundTaskPlugin creates a plugin with a switch to enable or disable it and executes a background task.
ui.plugin.switch_plugin SwitchPlugin creates a plugin with a switch to enable or disable it.
ui.quickstart This module is responsible for generating the quickstart guide.
ui.renderimage Image rendering module.
ui.rendertext Text rendering module.
ui.size This module provides a standardized set of sizes for use in widgets.
ui.translator This module translates text using Google Translate.
ui.trapper Trapper module: provides methods for simple interaction with UI, without the need for explicit callbacks, for use by linear jobs between their steps.
ui.uimanager This module manages widgets.
ui.viewhtml This module shows HTML code and CSS content from crengine documents.
ui.widget.bboxwidget BBoxWidget shows a bbox for page cropping.
ui.widget.button A button widget that shows text or an icon and handles callback when tapped.
ui.widget.buttondialog A button dialog widget that shows a grid of buttons.
ui.widget.checkbutton Button widget that shows a checkmark () when checked and an empty box () when unchecked.
ui.widget.checkmark Widget that shows a checkmark (), an empty box () or nothing of the same size.
ui.widget.confirmbox Widget that shows a confirmation alert with a message and Cancel/OK buttons.
ui.widget.container.alphacontainer AlphaContainer will paint its content (a single widget) at the specified opacity level (0..1)
ui.widget.container.bottomcontainer BottomContainer contains its content (1 widget) at the bottom of its own dimensions
ui.widget.container.centercontainer CenterContainer centers its content (1 widget) within its own dimensions
ui.widget.container.framecontainer A FrameContainer is some graphics content (1 widget) that is surrounded by a frame
ui.widget.container.inputcontainer An InputContainer is a WidgetContainer that handles user input events including multi touches and key presses.
ui.widget.container.leftcontainer LeftContainer aligns its content (1 widget) at the left of its own dimensions
ui.widget.container.movablecontainer A MovableContainer can have its content moved on screen with Swipe/Hold/Pan.
ui.widget.container.rightcontainer RightContainer aligns its content (1 widget) at the right of its own dimensions
ui.widget.container.scrollablecontainer ScrollableContainer allows scrolling its content (1 widget) within its own dimensions

This scrollable container needs to be known as widget.cropping_widget in the widget using it that is passed to UIManager:show() for UIManager to ensure proper interception of inner widget self-repainting/invert (mostly used when flashing for UI feedback that we want to limit to the cropped area).

ui.widget.container.topcontainer TopContainer contains its content (1 widget) at the top of its own dimensions
ui.widget.container.underlinecontainer An UnderlineContainer is a WidgetContainer that is able to paint a line under its child node.
ui.widget.container.widgetcontainer WidgetContainer is a container for one or multiple Widgets.
ui.widget.datetimewidget Widget for setting the date or time.
ui.widget.eventlistener The EventListener is an interface that handles events.
ui.widget.horizontalgroup A layout widget that puts objects besides each other.
ui.widget.htmlboxwidget HTML widget (without scroll bars).
ui.widget.iconbutton Button with a big icon image! Designed for touch devices.
ui.widget.iconwidget
ui.widget.imageviewer ImageViewer displays an image with some simple manipulation options.
ui.widget.imagewidget ImageWidget shows an image from a file or memory.
ui.widget.infomessage Widget that displays an informational message.
ui.widget.inputdialog Widget for taking user input.
ui.widget.keyboardlayoutdialog This widget displays a keyboard layout dialog.
ui.widget.keyvaluepage Widget that presents a multi-page to show key value pairs.
ui.widget.linewidget Widget that displays a line.
ui.widget.listview Widget component that handles pagination for a list of items.
ui.widget.multiconfirmbox Widget that shows a message and cancel/choice1/choice2 buttons
ui.widget.multiinputdialog Widget for taking multiple user inputs.
ui.widget.networksetting Network setting widget.
ui.widget.notification Widget that displays a tiny notification at the top of the screen.
ui.widget.numberpickerwidget A customizable number picker.
ui.widget.openwithdialog This widget displays an open with dialog.
ui.widget.overlapgroup A layout widget that puts objects above each other.
ui.widget.progresswidget Widget for displaying progress bar.
ui.widget.qrmessage Widget that displays a qr code.
ui.widget.radiobuttontable A button table to be used in dialogs and widgets.
ui.widget.radiobuttonwidget Widget that allows selecting an entry from a RadioButton list.
ui.widget.scrollhtmlwidget HTML widget with vertical scroll bar.
ui.widget.scrolltextwidget Text widget with vertical scroll bar.
ui.widget.textboxwidget A TextWidget that handles long text wrapping
ui.widget.textviewer Displays some text in a scrollable view.
ui.widget.textwidget A TextWidget puts a string on a single line.
ui.widget.toggleswitch Displays a button that toggles between states.
ui.widget.touchmenu TouchMenu widget for hierarchical menus.
ui.widget.trapwidget Invisible full screen widget for catching UI events.
ui.widget.verticalgroup A layout widget that puts objects under each other.
ui.widget.widget This is a generic Widget interface, which is the base class for all other widgets.
userpatch Allows applying developer patches while running KOReader.
util This module contains miscellaneous helper functions for the KOReader frontend.
version This module helps with retrieving version information.

Topics

Collaborating_with_Git.md
DataStore.md
Development_guide.md
Events.md
Hacking.md
Porting.md
README.md
Unit_tests.md
generated by LDoc 1.5.0 Last updated 2024-12-19 07:44:17