• Stars
    star
    1,210
  • Rank 38,721 (Top 0.8 %)
  • Language
    Python
  • License
    Other
  • Created over 9 years ago
  • Updated about 1 year ago

Reviews

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

Repository Details

The Standard Ebooks toolset for producing our ebook files.

About

A collection of tools Standard Ebooks uses to produce its ebooks, including basic setup of ebooks, text processing, and build tools.

Installing this toolset using pipx makes the se command line executable available. Its various commands are described below, or you can use se help to list them.

Installation

The toolset requires Python >= 3.7.

To install the toolset locally for development and debugging, see Installation for toolset developers.

Optionally, install Ace and the se build --check command will automatically run it as part of the checking process.

Ubuntu 20.04 (Trusty) users

# Install some pre-flight dependencies.
sudo apt install -y calibre default-jre git python3-dev python3-pip python3-venv

# Install pipx.
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# Install the toolset.
pipx install standardebooks

Optional: Install shell completions

# Install ZSH completions.
sudo ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/zsh/_se /usr/share/zsh/vendor-completions/_se && hash -rf && compinit

# Install Bash completions.
sudo ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/bash/se /usr/share/bash-completion/completions/se

# Install Fish completions.
sudo ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/fish/se $HOME/.config/fish/completions/se.fish

Fedora users

# Install some pre-flight dependencies.
sudo dnf install calibre git java-1.8.0-openjdk python3-devel

# Install pipx.
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# Install the toolset.
pipx install standardebooks

Optional: Install shell completions

# Install ZSH completions.
sudo ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/zsh/_se /usr/share/zsh/vendor-completions/_se && hash -rf && compinit

# Install Bash completions.
sudo ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/bash/se /usr/share/bash-completion/completions/se

# Install Fish completions.
sudo ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/fish/se $HOME/.config/fish/completions/se.fish

macOS users (up to macOS 12)

These instructions were tested on macOS 10.15 to 12, on Intel macs.

  1. Install the Homebrew package manager. Or, if you already have it installed, make sure it’s up to date:

    brew update
  2. Install dependencies:

    # Install some pre-flight dependencies.
    brew install cairo calibre git openjdk pipx python
    pipx ensurepath
    sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
    
    # Install the toolset.
    pipx install standardebooks
    
    # Optional: Bash users who have set up bash-completion via brew can install tab completion.
    ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/bash/se $(brew --prefix)/etc/bash_completion.d/se
    
    # Optional: Fish users can install tab completion.
    ln -s $HOME/.local/pipx/venvs/standardebooks/lib/python3.*/site-packages/se/completions/fish/se $HOME/.config/fish/completions/se.fish

OpenBSD 6.6 Users

These instructions were tested on OpenBSD 6.6, but may also work on the 6.5 release as well.

  1. Create a text file to feed into pkg_add called ~/standard-ebooks-packages. It should contain the following:

    py3-pip--
    py3-virtualenv--
    py3-gitdb--
    jdk--%11
    calibre--
    git--
  2. Install dependencies using doas pkg_add -ivl ~/standard-ebooks-packages. Follow linking instructions provided by pkg_add to save keystrokes, unless you want to have multiple python versions and pip versions. In my case, I ran doas ln -sf /usr/local/bin/pip3.7 /usr/local/bin/pip.

  3. Add ~/.local/bin to your path.

  4. Run pip install --user pipx

  5. If you’re using ksh from base and have already added ~/.local/bin, you can skip pipx ensurepath because this step is for bash users.

  6. The rest of the process is similar to that used on other platforms:

    # Install the toolset.
    pipx install standardebooks

Installation for toolset developers

If you want to work on the toolset source, it’s helpful to tell pipx to install the package in “editable” mode. This will allow you to edit the source of the package live and see changes immediately, without having to uninstall and re-install the package.

To do that, follow the general installation instructions above; but instead of doing pipx install standardebooks, do the following:

git clone https://github.com/standardebooks/tools.git
pipx install --editable ./tools

Now the se binary is in your path, and any edits you make to source files in the tools/ directory are immediately reflected when executing the binary.

Running commands on the entire corpus

As a developer, it’s often useful to run an se command like se lint or se build on the entire corpus for testing purposes. This can be very time-consuming in a regular invocation (like se lint /path/to/ebook/repos/*), because each argument is processed sequentially. Instead of waiting for a single invocation to process all of its arguments sequentially, use GNU Parallel to start multiple invocations in parallel, with each one processing a single argument. For example:

# Slow, each argument is processed in sequence
se lint /path/to/ebook/repos/*

# Fast, multiple invocations each process a single argument in parallel
export COLUMNS; parallel --keep-order se lint ::: /path/to/ebook/repos/*

The toolset tries to detect when it’s being invoked from parallel, and it adjusts its output to accomodate.

We export COLUMNS because se lint needs to know the width of the terminal so that it can format its tabular output correctly. We pass the --keep-order flag to output results in the order we passed them in, which is useful if comparing the results of multiple runs.

Linting with pylint and mypy

Before we can use pylint or mypy on the toolset source, we have to inject them (and additional typings) into the venv pipx created for the standardebooks package:

pipx inject standardebooks pylint==2.17.3 mypy==1.2.0 types-requests==2.28.11.17 types-setuptools==67.7.0.0

Then make sure to call the pylint and mypy binaries that pipx installed in the standardebooks venv, not any other globally-installed binaries:

cd /path/to/tools/repo
$HOME/.local/pipx/venvs/standardebooks/bin/pylint tests/*.py se

Testing with pytest

Similar to pylint, the pytest command can be injected into the venv pipx created for the standardebooks package:

pipx inject standardebooks pytest==7.3.1

The tests are executed by calling pytest from the top level or your tools repo:

cd /path/to/tools/repo
$HOME/.local/pipx/venvs/standardebooks/bin/pytest

Adding tests

Tests are added under the tests directory. Most of the tests are based around the idea of having “golden” output files. Each command is run against a set of input files and then the resulting output files are compared against the resulting golden files. The test fails if the output files do not match the golden files. The data files can be found in the tests/data directory.

A custom test flag --save-golden-files has been added to automatically update the the golden files for the tests (in an out directory for the command).

The usual test development process is:

  1. Update in files with new test data and/or change the command implementation.
  2. Run pytest and see some tests fail.
  3. Run pytest --save-golden-files and then diff the data directory to ensure that the out files are as expected.
  4. Commit changes (including new out contents).

Another custom test flag --save-new-draft is also available. This flag is used to update the book skeleton, generated by the se create-draft command, that is used as input for the other tests. Whenever the draft contents change (e.g. edits to the core.css file) the tests/data/draft files should be updated by calling pytest --save-new-draft.

Code style

  • In general we follow a relaxed version of PEP 8. In particular, we use tabs instead of spaces, and there is no line length limit.

  • Always use the regex module instead of the re module.

Help wanted

We need volunteers to take the lead on the following goals:

  • Add more test cases to the test framework.

  • Figure out if it’s possible to install Bash/ZSH completions using setup.py, without root; this may not be possible? If it’s not possible, we need to know that too.

  • Writing installation instructions for Bash and ZSH completions for MacOS.

  • Currently the toolset requires the whole Calibre package, which is very big, but it’s only used to convert epub to azw3. Can we inline Calibre’s azw3 conversion code into our ./vendor/ directory, to avoid having to install the entire Calibre package as a big dependency? If so, how do we keep it updated as Calibre evolves?

  • Over the years, ./se/se_epub_build.py and ./se/se_epub_lint.py have evolved to become very large and unwieldy. Is there a better, clearer way to organize this code?

Tool descriptions

  • se british2american

    Try to convert British quote style to American quote style in DIRECTORY/src/epub/text/.

    Quotes must already be typogrified using the se typogrify tool.

    This script isn’t perfect; proofreading is required, especially near closing quotes near to em-dashes.

  • se build

    Build an ebook from a Standard Ebook source directory.

  • se build-ids

    Change ID attributes for non-sectioning content to their expected values across the entire ebook. IDs must be globally unique and correctly referenced, and the ebook spine must be complete.

  • se build-images

    Build ebook cover and titlepage images in a Standard Ebook source directory and place the output in DIRECTORY/src/epub/images/.

  • se build-manifest

    Generate the <manifest> element for the given Standard Ebooks source directory and write it to the ebook’s metadata file.

  • se build-spine

    Generate the <spine> element for the given Standard Ebooks source directory and write it to the ebook’s metadata file.

  • se build-title

    Generate the title of an XHTML file based on its headings and update the file’s <title> element.

  • se build-toc

    Generate the table of contents for the ebook’s source directory and update the ToC file.

  • se clean

    Prettify and canonicalize individual XHTML, SVG, or CSS files, or all XHTML, SVG, or CSS files in a source directory.

  • se compare-versions

    Use Firefox to render and compare XHTML files in an ebook repository. Run on a dirty repository to visually compare the repository’s dirty state with its clean state. If a file renders differently, place screenshots of the new, original, and diff (if available) renderings in the current working directory. A file called diff.html is created to allow for side-by-side comparisons of original and new files.

  • se create-draft

    Create a skeleton of a new Standard Ebook.

  • se css-select

    Print the results of a CSS selector evaluated against a set of XHTML files.

  • se dec2roman

    Convert a decimal number to a Roman numeral.

  • se extract-ebook

    Extract an .epub, .mobi, or .azw3 ebook into ./FILENAME.extracted/ or a target directory.

  • se find-mismatched-dashes

    Find words with mismatched dashes in a set of XHTML files. For example, extra-physical in one file and extraphysical in another.

  • se find-mismatched-diacritics

    Find words with mismatched diacritics in a set of XHTML files. For example, cafe in one file and café in another.

  • se find-unusual-characters

    Find characters outside a nominal expected range in a set of XHTML files. This can be useful to find transcription mistakes and mojibake.

  • se help

    List available SE commands.

  • se hyphenate

    Insert soft hyphens at syllable breaks in an XHTML file.

  • se interactive-replace

    Perform an interactive search and replace on a list of files using Python-flavored regex. The view is scrolled using the arrow keys, with alt to scroll by page in any direction. Basic Emacs (default) or Vim style navigation is available. The following actions are possible: (y) Accept replacement. (n) Reject replacement. (a) Accept all remaining replacements in this file. (r) Reject all remaining replacements in this file. (c) Center on match. (q) Save this file and quit.

  • se lint

    Check for various Standard Ebooks style errors.

  • se make-url-safe

    Make a string URL-safe.

  • se modernize-spelling

    Modernize spelling of some archaic words, and replace words that may be archaically compounded with a dash to a more modern spelling. For example, replace ash-tray with ashtray.

  • se prepare-release

    Calculate work word count, insert release date if not yet set, and update modified date and revision number.

  • se recompose-epub

    Recompose a Standard Ebooks source directory into a single HTML5 file, and print to standard output.

  • se renumber-endnotes

    Renumber all endnotes and noterefs sequentially from the beginning.

  • se roman2dec

    Convert a Roman numeral to a decimal number.

  • se semanticate

    Apply some scriptable semantics rules from the Standard Ebooks semantics manual to a Standard Ebook source directory.

  • se shift-endnotes

    Increment or decrement the specified endnote and all following endnotes by 1 or a specified amount.

  • se split-file

    Split an XHTML file into many files at all instances of <!--se:split-->, and include a header template for each file.

  • se titlecase

    Convert a string to titlecase.

  • se typogrify

    Apply some scriptable typography rules from the Standard Ebooks typography manual to a Standard Ebook source directory.

  • se unicode-names

    Display Unicode code points, descriptions, and links to more details for each character in a string. Useful for differentiating between different flavors of spaces, dashes, and invisible characters like word joiners.

  • se word-count

    Count the number of words in an HTML file and optionally categorize by length.

  • se xpath

    Print the results of an xpath expression evaluated against a set of XHTML files. The default namespace is removed.

What a Standard Ebooks source directory looks like

Many of these tools act on Standard Ebooks source directories. Such directories have a consistent minimal structure:

.  
|__ images/  
|   |__ cover.jpg  
|   |__ cover.source.jpg  
|   |__ cover.svg  
|   |__ titlepage.svg  
|       
|__ src/  
|   |__ META-INF/  
|   |   |__ container.xml  
|   |  
|   |__ epub/  
|   |   |__ css/  
|   |   |   |__ core.css  
|   |   |   |__ local.css  
|   |   |   |__ se.css  
|   |   |  
|   |   |__ images/  
|   |   |   |__ cover.svg  
|   |   |   |__ logo.svg  
|   |   |   |__ titlepage.svg  
|   |   |  
|   |   |__ text/  
|   |   |   |__ colophon.xhtml  
|   |   |   |__ imprint.xhtml  
|   |   |   |__ titlepage.xhtml  
|   |   |   |__ uncopyright.xhtml  
|   |   |  
|   |   |__ content.opf  
|   |   |__ onix.xml  
|   |   |__ toc.xhtml  
|   |  
|   |__ mimetype  
|  
|__ LICENSE.md  

./images/ contains source images for the cover and titlepages, as well as ebook-specific source images. Source images should be in their maximum available resolution, then compressed and placed in ./src/epub/images/ for distribution.

./src/epub/ contains the actual epub files.

More Repositories

1

web

The source code for the Standard Ebooks website.
PHP
234
star
2

manual

The source code for the Standard Ebooks Manual of Style.
Python
91
star
3

marcus-aurelius_meditations_george-long

Epub source for the Standard Ebooks edition of Meditations, by Marcus Aurelius. Translated by George Long
HTML
23
star
4

laozi_tao-te-ching_james-legge

Epub source for the Standard Ebooks edition of The Tao Te Ching, by Laozi. Translated by James Legge
HTML
14
star
5

philip-k-dick_short-fiction

Epub source for the Standard Ebooks edition of Short Fiction, by Philip K. Dick
HTML
11
star
6

anton-chekhov_short-fiction_constance-garnett

Epub source for the Standard Ebooks edition of Short Fiction, by Anton Chekhov. Translated by Constance Garnett
HTML
10
star
7

henry-david-thoreau_walden

Epub source for the Standard Ebooks edition of Walden, by Henry David Thoreau
HTML
7
star
8

hermann-hesse_siddhartha_gunther-olesch_anke-dreher_amy-coulter_stefan-langer_semyon-chaichenets

Epub source for the Standard Ebooks edition of Siddhartha, by Hermann Hesse. Translated by Gunther Olesch, Anke Dreher, Amy Coulter, Stefan Langer, and Semyon Chaichenets
HTML
6
star
9

james-joyce_dubliners

Epub source for the Standard Ebooks edition of Dubliners, by James Joyce
HTML
5
star
10

f-scott-fitzgerald_the-great-gatsby

Epub source for the Standard Ebooks edition of The Great Gatsby, by F. Scott Fitzgerald
HTML
5
star
11

standard-blackletter

A CC0 blackletter font created for the Standard Ebooks project.
5
star
12

edgar-allan-poe_short-fiction

Epub source for the Standard Ebooks edition of Short Fiction, by Edgar Allan Poe
HTML
5
star
13

leo-tolstoy_the-kingdom-of-god-is-within-you_leo-wiener

Epub source for the Standard Ebooks edition of The Kingdom of God Is Within You, by Leo Tolstoy. Translated by Leo Wiener
HTML
5
star
14

miguel-de-cervantes-saavedra_don-quixote_john-ormsby

Epub source for the Standard Ebooks edition of Don Quixote, by Miguel de Cervantes. Translated by John Ormsby
HTML
5
star
15

seneca_dialogues_aubrey-stewart

Epub source for the Standard Ebooks edition of Dialogues, by Seneca. Translated by Aubrey Stewart
HTML
5
star
16

upton-sinclair_the-jungle

Epub source for the Standard Ebooks edition of The Jungle, by Upton Sinclair
HTML
4
star
17

john-milton_paradise-lost

Epub source for the Standard Ebooks edition of Paradise Lost, by John Milton
HTML
4
star
18

w-somerset-maugham_the-moon-and-sixpence

Epub source for the Standard Ebooks edition of The Moon and Sixpence, by W. Somerset Maugham
HTML
4
star
19

john-stuart-mill_on-liberty

Epub source for the Standard Ebooks edition of On Liberty, by John Stuart Mill
HTML
4
star
20

friedrich-nietzsche_beyond-good-and-evil_helen-zimmern

Epub source for the Standard Ebooks edition of Beyond Good and Evil, by Friedrich Nietzsche. Translated by Helen Zimmern
HTML
4
star
21

lewis-carroll_alices-adventures-in-wonderland_john-tenniel

Epub source for the Standard Ebooks edition of Alice's Adventures in Wonderland, by Lewis Carroll. Illustrated by John Tenniel
HTML
4
star
22

robert-w-chambers_the-king-in-yellow

Epub source for the Standard Ebooks edition of The King in Yellow, by Robert W. Chambers
HTML
4
star
23

mary-shelley_frankenstein

Epub source for the Standard Ebooks edition of Frankenstein, by Mary Shelley
HTML
4
star
24

sun-tzu_the-art-of-war_lionel-giles

Epub source for the Standard Ebooks edition of The Art of War, by Sun Tzu. Translated by Lionel Giles
HTML
3
star
25

george-macdonald_the-princess-and-the-goblin

Epub source for the Standard Ebooks edition of The Princess and the Goblin, by George MacDonald
HTML
3
star
26

ambrose-bierce_the-devils-dictionary

Epub source for the Standard Ebooks edition of The Devil’s Dictionary, by Ambrose Bierce
HTML
3
star
27

arthur-conan-doyle_the-lost-world

Epub source for the Standard Ebooks edition of The Lost World, by Arthur Conan Doyle
HTML
3
star
28

bram-stoker_dracula

Epub source for the Standard Ebooks edition of Dracula, by Bram Stoker
HTML
3
star
29

a-a-milne_winnie-the-pooh

Epub source for the Standard Ebooks edition of Winnie the Pooh, by A. A. Milne
HTML
3
star
30

oscar-wilde_the-importance-of-being-earnest

Epub source for the Standard Ebooks edition of The Importance of Being Earnest, by Oscar Wilde
HTML
3
star
31

mark-twain_the-adventures-of-huckleberry-finn

Epub source for the Standard Ebooks edition of The Adventures of Huckleberry Finn, by Mark Twain
HTML
3
star
32

charles-babbage_passages-from-the-life-of-a-philosopher

Epub source for the Standard Ebooks edition of Passages from the Life of a Philosopher, by Charles Babbage
HTML
3
star
33

anthony-hope_the-prisoner-of-zenda

Epub source for the Standard Ebooks edition of The Prisoner of Zenda, by Anthony Hope
HTML
3
star
34

p-t-barnum_the-art-of-money-getting

Epub source for the Standard Ebooks edition of The Art of Money Getting, by P. T. Barnum
HTML
3
star
35

niccolo-machiavelli_the-prince_w-k-marriott

Epub source for the Standard Ebooks edition of The Prince, by Niccolò Machiavelli. Translated by W. K. Marriot
HTML
3
star
36

robert-louis-stevenson_treasure-island

Epub source for the Standard Ebooks edition of Treasure Island, by Robert Louis Stevenson
HTML
3
star
37

edgar-rice-burroughs_a-princess-of-mars

Epub source for the Standard Ebooks edition of A Princess of Mars, by Edgar Rice Burroughs
HTML
3
star
38

h-g-wells_the-time-machine

Epub source for the Standard Ebooks edition of The Time Machine, by H. G. Wells
HTML
3
star
39

g-k-chesterton_the-napoleon-of-notting-hill

Epub source for the Standard Ebooks edition of The Napoleon of Notting Hill, by G. K. Chesterton
HTML
2
star
40

jules-verne_journey-to-the-center-of-the-earth_f-a-malleson

Epub source for the Standard Ebooks edition of Journey to the Center of the Earth, by Jules Verne
HTML
2
star
41

jane-austen_pride-and-prejudice

Epub source for the Standard Ebooks edition of Pride and Prejudice, by Jane Austen
HTML
2
star
42

william-hazlitt_table-talk

Epub source for the Standard Ebooks edition of Table-Talk, by William Hazlitt
HTML
2
star
43

rudyard-kipling_the-jungle-book

Epub source for the Standard Ebooks edition of The Jungle Book, by Rudyard Kipling
HTML
2
star
44

h-p-lovecraft_short-fiction

Epub source for the Standard Ebooks edition of Short Fiction, by H. P. Lovecraft
HTML
2
star
45

t-s-eliot_poetry

Epub source for the Standard Ebooks edition of Poetry, by T. S. Eliot
HTML
2
star
46

david-lindsay_a-voyage-to-arcturus

Epub source for the Standard Ebooks edition of A Voyage to Arcturus, by David Lindsay
HTML
2
star
47

charlotte-bronte_jane-eyre

Epub source for the Standard Ebooks edition of Jane Eyre: An Autobiography, by Charlotte Brontë
HTML
2
star
48

joseph-conrad_heart-of-darkness

Epub source for the Standard Ebooks edition of Heart of Darkness, by Joseph Conrad
HTML
2
star
49

jack-london_white-fang

Epub source for the Standard Ebooks edition of White Fang, by Jack London
HTML
2
star
50

charles-dickens_oliver-twist

Epub source for the Standard Ebooks edition of Oliver Twist, by Charles Dickens
HTML
2
star
51

thomas-bulfinch_bulfinchs-mythology

Epub source for the Standard Ebooks edition of Bulfinch’s Mythology, by Thomas Bulfinch
HTML
2
star
52

herman-melville_moby-dick

Epub source for the Standard Ebooks edition of Moby Dick, by Herman Melville
HTML
2
star
53

gaston-leroux_the-phantom-of-the-opera_alexander-teixeira-de-mattos

Epub source for the Standard Ebooks edition of The Phantom of the Opera, by Gaston Leroux. Translated by Alexander Teixeira de Mattos.
HTML
2
star
54

george-meredith_the-shaving-of-shagpat

Epub source for the Standard Ebooks edition of The Shaving of Shagpat, by George Meredith
HTML
2
star
55

g-k-chesterton_the-innocence-of-father-brown

Epub source for the Standard Ebooks edition of The Innocence of Father Brown, by G. K. Chesterton
HTML
2
star
56

william-makepeace-thackeray_the-luck-of-barry-lyndon

Epub source for the Standard Ebooks edition of The Luck of Barry Lyndon, by William Makepeace Thackeray
HTML
2
star
57

sublime-text-se-plugin

A Sublime Text plugin to make several helpful Standard Ebooks commands available.
Python
2
star
58

agatha-christie_the-murder-on-the-links

Epub source for the Standard Ebooks edition of The Murder on the Links, by Agatha Christie
HTML
2
star
59

john-bunyan_the-pilgrims-progress

Epub source for the Standard Ebooks edition of The Pilgrim’s Progress, by John Bunyan
HTML
2
star
60

james-stephens_irish-fairy-tales

Epub source for the Standard Ebooks edition of Irish Fairy Tales, by James Stephens
HTML
2
star
61

thomas-carlyle_sartor-resartus

Epub source for the Standard Ebooks edition of Sartor Resartus, by Thomas Carlyle
HTML
2
star
62

emily-bronte_wuthering-heights

Epub source for the Standard Ebooks edition of Wuthering Heights, by Emily Brontë
HTML
2
star
63

voltaire_candide_the-modern-library

Epub source for the Standard Ebooks edition of Candide, by Voltaire. Translated by the Modern Library
HTML
2
star
64

lord-dunsany_the-gods-of-pegana

Epub source for the Standard Ebooks edition of The Gods of Pegāna, by Lord Dunsany
HTML
2
star
65

benjamin-franklin_the-autobiography-of-benjamin-franklin

Epub source for the Standard Ebooks edition of The Autobiography of Benjamin Franklin, by Benjamin Franklin
HTML
2
star
66

h-g-wells_the-war-of-the-worlds

Epub source for the Standard Ebooks edition of The War of the Worlds, by H. G. Wells
HTML
2
star
67

mark-twain_the-adventures-of-tom-sawyer

Epub source for the Standard Ebooks edition of The Adventures of Tom Sawyer, by Mark Twain
HTML
2
star
68

fyodor-dostoevsky_the-brothers-karamazov_constance-garnett

Epub source for the Standard Ebooks edition of The Brothers Karamazov, by Fyodor Dostoevsky. Translated by Constance Garnett
HTML
2
star
69

christopher-marlowe_the-tragical-history-of-doctor-faustus

Epub source for the Standard Ebooks edition of The Tragical History of Doctor Faustus, by Christopher Marlowe
HTML
2
star
70

lewis-carroll_through-the-looking-glass_john-tenniel

Epub source for the Standard Ebooks edition of Through the Looking-Glass, by Lewis Carroll. Illustrated by John Tenniel
HTML
2
star
71

agatha-christie_the-mystery-of-the-blue-train

Epub source for the Standard Ebooks edition of The Mystery of the Blue Train, by Agatha Christie
HTML
2
star
72

h-g-wells_short-fiction

Epub source for the Standard Ebooks edition of Short Fiction, by H. G. Wells
HTML
2
star
73

robert-louis-stevenson_the-strange-case-of-dr-jekyll-and-mr-hyde

Epub source for the Standard Ebooks edition of The Strange Case of Dr. Jekyll and Mr. Hyde, by Robert Louis Stevenson
HTML
2
star
74

karl-marx_friedrich-engels_the-communist-manifesto_samuel-moore

Epub source for the Standard Ebooks edition of The Communist Manifesto, by karl-marx_friedrich-engels. Translated by samuel-moore
HTML
2
star
75

h-beam-piper_space-viking

Epub source for the Standard Ebooks edition of Space Viking, by H. Beam Piper
HTML
2
star
76

fyodor-dostoevsky_the-idiot_eva-m-martin

Epub source for the Standard Ebooks edition of The Idiot, by Fyodor Dostoevsky. Translated by Eva M. Martin
HTML
2
star
77

edgar-allan-poe_the-narrative-of-arthur-gordon-pym-of-nantucket

Epub source for the Standard Ebooks edition of The Narrative of Gordon Arthur Pym of Nantucket, by Edgar Allan Poe
HTML
2
star
78

mark-twain_a-connecticut-yankee-in-king-arthurs-court

Epub source for the Standard Ebooks edition of A Connecticut Yankee in King Arthur's Court, by Mark Twain
HTML
2
star
79

friedrich-nietzsche_thus-spake-zarathustra_thomas-common

Epub source for the Standard Ebooks edition of Thus Spake Zarathustra, by Friedrich Nietzsche. Translated by Thomas Common
HTML
2
star
80

julius-caesar_commentaries-on-the-gallic-war_w-a-mcdevitte_w-s-bohn

Epub source for the Standard Ebooks edition of Commentaries on the Gallic War, by Julius Caesar. Translated by W. A. McDevitte and W. S. Bohn
HTML
2
star
81

f-scott-fitzgerald_this-side-of-paradise

Epub source for the Standard Ebooks edition of This Side of Paradise, by F. Scott Fitzgerald
HTML
2
star
82

arthur-conan-doyle_the-adventures-of-sherlock-holmes

Epub source for the Standard Ebooks edition of The Adventures of Sherlock Holmes, by Arthur Conan Doyle
HTML
2
star
83

philip-james-bailey_festus

Epub source for the Standard Ebooks edition of Festus, by Philip James Bailey
HTML
1
star
84

alfred-lord-tennyson_idylls-of-the-king

Epub source for the Standard Ebooks edition of Idylls of the King, by Alfred, Lord Tennyson
HTML
1
star
85

jack-london_the-call-of-the-wild

Epub source for the Standard Ebooks edition of The Call of the Wild, by Jack London
HTML
1
star
86

laurence-sterne_the-life-and-opinions-of-tristram-shandy-gentleman

Epub source for the Standard Ebooks edition of The Life and Opinions of Tristram Shandy, Gentleman, by Laurence Sterne
HTML
1
star
87

jonathan-swift_gullivers-travels

Epub source for the Standard Ebooks edition of Gulliver’s Travels, by Jonathan Swift
HTML
1
star
88

h-beam-piper_little-fuzzy

Epub source for the Standard Ebooks edition of Little Fuzzy, by H. Beam Piper
HTML
1
star
89

ameen-rihani_poetry

Epub source for the Standard Ebooks edition of Poetry, by Ameen Rihani
HTML
1
star
90

william-makepeace-thackeray_vanity-fair

Epub source for the Standard Ebooks edition of Vanity Fair, by William Makepeace Thackeray
HTML
1
star
91

anton-chekhov_the-duel_constance-garnett

Epub source for the Standard Ebooks edition of The Duel, by Anton Chekhov. Translated by Constance Garnett
HTML
1
star
92

leo-tolstoy_anna-karenina_constance-garnett

Epub source for the Standard Ebooks edition of Anna Karenina, by Leo Tolstoy. Translated by Constance Garnett
HTML
1
star
93

robert-e-howard_short-fiction

Epub source for the Standard Ebooks edition of Short Fiction, by Robert E. Howard
HTML
1
star
94

franklin-w-dixon_the-house-on-the-cliff

Epub source for the Standard Ebooks edition of The House on the Cliff, by Franklin W. Dixon
HTML
1
star
95

charles-kingsley_the-water-babies

Epub source for the Standard Ebooks edition of The Water-Babies, by Charles Kingsley
HTML
1
star
96

charles-dickens_david-copperfield

Epub source for the Standard Ebooks edition of David Copperfield, by Charles Dickens
HTML
1
star
97

g-k-chesterton_the-wisdom-of-father-brown

Epub source for the Standard Ebooks edition of The Wisdom of Father Brown, by G. K. Chesterton
HTML
1
star
98

george-eliot_daniel-deronda

Epub source for the Standard Ebooks edition of Daniel Deronda, by George Eliot
HTML
1
star
99

erskine-childers_the-riddle-of-the-sands

Epub source for the Standard Ebooks edition of The Riddle of the Sands, by Erskine Childers
HTML
1
star
100

sinclair-lewis_main-street

Epub source for the Standard Ebooks edition of Main Street, by Sinclair Lewis
HTML
1
star