Generate an ePub book from a simple plaintext descriptor
This library is used by
gen-epub-book itself for all its function and is therefore contains all necessary functions.
Options |> parse_descriptor() |> EPubBook::from_elements() |> EPubBook::normalise_paths() |> EPubBook::write_zip()
Exit values and possible errors:
1 - I/O error 2 - parsing error 3 - file not found 4 - file in wrong state 5 - incorrect amount of elements 6 - required element missing
gen-epub-book [OPTIONS] IN_FILE OUT_FILE
Generate an ePub book from a simple plaintext descriptor.
Print out more data. Default: false.
File to parse, must exist, must comply with the DESCRIPTOR FORMAT. Special case: '-' to read from stdin.
File to write the book to, parent directory needn't exist. Special case: '-' to write to stdout.
-S --separator <SEPARATOR>
Enable custom separator feature and set the separator. Default: ":".
-I --include [NAME=]PATH
Add an additional directory in which to search for files. Order-dependent. `NAME` is an optional name under which the files will be segregated. `PATH` is an existing directory.
The descriptor consists of multiple lines in the format "Key: Value", unknown keys are ignored, lines that don't match the format are ignored.
Required: yes Type: plaintext Value: e-book's title Amount: 1
Required: no Type: file path Value: relative path to (X)HTML chunk Amount: any Remarks: see ADDITIONAL CONTENT PROCESSING
Required: no Type: (X)HTML Value: (X)HTML string Amount: any
Required: no Type: file path Value: relative path to image to include in e-book Amount: any
Required: no Type: file URL Value: URL of image to include in e-book Amount: any
Required: no Type: file path Value: relative path to image to use as e-book cover Amount: 0-1 Remarks: exclusive with Network-Cover
Required: no Type: file URL Value: URL to image to use as e-book cover Amount: 0-1 Remarks: exclusive with Cover
Required: yes Type: plaintext string Value: e-book's author Amount: 1
Required: yes Type: RFC3339-compliant date Value: e-book's authoring/publishing date Amount: 1 Remarks: see FREE DATE FORMAT FEATURE
Required: yes Type: BCP47-compliant language code Value: language used in e-book Amount: 1
When adding content using the
Content entry, the file will additinally be
searched for a comment specifying the its name in the TOC in this format:
<!-- ePub title: "TOC_NAME" -->
TOC_NAME is a string not containing the " character.
This will, on e-book readers, allow users to jump directly to the content represented by the document containing this entry.
With the -D/--free-date flag, you can enable the free date format feature.
The supported formats therewith are therefore:
- RFC3339 (e.g. "2017-02-08T15:30:18+01:00"),
- RFC2822 (e.g. "Wed, 08 Feb 2017 15:30:18 +0100"),
- Unix timestamp w/timezone (e.g. "1486564218+01:00").
Main functions doing actual work.
Module containing various utility functions.
Representation of the application's all configurable values.
Enum representing all possible ways the application can fail.