Crate gen_epub_book

Crate gen_epub_book 

Source
Expand description

Generate an ePub book from a simple plaintext descriptor

§Library doc

This library is used by gen-epub-book itself for all its function and is therefore contains all necessary functions.

§Data flow

Options
|> parse_descriptor()
|> EPubBook::from_elements()
|> EPubBook::normalise_paths()
|> EPubBook::write_zip()

§Executable manpage

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

§SYNOPSIS

gen-epub-book [OPTIONS] IN_FILE OUT_FILE

§DESCRIPTION

Generate an ePub book from a simple plaintext descriptor.

§OPTIONS

-v –verbose

Print out more data.

Default: false.

IN_FILE

File to parse, must exist, must comply with the DESCRIPTOR FORMAT.

Special case: '-' to read from stdin.

OUT_FILE

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.

§DESCRIPTOR FORMAT

The descriptor consists of multiple lines in the format “Key: Value”, unknown keys are ignored, lines that don’t match the format are ignored.

Name

Required: yes
Type: plaintext
Value: e-book's title
Amount: 1

Content

Required: no
Type: file path
Value: relative path to (X)HTML chunk
Amount: any
Remarks: see ADDITIONAL CONTENT PROCESSING

String-Content

Required: no
Type: (X)HTML
Value: (X)HTML string
Amount: any

Image-Content

Required: no
Type: file path
Value: relative path to image to include in e-book
Amount: any

Network-Image-Content

Required: no
Type: file URL
Value: URL of image to include in e-book
Amount: any

Cover

Required: no
Type: file path
Value: relative path to image to use as e-book cover
Amount: 0-1
Remarks: exclusive with Network-Cover

Network-Cover

Required: no
Type: file URL
Value: URL to image to use as e-book cover
Amount: 0-1
Remarks: exclusive with Cover

Author

Required: yes
Type: plaintext string
Value: e-book's author
Amount: 1

Date

Required: yes
Type: RFC3339-compliant date
Value: e-book's authoring/publishing date
Amount: 1
Remarks: see FREE DATE FORMAT FEATURE

Language

Required: yes
Type: BCP47-compliant language code
Value: language used in e-book
Amount: 1

§ADDITIONAL CONTENT PROCESSING

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" -->

Where 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.

Optional.

§FREE DATE FORMAT FEATURE

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”).

Modules§

ops
Main functions doing actual work.
util
Module containing various utility functions.

Structs§

Options
Representation of the application’s all configurable values.

Enums§

Error
Enum representing all possible ways the application can fail.