From f9fd6c8a027b1321893bfe67aec76d82e9429947 Mon Sep 17 00:00:00 2001 From: Alex Cabal Date: Thu, 23 Jun 2022 15:03:52 -0500 Subject: [PATCH] Further refinment to OPDS/RSS generation and also add Atom feeds --- .gitignore | 4 + lib/AtomFeed.php | 76 ++- lib/Feed.php | 13 +- lib/Formatter.php | 4 +- lib/OpdsAcquisitionFeed.php | 11 +- lib/OpdsFeed.php | 20 +- lib/OpdsNavigationEntry.php | 4 +- lib/OpdsNavigationFeed.php | 13 +- lib/RssFeed.php | 44 +- scripts/deploy-ebook-to-www | 9 +- scripts/generate-feeds | 115 ++-- templates/AtomFeed.php | 50 ++ templates/OpdsAcquisitionEntry.php | 43 +- templates/OpdsAcquisitionFeed.php | 11 +- templates/OpdsNavigationFeed.php | 9 +- templates/RssFeed.php | 3 +- www/atom/new-releases.xml | 917 ++++++++--------------------- www/atom/style.php | 83 +++ www/css/core.css | 17 +- www/feeds/index.php | 76 ++- www/opds/search.php | 24 +- www/opds/style.php | 4 +- www/rss/style.php | 42 +- 23 files changed, 733 insertions(+), 859 deletions(-) create mode 100644 templates/AtomFeed.php create mode 100644 www/atom/style.php diff --git a/.gitignore b/.gitignore index fed117e7..b3bac6ea 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,11 @@ ebooks/* www/ebooks/* www/images/covers/* www/opds/*.xml +www/opds/subjects/*.xml www/rss/*.xml +www/rss/subjects/*.xml +www/atom/*.xml +www/atom/subjects/*.xml vendor/ composer.lock .vagrant/ diff --git a/lib/AtomFeed.php b/lib/AtomFeed.php index ec6f9b24..70fdfca1 100644 --- a/lib/AtomFeed.php +++ b/lib/AtomFeed.php @@ -8,39 +8,19 @@ use function Safe\unlink; class AtomFeed extends Feed{ public $Id; + public $Updated = null; + public $Subtitle = null; - public function __construct(string $url, string $title, string $path, array $entries){ - parent::__construct($url, $title, $path, $entries); - $this->Id = 'https://standardebooks.org' . $url; - } - - private function Sha1Entries(string $xmlString): string{ - try{ - $xml = new SimpleXMLElement(str_replace('xmlns=', 'ns=', $xmlString)); - $xml->registerXPathNamespace('dc', 'http://purl.org/dc/elements/1.1/'); - $xml->registerXPathNamespace('schema', 'http://schema.org/'); - - // Remove any elements, we don't want to compare against those. - foreach($xml->xpath('/feed/updated') ?: [] as $element){ - unset($element[0]); - } - - $output = ''; - foreach($xml->xpath('/feed/entry') ?: [] as $entry){ - $output .= $entry->asXml(); - } - - return sha1(preg_replace('/\s/ius', '', $output)); - } - catch(Exception $ex){ - // Invalid XML - return ''; - } + public function __construct(string $title, string $subtitle, string $url, string $path, array $entries){ + parent::__construct($title, $url, $path, $entries); + $this->Subtitle = $subtitle; + $this->Id = $url; + $this->Stylesheet = '/atom/style'; } protected function GetXmlString(): string{ if($this->XmlString === null){ - $feed = Template::AtomFeed(['id' => $this->Id, 'url' => $this->Url, 'title' => $this->Title, 'entries' => $this->Entries]); + $feed = Template::AtomFeed(['id' => $this->Id, 'url' => $this->Url, 'title' => $this->Title, 'subtitle' => $this->Subtitle, 'updatedTimestamp' => $this->Updated, 'entries' => $this->Entries]); $this->XmlString = $this->CleanXmlString($feed); } @@ -49,6 +29,44 @@ class AtomFeed extends Feed{ } protected function HasChanged(string $path): bool{ - return !is_file($path) || ($this->Sha1Entries($this->GetXmlString()) != $this->Sha1Entries(file_get_contents($path))); + if(!is_file($path)){ + return true; + } + + $currentEntries = []; + foreach($this->Entries as $entry){ + $obj = new StdClass(); + if(is_a($entry, 'Ebook')){ + $obj->Updated = $entry->ModifiedTimestamp->format('Y-m-d\TH:i:s\Z'); + $obj->Id = SITE_URL . $entry->Url; + } + else{ + $obj->Updated = $entry->Updated !== null ? $entry->Updated->format('Y-m-d\TH:i:s\Z') : ''; + $obj->Id = $entry->Id; + } + $currentEntries[] = $obj; + } + + $oldEntries = []; + try{ + $xml = new SimpleXMLElement(str_replace('xmlns=', 'ns=', file_get_contents($path))); + + foreach($xml->xpath('/feed/entry') ?: [] as $entry){ + $obj = new StdClass(); + $obj->Updated = $entry->updated; + $obj->Id = $entry->id; + $oldEntries[] = $obj; + } + } + catch(Exception $ex){ + // Invalid XML + return true; + } + + return $currentEntries != $oldEntries; + } + + public function Save(): void{ + parent::Save(); } } diff --git a/lib/Feed.php b/lib/Feed.php index 85088afc..2fba5088 100644 --- a/lib/Feed.php +++ b/lib/Feed.php @@ -12,7 +12,7 @@ class Feed{ public $Stylesheet = null; protected $XmlString = null; - public function __construct(string $url, string $title, string $path, array $entries){ + public function __construct(string $title, string $url, string $path, array $entries){ $this->Url = $url; $this->Title = $title; $this->Path = $path; @@ -38,7 +38,16 @@ class Feed{ return ''; } - function Save(): void{ + public function SaveIfChanged(): void{ + // Did we actually update the feed? If so, write to file and update the index + if($this->HasChanged($this->Path)){ + // Files don't match, save the file + $this->Updated = new DateTime(); + $this->Save(); + } + } + + public function Save(): void{ $feed = $this->GetXmlString(); file_put_contents($this->Path, $feed); diff --git a/lib/Formatter.php b/lib/Formatter.php index 932b8bd2..a05dfb34 100644 --- a/lib/Formatter.php +++ b/lib/Formatter.php @@ -33,10 +33,10 @@ class Formatter{ } public static function ToPlainText(?string $text): string{ - return htmlspecialchars(trim($text), ENT_QUOTES, 'UTF-8'); + return htmlspecialchars(trim($text), ENT_QUOTES, 'utf-8'); } public static function ToPlainXmlText(?string $text): string{ - return htmlspecialchars(trim($text), ENT_QUOTES|ENT_XML1, 'UTF-8'); + return htmlspecialchars(trim($text), ENT_QUOTES|ENT_XML1, 'utf-8'); } } diff --git a/lib/OpdsAcquisitionFeed.php b/lib/OpdsAcquisitionFeed.php index d9d9ba23..f06bb785 100644 --- a/lib/OpdsAcquisitionFeed.php +++ b/lib/OpdsAcquisitionFeed.php @@ -4,21 +4,16 @@ use Safe\DateTime; class OpdsAcquisitionFeed extends OpdsFeed{ public $IsCrawlable; - public function __construct(string $url, string $title, string $path, array $entries, ?OpdsNavigationFeed $parent, bool $isCrawlable = false){ - parent::__construct($url, $title, $path, $entries, $parent); + public function __construct(string $title, string $subtitle, string $url, string $path, array $entries, ?OpdsNavigationFeed $parent, bool $isCrawlable = false){ + parent::__construct($title, $subtitle, $url, $path, $entries, $parent); $this->IsCrawlable = $isCrawlable; } protected function GetXmlString(): string{ if($this->XmlString === null){ - $this->XmlString = $this->CleanXmlString(Template::OpdsAcquisitionFeed(['id' => $this->Id, 'url' => $this->Url, 'title' => $this->Title, 'parentUrl' => $this->Parent ? $this->Parent->Url : null, 'updatedTimestamp' => $this->Updated, 'isCrawlable' => $this->IsCrawlable, 'entries' => $this->Entries])); + $this->XmlString = $this->CleanXmlString(Template::OpdsAcquisitionFeed(['id' => $this->Id, 'url' => $this->Url, 'title' => $this->Title, 'parentUrl' => $this->Parent ? $this->Parent->Url : null, 'updatedTimestamp' => $this->Updated, 'isCrawlable' => $this->IsCrawlable, 'subtitle' => $this->Subtitle, 'entries' => $this->Entries])); } return $this->XmlString; } - - public function Save(): void{ - $this->Updated = new DateTime(); - $this->SaveIfChanged(); - } } diff --git a/lib/OpdsFeed.php b/lib/OpdsFeed.php index 9f54d71d..5945914b 100644 --- a/lib/OpdsFeed.php +++ b/lib/OpdsFeed.php @@ -2,24 +2,26 @@ use function Safe\file_put_contents; class OpdsFeed extends AtomFeed{ - public $Updated = null; public $Parent = null; // OpdsNavigationFeed class - public function __construct(string $url, string $title, string $path, array $entries, ?OpdsNavigationFeed $parent){ - parent::__construct($url, $title, $path, $entries); + public function __construct(string $title, string $subtitle, string $url, string $path, array $entries, ?OpdsNavigationFeed $parent){ + parent::__construct($title, $subtitle, $url, $path, $entries); $this->Parent = $parent; $this->Stylesheet = '/opds/style'; } protected function SaveUpdatedTimestamp(string $entryId, DateTime $updatedTimestamp): void{ // Only save the updated timestamp for the given entry ID in this file - foreach($this->Entries as $entry){ - if($entry->Id == $entryId){ - $entry->Updated = $updatedTimestamp; + if(is_a($entry, 'OpdsNavigationEntry')){ + if($entry->Id == SITE_URL . $entryId){ + $entry->Updated = $updatedTimestamp; + } } } + $this->Updated = $updatedTimestamp; + $this->XmlString = null; file_put_contents($this->Path, $this->GetXmlString()); @@ -29,17 +31,19 @@ class OpdsFeed extends AtomFeed{ } } - protected function SaveIfChanged(): void{ + public function SaveIfChanged(): void{ // Did we actually update the feed? If so, write to file and update the index if($this->HasChanged($this->Path)){ // Files don't match, save the file and update the parent navigation feed with the last updated timestamp + $this->Updated = new DateTime(); + if($this->Parent !== null){ $this->Parent->SaveUpdatedTimestamp($this->Id, $this->Updated); } // Save our own file - parent::Save(); + $this->Save(); } } } diff --git a/lib/OpdsNavigationEntry.php b/lib/OpdsNavigationEntry.php index bed5023e..50f74dc4 100644 --- a/lib/OpdsNavigationEntry.php +++ b/lib/OpdsNavigationEntry.php @@ -8,8 +8,8 @@ class OpdsNavigationEntry{ public $Description; public $Title; - public function __construct(string $url, string $rel, string $type, ?DateTime $updated, string $title, string $description){ - $this->Id = 'https://standardebooks.org' . $url; + public function __construct(string $title, string $description, string $url, ?DateTime $updated, string $rel, string $type){ + $this->Id = SITE_URL . $url; $this->Url = $url; $this->Rel = $rel; $this->Type = $type; diff --git a/lib/OpdsNavigationFeed.php b/lib/OpdsNavigationFeed.php index db972d8f..80bd6a99 100644 --- a/lib/OpdsNavigationFeed.php +++ b/lib/OpdsNavigationFeed.php @@ -4,10 +4,8 @@ use Safe\DateTime; use function Safe\file_get_contents; class OpdsNavigationFeed extends OpdsFeed{ - public function __construct(string $url, string $title, string $path, array $entries, ?OpdsNavigationFeed $parent){ - parent::__construct($url, $title, $path, $entries, $parent); - - $this->Entries = $entries; + public function __construct(string $title, string $subtitle, string $url, string $path, array $entries, ?OpdsNavigationFeed $parent){ + parent::__construct($title, $subtitle, $url, $path, $entries, $parent); // If the file already exists, try to fill in the existing updated timestamps from the file. // That way, if the file has changed, we only update the changed entry, @@ -33,14 +31,9 @@ class OpdsNavigationFeed extends OpdsFeed{ protected function GetXmlString(): string{ if($this->XmlString === null){ - $this->XmlString = $this->CleanXmlString(Template::OpdsNavigationFeed(['id' => $this->Id, 'url' => $this->Url, 'title' => $this->Title, 'parentUrl' => $this->Parent ? $this->Parent->Url : null, 'updatedTimestamp' => $this->Updated, 'entries' => $this->Entries])); + $this->XmlString = $this->CleanXmlString(Template::OpdsNavigationFeed(['id' => $this->Id, 'url' => $this->Url, 'title' => $this->Title, 'parentUrl' => $this->Parent ? $this->Parent->Url : null, 'updatedTimestamp' => $this->Updated, 'subtitle' => $this->Subtitle, 'entries' => $this->Entries])); } return $this->XmlString; } - - public function Save(): void{ - $this->Updated = new DateTime(); - $this->SaveIfChanged(); - } } diff --git a/lib/RssFeed.php b/lib/RssFeed.php index 35e02b5f..1b3888df 100644 --- a/lib/RssFeed.php +++ b/lib/RssFeed.php @@ -2,8 +2,8 @@ class RssFeed extends Feed{ public $Description; - public function __construct(string $url, string $title, string $path, string $description, array $entries){ - parent::__construct($url, $title, $path, $entries); + public function __construct(string $title, string $description, string $url, string $path, array $entries){ + parent::__construct($title, $url, $path, $entries); $this->Description = $description; $this->Stylesheet = '/rss/style'; } @@ -17,4 +17,44 @@ class RssFeed extends Feed{ return $this->XmlString; } + + protected function HasChanged(string $path): bool{ + // RSS doesn't have information about when an item was updated, + // only when it was first published. So, we approximate on whether the feed + // has changed by looking at the length of the enclosed file. + // This can sometimes be the same even if the file has changed, but most of the time + // it also changes. + + if(!is_file($path)){ + return true; + } + + $currentEntries = []; + foreach($this->Entries as $entry){ + $obj = new StdClass(); + $obj->Size = (string)filesize(WEB_ROOT . $entry->EpubUrl); + $obj->Id = preg_replace('/^url:/ius', '', $entry->Identifier); + $currentEntries[] = $obj; + } + + $oldEntries = []; + try{ + $xml = new SimpleXMLElement(str_replace('xmlns=', 'ns=', file_get_contents($path))); + $xml->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); + foreach($xml->xpath('/rss/channel/item') ?: [] as $entry){ + $obj = new StdClass(); + foreach($entry->xpath('enclosure') ?: [] as $enclosure){ + $obj->Size = (string)$enclosure['length']; + } + $obj->Id = (string)$entry->guid; + $oldEntries[] = $obj; + } + } + catch(Exception $ex){ + // Invalid XML + return true; + } + + return $currentEntries != $oldEntries; + } } diff --git a/scripts/deploy-ebook-to-www b/scripts/deploy-ebook-to-www index 3503df79..2f0096f4 100755 --- a/scripts/deploy-ebook-to-www +++ b/scripts/deploy-ebook-to-www @@ -390,12 +390,9 @@ if [ "${feeds}" = "true" ]; then "${scriptsDir}/generate-feeds" --webroot "${webRoot}" --weburl "${webUrl}" - sudo chown --recursive se:committers "${webRoot}/www/opds/"* - sudo chmod --recursive 664 "${webRoot}/www/opds/"*.xml - sudo chmod --recursive 664 "${webRoot}/www/opds/"*/*.xml - sudo chown --recursive se:committers "${webRoot}/www/rss/"* - sudo chmod --recursive 664 "${webRoot}/www/rss/"*.xml - sudo chmod 775 "${webRoot}/www/opds/subjects" + sudo chown --recursive se:committers "${webRoot}"/www/{atom,rss,opds}/{*.xml,subjects} + sudo chmod --recursive 664 "${webRoot}"/www/{atom,rss,opds}/{*.xml,subjects/*.xml} + sudo chmod 775 "${webRoot}"/www/{atom,rss,opds}/subjects if [ "${verbose}" = "true" ]; then printf "Done.\n" diff --git a/scripts/generate-feeds b/scripts/generate-feeds index 0c1c26ab..57ef03c5 100755 --- a/scripts/generate-feeds +++ b/scripts/generate-feeds @@ -4,6 +4,7 @@ require_once('/standardebooks.org/web/lib/Core.php'); use function Safe\krsort; use function Safe\getopt; +use function Safe\mkdir; use function Safe\preg_replace; use function Safe\sort; @@ -19,6 +20,18 @@ $subjects = []; $ebooksBySubject = []; $ebooksPerNewestEbooksFeed = 30; +if(!is_dir(WEB_ROOT . '/opds/subjects')){ + mkdir(WEB_ROOT . '/opds/subjects'); +} + +if(!is_dir(WEB_ROOT . '/rss/subjects')){ + mkdir(WEB_ROOT . '/rss/subjects'); +} + +if(!is_dir(WEB_ROOT . '/atom/subjects')){ + mkdir(WEB_ROOT . '/atom/subjects'); +} + // Iterate over all ebooks to build the various feeds foreach($contentFiles as $path){ if($path == '') @@ -50,73 +63,97 @@ foreach($contentFiles as $path){ } } +krsort($newestEbooks); +$newestEbooks = array_slice($newestEbooks, 0, $ebooksPerNewestEbooksFeed); + $now = new DateTime(); // Create OPDS feeds $opdsRootEntries = [ new OpdsNavigationEntry( - '/opds/new-releases', - 'http://opds-spec.org/sort/new', - 'acquisition', - $now, 'Newest ' . number_format($ebooksPerNewestEbooksFeed) . ' Standard Ebooks', - 'A list of the ' . number_format($ebooksPerNewestEbooksFeed) . ' newest Standard Ebooks, most-recently-released first.'), - new OpdsNavigationEntry( - '/opds/subjects', - 'subsection', - 'navigation', + 'The ' . number_format($ebooksPerNewestEbooksFeed) . ' latest Standard Ebooks, most-recently-released first.', + '/opds/new-releases', $now, + 'http://opds-spec.org/sort/new', + 'acquisition' + ), + new OpdsNavigationEntry( 'Standard Ebooks by Subject', - 'Browse Standard Ebooks by subject.'), - new OpdsNavigationEntry( - '/opds/all', - 'http://opds-spec.org/crawlable', - 'acquisition', + 'Browse Standard Ebooks by subject.', + '/opds/subjects', $now, + 'subsection', + 'navigation'), + new OpdsNavigationEntry( 'All Standard Ebooks', - 'A list of all Standard Ebooks, most-recently-updated first. This is a Complete Acquisition Feed as defined in OPDS 1.2 §2.5.') + 'All Standard Ebooks, most-recently-updated first. This is a Complete Acquisition Feed as defined in OPDS 1.2 §2.5.', + '/opds/all', + $now, + 'http://opds-spec.org/crawlable', + 'acquisition') ]; -$opdsRoot = new OpdsNavigationFeed('/opds', 'Standard Ebooks', WEB_ROOT . '/opds/index.xml', $opdsRootEntries, null); -$opdsRoot->Save(); +$opdsRoot = new OpdsNavigationFeed('Standard Ebooks', 'The navigation root for the Standard Ebooks OPDS feed.', '/opds', WEB_ROOT . '/opds/index.xml', $opdsRootEntries, null); +$opdsRoot->SaveIfChanged(); // Create the subjects navigation document sort($subjects); $subjectNavigationEntries = []; foreach($subjects as $subject){ - $summary = number_format(sizeof($ebooksBySubject[$subject])) . ' Standard Ebook'; - if(sizeof($ebooksBySubject[$subject]) != 1){ - $summary .= 's'; - } - $summary .= ' tagged with “' . strtolower($subject) . ',” most-recently-released first.'; - - // We leave the updated timestamp blank, as it will be filled in when we generate the individual feeds - $subjectNavigationEntries[] = new OpdsNavigationEntry('/opds/subjects/' . Formatter::MakeUrlSafe($subject), 'subsection', 'navigation', $now, $subject, $summary); + $subjectNavigationEntries[] = new OpdsNavigationEntry($subject, 'Standard Ebooks tagged with “' . strtolower($subject) . ',” most-recently-released first.', '/opds/subjects/' . Formatter::MakeUrlSafe($subject), $now, 'subsection', 'navigation'); } -$subjectsFeed = new OpdsNavigationFeed('/opds/subjects', 'Standard Ebooks by Subject', WEB_ROOT . '/opds/subjects/index.xml', $subjectNavigationEntries, $opdsRoot); -$subjectsFeed->Save(); +$subjectsFeed = new OpdsNavigationFeed('Standard Ebooks by Subject', 'Browse Standard Ebooks by subject.', '/opds/subjects', WEB_ROOT . '/opds/subjects/index.xml', $subjectNavigationEntries, $opdsRoot); +$subjectsFeed->Subtitle = 'Browse Standard Ebooks by subject.'; +$subjectsFeed->SaveIfChanged(); // Now generate each individual subject feed -foreach($ebooksBySubject as $subject => $ebooks){ - krsort($ebooks); - $subjectFeed = new OpdsAcquisitionFeed('/opds/subjects/' . Formatter::MakeUrlSafe((string)$subject), (string)$subject, WEB_ROOT . '/opds/subjects/' . Formatter::MakeUrlSafe((string)$subject) . '.xml', $ebooks, $subjectsFeed); - $subjectFeed->Save(); +foreach($subjectNavigationEntries as $subjectNavigationEntry){ + krsort($ebooksBySubject[$subjectNavigationEntry->Title]); + $subjectFeed = new OpdsAcquisitionFeed($subjectNavigationEntry->Title . ' Ebooks', $subjectNavigationEntry->Description, '/opds/subjects/' . Formatter::MakeUrlSafe($subjectNavigationEntry->Title), WEB_ROOT . '/opds/subjects/' . Formatter::MakeUrlSafe($subjectNavigationEntry->Title) . '.xml', $ebooksBySubject[$subjectNavigationEntry->Title], $subjectsFeed); + $subjectFeed->SaveIfChanged(); } // Create the 'all' feed krsort($allEbooks); -$allFeed = new OpdsAcquisitionFeed('/opds/all', 'All Standard Ebooks', WEB_ROOT . '/opds/all.xml', $allEbooks, $opdsRoot, true); -$allFeed->Save(); +$allFeed = new OpdsAcquisitionFeed('All Standard Ebooks', 'All Standard Ebooks, most-recently-updated first. This is a Complete Acquisition Feed as defined in OPDS 1.2 §2.5.', '/opds/all', WEB_ROOT . '/opds/all.xml', $allEbooks, $opdsRoot, true); +$allFeed->SaveIfChanged(); // Create the 'newest' feed -krsort($newestEbooks); -$newestEbooks = array_slice($newestEbooks, 0, $ebooksPerNewestEbooksFeed); -$newestFeed = new OpdsAcquisitionFeed('/opds/new-releases', 'Newest ' . number_format($ebooksPerNewestEbooksFeed) . ' Standard Ebooks', WEB_ROOT . '/opds/new-releases.xml', $newestEbooks, $opdsRoot); -$newestFeed->Save(); +$newestFeed = new OpdsAcquisitionFeed('Newest ' . number_format($ebooksPerNewestEbooksFeed) . ' Standard Ebooks', 'The ' . number_format($ebooksPerNewestEbooksFeed) . ' latest Standard Ebooks, most-recently-released first.', '/opds/new-releases', WEB_ROOT . '/opds/new-releases.xml', $newestEbooks, $opdsRoot); +$newestFeed->SaveIfChanged(); // Now create RSS feeds // Create the 'newest' feed -$newestFeed = new RssFeed('/rss/new-releases', 'Newest ' . number_format($ebooksPerNewestEbooksFeed) . ' Standard Ebooks', WEB_ROOT . '/rss/new-releases.xml', 'A list of the ' . number_format($ebooksPerNewestEbooksFeed) . ' latest Standard Ebooks ebook releases, most-recently-released first.', $newestEbooks); -$newestFeed->Save(); +$newestRssFeed = new RssFeed('Standard Ebooks - Newest Ebooks', 'The ' . number_format($ebooksPerNewestEbooksFeed) . ' latest Standard Ebooks, most-recently-released first.', '/rss/new-releases', WEB_ROOT . '/rss/new-releases.xml', $newestEbooks); +$newestRssFeed->SaveIfChanged(); + +// Create the 'all' feed +$allRssFeed = new RssFeed('Standard Ebooks - All Ebooks', 'All Standard Ebooks, most-recently-released first.', '/rss/all', WEB_ROOT . '/rss/all.xml', $allEbooks); +$allRssFeed->SaveIfChanged(); + +// Generate each individual subject feed +foreach($ebooksBySubject as $subject => $ebooks){ + krsort($ebooks); + $subjectRssFeed = new RssFeed('Standard Ebooks - ' . (string)$subject . ' Ebooks', 'Standard Ebooks tagged with “' . strtolower($subject) . ',” most-recently-released first.', '/rss/subjects/' . Formatter::MakeUrlSafe((string)$subject), WEB_ROOT . '/rss/subjects/' . Formatter::MakeUrlSafe((string)$subject) . '.xml', $ebooks); + $subjectRssFeed->SaveIfChanged(); +} + +// Now create the Atom feeds +// Create the 'newest' feed +$newestAtomFeed = new AtomFeed('Standard Ebooks - Newest Ebooks', 'The ' . number_format($ebooksPerNewestEbooksFeed) . ' latest Standard Ebooks, most-recently-released first.', '/atom/new-releases', WEB_ROOT . '/atom/new-releases.xml', $newestEbooks); +$newestAtomFeed->SaveIfChanged(); + +// Create the 'all' feed +$allAtomFeed = new AtomFeed('Standard Ebooks - All Ebooks', 'All Standard Ebooks, most-recently-released first.', '/atom/all', WEB_ROOT . '/atom/all.xml', $allEbooks); +$allAtomFeed->SaveIfChanged(); + +// Generate each individual subject feed +foreach($ebooksBySubject as $subject => $ebooks){ + krsort($ebooks); + $subjectAtomFeed = new AtomFeed('Standard Ebooks - ' . (string)$subject . ' Ebooks', 'Standard Ebooks tagged with “' . strtolower($subject) . ',” most-recently-released first.', '/atom/subjects/' . Formatter::MakeUrlSafe((string)$subject), WEB_ROOT . '/atom/subjects/' . Formatter::MakeUrlSafe((string)$subject) . '.xml', $ebooks); + $subjectAtomFeed->SaveIfChanged(); +} + ?> diff --git a/templates/AtomFeed.php b/templates/AtomFeed.php new file mode 100644 index 00000000..1580453f --- /dev/null +++ b/templates/AtomFeed.php @@ -0,0 +1,50 @@ +\n"); +?> + + + + <?= Formatter::ToPlainXmlText($title) ?> + + /images/logo.png + format('Y-m-d\TH:i:s\Z') ?> + + Standard Ebooks + + + + + Url ?> + <?= Formatter::ToPlainXmlText($entry->Title) ?> + Authors as $author){ ?> + + Name) ?> + AuthorsUrl) ?> + + + Timestamp->format('Y-m-d\TH:i:s\Z') ?> + ModifiedTimestamp->format('Y-m-d\TH:i:s\Z') ?> + Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. + Description) ?> + LongDescription) ?> + LocTags as $subject){ ?> + + + Tags as $subject){ ?> + + + + + EpubUrl)){ ?> + AdvancedEpubUrl)){ ?> + KepubUrl)){ ?> + Azw3Url)){ ?> + TextSinglePageUrl)){ ?> + + + diff --git a/templates/OpdsAcquisitionEntry.php b/templates/OpdsAcquisitionEntry.php index 000bf99e..7f4e4af2 100644 --- a/templates/OpdsAcquisitionEntry.php +++ b/templates/OpdsAcquisitionEntry.php @@ -1,37 +1,36 @@ - Url ?> - <?= Formatter::ToPlainXmlText($ebook->Title) ?> - Authors as $author){ ?> + Url ?> + Identifier) ?> + <?= Formatter::ToPlainXmlText($entry->Title) ?> + Authors as $author){ ?> Name) ?> - AuthorsUrl, ENT_QUOTES|ENT_XML1, 'utf-8') ?> + AuthorsUrl) ?> FullName !== null){ ?>FullName) ?> WikipediaUrl !== null){ ?>WikipediaUrl) ?> NacoafUrl !== null){ ?>NacoafUrl) ?> - Timestamp->format('Y-m-d\TH:i:s\Z') ?> - ModifiedTimestamp->format('Y-m-d\TH:i:s\Z') ?> - Language) ?> + Timestamp->format('Y-m-d\TH:i:s\Z') ?> + Timestamp->format('Y-m-d\TH:i:s\Z') ?> + ModifiedTimestamp->format('Y-m-d\TH:i:s\Z') ?> + Language) ?> Standard Ebooks - Sources as $source){ ?> - Url) ?> - Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. - Description) ?> - LongDescription ?> - LocTags as $subject){ ?> + Description) ?> + LongDescription) ?> + LocTags as $subject){ ?> - Tags as $subject){ ?> + Tags as $subject){ ?> - - - - - - - - + + + + EpubUrl)){ ?> + AdvancedEpubUrl)){ ?> + KepubUrl)){ ?> + Azw3Url)){ ?> + TextSinglePageUrl)){ ?> diff --git a/templates/OpdsAcquisitionFeed.php b/templates/OpdsAcquisitionFeed.php index be575507..8c5cc069 100644 --- a/templates/OpdsAcquisitionFeed.php +++ b/templates/OpdsAcquisitionFeed.php @@ -9,6 +9,7 @@ */ $isCrawlable = $isCrawlable ?? false; +$subtitle = $subtitle ?? null; // Note that the XSL stylesheet gets stripped during `se clean` when we generate the feed. // `se clean` will also start adding empty namespaces everywhere if we include the stylesheet declaration first. @@ -16,14 +17,14 @@ $isCrawlable = $isCrawlable ?? false; print("\n"); ?> xmlns:fh="http://purl.org/syndication/history/1.0"> - - + + <?= Formatter::ToPlainXmlText($title) ?> - Free and liberated ebooks, carefully produced for the true book lover. + /images/logo.png format('Y-m-d\TH:i:s\Z') ?> @@ -31,7 +32,7 @@ print("\n"); Standard Ebooks - - $ebook]) ?> + + $entry]) ?> diff --git a/templates/OpdsNavigationFeed.php b/templates/OpdsNavigationFeed.php index 8fa490e6..563a1932 100644 --- a/templates/OpdsNavigationFeed.php +++ b/templates/OpdsNavigationFeed.php @@ -1,18 +1,21 @@ \n"); ?> - - + + <?= Formatter::ToPlainXmlText($title) ?> - Free and liberated ebooks, carefully produced for the true book lover. + /images/logo.png format('Y-m-d\TH:i:s\Z') ?> diff --git a/templates/RssFeed.php b/templates/RssFeed.php index 4ea958a1..f3432e62 100644 --- a/templates/RssFeed.php +++ b/templates/RssFeed.php @@ -5,7 +5,7 @@ use Safe\DateTime; // `se clean` will also start adding empty namespaces everywhere if we include the stylesheet declaration first. // We have to add it programmatically when saving the feed file. print("\n"); -?> +?> <?= Formatter::ToPlainXmlText($title) ?> @@ -33,6 +33,7 @@ print("\n"); Tags as $tag){ ?> Name) ?> + EpubUrl !== null){ ?> is allowed */ ?> diff --git a/www/atom/new-releases.xml b/www/atom/new-releases.xml index ca57b9b3..fc73e1ca 100644 --- a/www/atom/new-releases.xml +++ b/www/atom/new-releases.xml @@ -1,16 +1,12 @@ - - - https://standardebooks.org/opds/new-releases - - - - - - Newest 30 Standard Ebooks - Free and liberated ebooks, carefully produced for the true book lover. - /images/logo.png - 2022-06-21T02:47:04Z + + + https://standardebooks.test/atom/new-releases + + Standard Ebooks - Newest Ebooks + The 30 latest Standard Ebooks, most-recently-released first. + https://standardebooks.test/images/logo.png + 2022-06-23T19:45:45Z Standard Ebooks https://standardebooks.test @@ -21,32 +17,20 @@ A. A. Milne https://standardebooks.test/ebooks/a-a-milne - Alan Alexander Milne - https://en.wikipedia.org/wiki/A._A._Milne - http://id.loc.gov/authorities/names/n80067053 - 2022-01-01T23:35:25Z - 2022-06-19T01:54:13Z - en-GB - Standard Ebooks - https://www.fadedpage.com/showbook.php?pid=20150606 - https://books.google.com/books?id=XB7hAAAAMAAJ + 2022-01-01T23:35:25Z + 2022-06-05T01:54:13Z Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A father tells stories to his son about the son’s stuffed animals come to life. - -

Winnie-the-Pooh is a bear that likes honey perhaps a little too much and lives in the Hundred Acre Wood with his animal friends Rabbit, Piglet, Owl, Eeyore, Kanga, and Roo, as well as his people friend Christopher Robin. Winnie-the-Pooh contains several stories of adventures involving Pooh and his friends, including a birthday party, looking for heffalumps, finding a missing tail, and playing a trick on one of their own. Most of them, of course, also involve honey in one way or another.

-

A. A. Milne wrote for Punch magazine, authored a detective novel (The Red House Mystery), and published several plays, but all of them were largely forgotten after he began writing children’s books about his son’s stuffed toys. Winnie-the-Pooh and his friends captured the public’s imagination, and though Milne was only to publish four books of their adventures, they have lived on in the imagination of children ever since.

-
+ <p>Winnie-the-Pooh is a bear that likes honey perhaps a little too much and lives in the Hundred Acre Wood with his animal friends Rabbit, Piglet, Owl, Eeyore, Kanga, and Roo, as well as his people friend Christopher Robin. <i>Winnie-the-Pooh</i> contains several stories of adventures involving Pooh and his friends, including a birthday party, looking for heffalumps, finding a missing tail, and playing a trick on one of their own. Most of them, of course, also involve honey in one way or another.</p> <p><a href="https://standardebooks.org/ebooks/a-a-milne">A. A. Milne</a> wrote for <i>Punch</i> magazine, authored a detective novel (<i><a href="https://standardebooks.org/ebooks/a-a-milne/the-red-house-mystery">The Red House Mystery</a></i>), and published several plays, but all of them were largely forgotten after he began writing children’s books about his son’s stuffed toys. Winnie-the-Pooh and his friends captured the public’s imagination, and though Milne was only to publish four books of their adventures, they have lived on in the imagination of children ever since.</p> - - - - - - - - + + + + + + https://standardebooks.test/ebooks/willa-cather/o-pioneers @@ -54,23 +38,12 @@ Willa Cather https://standardebooks.test/ebooks/willa-cather - Willa Sibert Cather - https://en.wikipedia.org/wiki/Willa_Cather - http://id.loc.gov/authorities/names/n80015717 - 2021-07-26T01:33:57Z + 2021-07-26T01:33:57Z 2022-06-16T21:31:48Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/24 - https://catalog.hathitrust.org/Record/000572133 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A Swedish-American immigrant family builds a farm and community on the Nebraska prairie. - -

Willa Cather’s O Pioneers! was first published in June of 1913 by Houghton Mifflin to high praise. Cather was immensely proud of the work and considered it her first “true” novel, having discovered her own form and subject.

-

Told in five parts, O Pioneers! follows the Bergsons, a family of Swedish-American immigrants farming the prairie of Nebraska at the turn of the 20th century. After the death of her father, heroine Alexandra Bergson inherits the family farm, using her insight to transform it from a precarious enterprise to a prosperous one over the following decade. As the Nebraskan farming community grows and her older brothers build families and comfortable lives, Alexandra remains independent, attached only to the land, her youngest brother, Emil, and her neighbor, Marie Shabata. These three central characters navigate duty, familial pressures, tragedy, and uncertain romance.

-

With its independent, entrepreneurial female main character, O Pioneers! can be read as a deeply feminist novel that nevertheless upholds American ideals of national destiny through pastoral settlement.

-
+ <p><a href="https://standardebooks.org/ebooks/willa-cather">Willa Cather’s</a> <i>O Pioneers!</i> was first published in June of 1913 by Houghton Mifflin to high praise. Cather was immensely proud of the work and considered it her first “true” novel, having discovered her own form and subject.</p> <p>Told in five parts, <i>O Pioneers!</i> follows the Bergsons, a family of Swedish-American immigrants farming the prairie of Nebraska at the turn of the 20th century. After the death of her father, heroine Alexandra Bergson inherits the family farm, using her insight to transform it from a precarious enterprise to a prosperous one over the following decade. As the Nebraskan farming community grows and her older brothers build families and comfortable lives, Alexandra remains independent, attached only to the land, her youngest brother, Emil, and her neighbor, Marie Shabata. These three central characters navigate duty, familial pressures, tragedy, and uncertain romance.</p> <p>With its independent, entrepreneurial female main character, <i>O Pioneers!</i> can be read as a deeply feminist novel that nevertheless upholds American ideals of national destiny through pastoral settlement.</p> @@ -82,14 +55,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/dante-alighieri/the-divine-comedy/henry-wadsworth-longfellow @@ -97,38 +68,23 @@ Dante Alighieri https://standardebooks.test/ebooks/dante-alighieri - Durante di Alighiero degli Alighieri - https://en.wikipedia.org/wiki/Dante_Alighieri - http://id.loc.gov/authorities/names/n78095495 - 2021-05-31T02:32:46Z + 2021-05-31T02:32:46Z 2021-06-01T01:34:28Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/1004 - https://archive.org/details/divinecomedydant01dant - https://archive.org/details/divinecomedydant02dant - https://archive.org/details/divinecomedydante03dantrich Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. The author journeys through Hell, Purgatory, and Heaven in order to receive salvation and to find divine love. - -

Dante Alighieri’s Divine Comedy is considered one of the greatest works in world literature, and it established the standardized Italian language that is used today. Writing between 1308 and 1320, Dante draws from countless subjects including Roman Catholic theology and philosophy, the struggle between the papacy and the Holy Roman Empire, Greek mythology, and geocentric cosmology to answer the age-old question: what does the afterlife look like? Dante’s vision of the answer, this three-volume epic poem, describes in great detail the systematic levels in Hell, Purgatory, and Heaven.

-

The poem opens with Dante’s death—not his actual death that would come shortly after his work’s completion, but his fictional death—where the author is found wandering in a dark forest. Blocked from climbing towards the bright light by a she-wolf, a leopard, and a lion, he is forced to walk further into the darkened valley and towards the gates of Hell. Dante and his guides must then travel through the nine circles of Hell, seven terraces of Purgatory, and nine spheres of Heaven to experience divine justice for earthly sins so that he may reach the Empyrean and receive God’s love. On his journey, he will learn that one must be consciously devoted to the path of morality and righteousness, else one find oneself on a path towards sin.

-

This production is based on Henry Wadsworth Longfellow’s blank verse translation. Longfellow succeeds in capturing the original brilliance of Dante’s internal rhymes and hypnotic patterns while also retaining accuracy. It is said that the death of his young wife brought him closer to the melancholy spirit of Dante’s writing, which itself was shaped by his wounding exile from his beloved Florence in 1302.

-
+ <p><a href="https://standardebooks.org/ebooks/dante-alighieri">Dante Alighieri</a>’s <i>Divine Comedy</i> is considered one of the greatest works in world literature, and it established the standardized Italian language that is used today. Writing between 1308 and 1320, Dante draws from countless subjects including Roman Catholic theology and philosophy, the struggle between the papacy and the Holy Roman Empire, Greek mythology, and geocentric cosmology to answer the age-old question: what does the afterlife look like? Dante’s vision of the answer, this three-volume epic poem, describes in great detail the systematic levels in Hell, Purgatory, and Heaven.</p> <p>The poem opens with Dante’s death—not his actual death that would come shortly after his work’s completion, but his fictional death—where the author is found wandering in a dark forest. Blocked from climbing towards the bright light by a she-wolf, a leopard, and a lion, he is forced to walk further into the darkened valley and towards the gates of Hell. Dante and his guides must then travel through the nine circles of Hell, seven terraces of Purgatory, and nine spheres of Heaven to experience divine justice for earthly sins so that he may reach the Empyrean and receive God’s love. On his journey, he will learn that one must be consciously devoted to the path of morality and righteousness, else one find oneself on a path towards sin.</p> <p>This production is based on Henry Wadsworth Longfellow’s blank verse translation. Longfellow succeeds in capturing the original brilliance of Dante’s internal rhymes and hypnotic patterns while also retaining accuracy. It is said that the death of his young wife brought him closer to the melancholy spirit of Dante’s writing, which itself was shaped by his wounding exile from his beloved Florence in 1302.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/samuel-butler-1612-1680/hudibras @@ -136,32 +92,21 @@ Samuel Butler https://standardebooks.test/ebooks/samuel-butler-1612-1680 - https://en.wikipedia.org/wiki/Samuel_Butler_(poet) - http://id.loc.gov/authorities/names/n50032588 - 2021-05-26T18:41:32Z + 2021-05-26T18:41:32Z 2021-05-27T14:45:00Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/4937 - https://archive.org/details/hudibrasinthr00butl Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A knight and his squire set forth for adventure and love. - -

The knight-errant Hudibras and his trusty (and somewhat more grounded) squire Ralph roam the land in search of adventure and love. Never the most congenial of partners, their constant arguments are Samuel Butler’s satire of the major issues of the day in late 17th century Britain, including the recent civil war, religious sectarianism, philosophy, astrology, and even the differing rights of women and men.

-

Butler had originally studied to be a lawyer (which explains some of the detail in the third part of Hudibras), but made a living variously as a clerk, part-time painter, and secretary before dedicating himself to writing in 1662. Hudibras was immediately popular on the release of its first part, and, like Don Quixote, even had an unauthorized second part available before Butler had finished the genuine one. Voltaire praised the humor, and although Samuel Pepys wasn’t immediately taken with the poem, it was such the rage that he noted in his diary that he’d repurchased it to see again what the fuss was about. Hudibras’s popularity did not fade for many years, and although some of the finer detail of 17th century talking points might be lost on the modern reader, the wit of the caricatures (and a large collection of endnotes) help bring this story to life.

-
+ <p>The knight-errant Hudibras and his trusty (and somewhat more grounded) squire Ralph roam the land in search of adventure and love. Never the most congenial of partners, their constant arguments are <a href="https://standardebooks.org/ebooks/samuel-butler-1612-1680">Samuel Butler’s</a> satire of the major issues of the day in late 17th century Britain, including the recent civil war, religious sectarianism, philosophy, astrology, and even the differing rights of women and men.</p> <p>Butler had originally studied to be a lawyer (which explains some of the detail in the third part of <i>Hudibras</i>), but made a living variously as a clerk, part-time painter, and secretary before dedicating himself to writing in 1662. <i>Hudibras</i> was immediately popular on the release of its first part, and, like <a href="https://standardebooks.org/ebooks/miguel-de-cervantes-saavedra/don-quixote/john-ormsby"><i>Don Quixote</i></a>, even had an unauthorized second part available before Butler had finished the genuine one. <a href="https://standardebooks.org/ebooks/voltaire">Voltaire</a> praised the humor, and although <a href="https://standardebooks.org/ebooks/samuel-pepys">Samuel Pepys</a> wasn’t immediately taken with the poem, it was such the rage that <a href="https://standardebooks.org/ebooks/samuel-pepys/the-diary/text/chapter-38#entry-1663-2-16">he noted in his diary</a> that he’d repurchased it to see again what the fuss was about. <i>Hudibras</i>’s popularity did not fade for many years, and although some of the finer detail of 17th century talking points might be lost on the modern reader, the wit of the caricatures (and a large collection of endnotes) help bring this story to life.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/leo-tolstoy/short-fiction/louise-maude_aylmer-maude_nathan-haskell-dole_constance-garnett_j-d-duff_leo-weiner_r-s-townsend_hagberg-wright_benjamin-tucker_everymans-library_vladimir-chertkov_isabella-fyvie-mayo @@ -169,67 +114,24 @@ Leo Tolstoy https://standardebooks.test/ebooks/leo-tolstoy - Lev Nikolayevich Tolstoy - https://en.wikipedia.org/wiki/Leo_Tolstoy - http://id.loc.gov/authorities/names/n79068416 - 2021-04-27T00:44:58Z + 2021-04-27T00:44:58Z 2022-04-25T22:56:00Z - en-GB - Standard Ebooks - https://archive.org/details/in.ernet.dli.2015.97297 - https://catalog.hathitrust.org/Record/008634081 - https://www.gutenberg.org/ebooks/41119 - https://catalog.hathitrust.org/Record/101834927 - https://catalog.hathitrust.org/Record/102113914 - https://archive.org/details/in.ernet.dli.2015.149072 - https://en.wikisource.org/wiki/Family_Happiness - https://www.mobileread.com/forums/showthread.php?t=279993 - https://en.wikisource.org/wiki/The_Devil - https://catalog.hathitrust.org/Record/008973985 - https://archive.org/details/completeworksofc12tols - https://www.gutenberg.org/ebooks/38025 - https://archive.org/details/tolstoiforyoung00tols - https://www.gutenberg.org/ebooks/51708 - https://en.wikisource.org/wiki/Twenty-three_Tales - https://archive.org/details/cihm_85206 - https://archive.org/details/completeworksco02unkngoog - https://en.wikisource.org/wiki/Diary_of_a_Lunatic - https://archive.org/details/mastermanotherpa00tols - https://catalog.hathitrust.org/Record/007126104 - https://www.gutenberg.org/ebooks/689 - https://www.gutenberg.org/ebooks/985 - https://archive.org/details/invadersothersto00tolsrich - https://www.gutenberg.org/ebooks/56797 - https://catalog.hathitrust.org/Record/011726151 - https://catalog.hathitrust.org/Record/007124838 - https://www.gutenberg.org/ebooks/243 - https://archive.org/details/in.ernet.dli.2015.41079 - https://www.gutenberg.org/ebooks/986 - https://archive.org/details/opencourt_jun1903caru - https://archive.org/details/cu31924027448483 - https://www.gutenberg.org/ebooks/51018 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A collection of all of the short stories and novellas written by Leo Tolstoy. - -

While perhaps best known for his novels War and Peace and Anna Karenina, the Russian author and religious thinker Leo Tolstoy was also a prolific author of short fiction. This Standard Ebooks edition compiles all of Tolstoy’s short stories and novellas written from 1852 up to his death, arranged in order of their original publication.

-

The stories in this collection vary enormously in size and scope, from short, page-length fables composed for the education of schoolchildren, to full novellas like “Family Happiness.” Readers who are familiar with Tolstoy’s life and religious experiences—as detailed, for example, in his spiritual memoir A Confession—may be able to trace the events of Tolstoy’s life through the changing subjects of these stories. Some early stories, like “The Raid” and the “Sevastopol” sketches, draw from Tolstoy’s experiences in the Caucasian War and the Crimean War when he served in the Imperial Russian Army, while other early stories like “Recollections of a Scorer” and “Two Hussars” reflect Tolstoy’s personal struggle with gambling addiction.

-

Later stories in the collection, written during and after Tolstoy’s 1870s conversion to Christian anarcho-pacifism (a spiritual and religious philosophy described in detail in his treatise The Kingdom of God is Within You), frequently reflect either Tolstoy’s own experiences in spiritual struggle (e.g. “The Death of Ivan Ilyitch”) or his interpretation of the New Testament (e.g. “The Forged Coupon”), or both. Many later stories, like “Three Questions” and “How Much Land Does a Man Need?” are explicitly didactic in nature and are addressed to a popular audience to promote his religious ideals and views on social and economic justice.

-
+ <p>While perhaps best known for his novels <a href="https://standardebooks.org/ebooks/leo-tolstoy/war-and-peace/louise-maude_aylmer-maude"><i>War and Peace</i></a> and <a href="https://standardebooks.org/ebooks/leo-tolstoy/anna-karenina/constance-garnett"><i>Anna Karenina</i></a>, the Russian author and religious thinker <a href="https://standardebooks.org/ebooks/leo-tolstoy">Leo Tolstoy</a> was also a prolific author of short fiction. This Standard Ebooks edition compiles all of Tolstoy’s short stories and novellas written from 1852 up to his death, arranged in order of their original publication.</p> <p>The stories in this collection vary enormously in size and scope, from short, page-length fables composed for the education of schoolchildren, to full novellas like “Family Happiness.” Readers who are familiar with Tolstoy’s life and religious experiences—as detailed, for example, in his spiritual memoir <a href="https://standardebooks.org/ebooks/leo-tolstoy/a-confession/aylmer-maude"><i>A Confession</i></a>—may be able to trace the events of Tolstoy’s life through the changing subjects of these stories. Some early stories, like “The Raid” and the “Sevastopol” sketches, draw from Tolstoy’s experiences in the Caucasian War and the Crimean War when he served in the Imperial Russian Army, while other early stories like “Recollections of a Scorer” and “Two Hussars” reflect Tolstoy’s personal struggle with gambling addiction.</p> <p>Later stories in the collection, written during and after Tolstoy’s 1870s conversion to Christian anarcho-pacifism (a spiritual and religious philosophy described in detail in his treatise <a href="https://standardebooks.org/ebooks/leo-tolstoy/the-kingdom-of-god-is-within-you/leo-wiener"><i>The Kingdom of God is Within You</i></a>), frequently reflect either Tolstoy’s own experiences in spiritual struggle (e.g. “The Death of Ivan Ilyitch”) or his interpretation of the New Testament (e.g. “The Forged Coupon”), or both. Many later stories, like “Three Questions” and “How Much Land Does a Man Need?” are explicitly didactic in nature and are addressed to a popular audience to promote his religious ideals and views on social and economic justice.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/virginia-woolf/mrs-dalloway @@ -237,22 +139,12 @@ Virginia Woolf https://standardebooks.test/ebooks/virginia-woolf - https://en.wikipedia.org/wiki/Virginia_Woolf - https://id.loc.gov/authorities/names/n79041870 - 2021-01-25T23:45:48Z + 2021-01-25T23:45:48Z 2021-01-26T00:00:54Z - en-GB - Standard Ebooks - http://gutenberg.net.au/ebooks02/0200991h.html - https://archive.org/details/in.ernet.dli.2015.509292 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. As Clarissa Dalloway walks through London on a glorious June day, her movements bring together a cast of friends and strangers, each in turn weighing matters of mind and heart. - -

Probably Virginia Woolf’s best-known novel, Mrs. Dalloway, originally published in 1925, is a glorious, ground-breaking text. On the surface, it follows Clarissa Dalloway, an Englishwoman in her fifties, minute by minute through the June day on which she is having a party. At a deeper level, however, the novel demonstrates, through an effortless stream of consciousness, the connections formed in human interaction—whether these interactions are fleeting, or persist through decades.

-

This is a novel to read and cherish, if only to marvel at Woolf’s linguistic acrobatics. Words and phrases swoop and soar like swallows. Woolf’s sentences are magnificent: sinuous, whirling, impeccably detailed. As narrative perspective shifts from character to character—sometimes within a single sentence—readers come to understand the oh-so-permeable barrier between self and other. Through Clarissa we meet Septimus Warren Smith, his wife Rezia, and a cast of dozens more, all connected by the “leaden circles” of Big Ben marking the passage of every hour, by the pavements of Bloomsbury that lead everywhere and nowhere. Modernist London has never been portrayed more sublimely: replete with birdsong and flowers, resplendent in sunshine, youthful yet eternal—and even in the aftermath of war and pandemic, resilient.

-

Mrs. Dalloway is Woolf’s attempt to express that which may be inexpressible. It offers a close examination of how difficult it is, even when our hearts are brimming, to say what we really feel; and it examines the damage we inflict through our reticence with words, our withholding of love. It is a novel of the soul, and a work of immense beauty.

-
+ <p>Probably <a href="https://standardebooks.org/ebooks/virginia-woolf">Virginia Woolf</a>’s best-known novel, <i>Mrs. Dalloway</i>, originally published in 1925, is a glorious, ground-breaking text. On the surface, it follows Clarissa Dalloway, an Englishwoman in her fifties, minute by minute through the June day on which she is having a party. At a deeper level, however, the novel demonstrates, through an effortless stream of consciousness, the connections formed in human interaction—whether these interactions are fleeting, or persist through decades.</p> <p>This is a novel to read and cherish, if only to marvel at Woolf’s linguistic acrobatics. Words and phrases swoop and soar like swallows. Woolf’s sentences are magnificent: sinuous, whirling, impeccably detailed. As narrative perspective shifts from character to character—sometimes within a single sentence—readers come to understand the oh-so-permeable barrier between self and other. Through Clarissa we meet Septimus Warren Smith, his wife Rezia, and a cast of dozens more, all connected by the “leaden circles” of Big Ben marking the passage of every hour, by the pavements of Bloomsbury that lead everywhere and nowhere. Modernist London has never been portrayed more sublimely: replete with birdsong and flowers, resplendent in sunshine, youthful yet eternal—and even in the aftermath of war and pandemic, resilient.</p> <p><i>Mrs. Dalloway</i> is Woolf’s attempt to express that which may be inexpressible. It offers a close examination of how difficult it is, even when our hearts are brimming, to say what we really feel; and it examines the damage we inflict through our reticence with words, our withholding of love. It is a novel of the soul, and a work of immense beauty.</p> @@ -262,14 +154,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/ford-madox-ford/no-more-parades @@ -277,36 +167,22 @@ Ford Madox Ford https://standardebooks.test/ebooks/ford-madox-ford - Joseph Leopold Ford Hermann Madox Hueffer - https://en.wikipedia.org/wiki/Ford_Madox_Ford - https://id.loc.gov/authorities/names/n79045085 - 2021-01-01T22:26:58Z + 2021-01-01T22:26:58Z 2021-01-04T02:56:32Z - en-GB - Standard Ebooks - http://www.gutenberg.net.au/ebooks07/0700181h.html - https://archive.org/details/nomoreparadesnov0000ford Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. An English gentleman gives his best as an officer during World War I, while struggling with his scandalous wife, the incompetence of the army, and the brutality of war. - -

No More Parades is the second in Ford Madox Ford’s Parade’s End series. The book, released just a few years after the close of the war, is based on Ford’s combat experiences as an enlisted man in World War I, and continues the story first begun in Some Do Not ….

-

Christopher Tietjens, after recovering from the shell shock he suffered in Some Do Not …, has returned to the edge of the war as a commanding officer in charge of preparing draft troops for deployment to the front. As the “last true Tory,” Tietjens demonstrates talent bordering on genius as he struggles against the laziness, incompetence, and confusion of the army around him—but his troubles only begin when his self-centered and scandalous wife Sylvia appears at his base in Rouen for a surprise visit.

-

Unlike Some Do Not …, which was told in a highly modernist series of flash-backs and flash-forwards, Parade’s End is a much more straightforward narrative. Despite this, the characters continue to be realized in an incredibly complex and nuanced way. Tietjens, almost a caricature of the stiff, honorable English gentleman, stoically absorbs the problems and suffering of those around him. Ford simultaneously paints him as an almost Christlike character and an immature, idealistic schoolboy, eager to keep up appearances despite the ruination it causes the people around him. Sylvia, his wife, has had her affairs and scandals, and is clearly a selfish and trying personality; but her powerful charm, and her frustration with both her almost comically stiff-lipped husband and the war’s interruption of civilization, lends her a not-unsympathetic air. The supporting cast of conscripts and officers is equally well-realized, with each one protraying a separate aspect of war’s effect on regular, scared people simply doing their best.

-

The novel was extremely well-reviewed in its time, and it and the series it’s a part of remain one of the most important novels written about World War I.

-
+ <p><i>No More Parades</i> is the second in <a href="https://standardebooks.org/ebooks/ford-madox-ford">Ford Madox Ford’s</a> <a href="https://standardebooks.org/collections/parades-end">Parade’s End</a> series. The book, released just a few years after the close of the war, is based on Ford’s combat experiences as an enlisted man in World War I, and continues the story first begun in <i><a href="https://standardebooks.org/ebooks/ford-madox-ford/some-do-not">Some Do Not …</a></i>.</p> <p>Christopher Tietjens, after recovering from the shell shock he suffered in <i>Some Do Not …</i>, has returned to the edge of the war as a commanding officer in charge of preparing draft troops for deployment to the front. As the “last true Tory,” Tietjens demonstrates talent bordering on genius as he struggles against the laziness, incompetence, and confusion of the army around him—but his troubles only begin when his self-centered and scandalous wife Sylvia appears at his base in Rouen for a surprise visit.</p> <p>Unlike <i>Some Do Not …</i>, which was told in a highly modernist series of flash-backs and flash-forwards, <i>Parade’s End</i> is a much more straightforward narrative. Despite this, the characters continue to be realized in an incredibly complex and nuanced way. Tietjens, almost a caricature of the stiff, honorable English gentleman, stoically absorbs the problems and suffering of those around him. Ford simultaneously paints him as an almost Christlike character and an immature, idealistic schoolboy, eager to keep up appearances despite the ruination it causes the people around him. Sylvia, his wife, has had her affairs and scandals, and is clearly a selfish and trying personality; but her powerful charm, and her frustration with both her almost comically stiff-lipped husband and the war’s interruption of civilization, lends her a not-unsympathetic air. The supporting cast of conscripts and officers is equally well-realized, with each one protraying a separate aspect of war’s effect on regular, scared people simply doing their best.</p> <p>The novel was extremely well-reviewed in its time, and it and the series it’s a part of remain one of the most important novels written about World War I.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/f-scott-fitzgerald/the-great-gatsby @@ -314,26 +190,12 @@ F. Scott Fitzgerald https://standardebooks.test/ebooks/f-scott-fitzgerald - Francis Scott Key Fitzgerald - https://en.wikipedia.org/wiki/F._Scott_Fitzgerald - https://id.loc.gov/authorities/names/n79006871 - 2021-01-01T22:22:26Z + 2021-01-01T22:22:26Z 2021-01-04T19:40:45Z - en-GB - Standard Ebooks - https://www.fadedpage.com/showbook.php?pid=20181181 - https://archive.org/details/in.ernet.dli.2015.184960 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. The decadent and mysterious Jay Gatsby pursues the American Dream in jazz-era New York. - -

The Great Gatsby is a novel that needs no introduction for a certain generation of American readers. Long taught as required reading in American schools, critics have consistently held it up alongside Moby Dick, Huck Finn, and To Kill a Mockingbird as perhaps the quintessential Great American Novel.

-

Nick Carraway is a young Midwestern man freshly arrived in New York to make his fortune. He rents a shabby apartment in Long Island next door to a sumptuous mansion: the home of the mysterious and wealthy Jay Gatsby. Carraway spends time catching up with his distant cousin Daisy and her industry-baron husband Tom before being invited to one of Gatsby’s wildly lavish weekend parties. There he meets Jordan, a flapper and a golf star, and an intricate web of romances and betrayals begins to unfold.

-

The novel is a colorful study of America’s Jazz Age—a term said to be coined by Fitzgerald himself—complete with wealthy socialites living in hedonistic abandon, libertine flappers, jazz bands, roaring roadsters, and greasy speakeasies populated with shady grifters. Contrasted against the glamorous lives of wealthy socialites is the entrenched lower class, who live in gray, dingy squalor among smoldering ash-heaps. Fitzgerald uses the setting to examine the American Dream: the idea that anyone in America can achieve success through hard work and dedication. Gatsby has spent his life reaching for his dream. Some say he’s already achieved it. But has he? Is the dream even real for the hard-working poor that Gatsby and Tom race past in their glittering cars on the way to the decadent city?

-

Fitzgerald wrote much of his real life into the novel. Like Carraway, he was a Midwesterner educated at an Ivy-league school who went to live on Long Island. Despite his meager finances he hobnobbed with socialites, and spent his career struggling for money to maintain the grand style his romantic interests were accustomed to.

-

The cover art, titled Celestial Eyes, was commissioned from Francis Cugat, who completed it before the novel was finished. The huge eyes gazing down on the blazing city so moved Fitzgerald that he wrote them into the story.

-

Fitzgerald saw the novel as a purely artistic work, free of the pulp pandering required by his shorter commissions—but despite that, contemporary reviews were mixed, and it sold poorly. Fitzgerald thought it a failure, and died believing the novel to be fatally obscure. Only during World War II did it come back to the public consciousness, buoyed by the support of a ring of writers and critics and printed as an Armed Service Edition to be sent to soldiers on the front. Now it is an American classic.

-
+ <p><i>The Great Gatsby</i> is a novel that needs no introduction for a certain generation of American readers. Long taught as required reading in American schools, critics have consistently held it up alongside <i><a href="https://standardebooks.org/ebooks/herman-melville/moby-dick">Moby Dick</a></i>, <i><a href="https://standardebooks.org/ebooks/mark-twain/the-adventures-of-huckleberry-finn">Huck Finn</a></i>, and <i>To Kill a Mockingbird</i> as perhaps the quintessential Great American Novel.</p> <p>Nick Carraway is a young Midwestern man freshly arrived in New York to make his fortune. He rents a shabby apartment in Long Island next door to a sumptuous mansion: the home of the mysterious and wealthy Jay Gatsby. Carraway spends time catching up with his distant cousin Daisy and her industry-baron husband Tom before being invited to one of Gatsby’s wildly lavish weekend parties. There he meets Jordan, a flapper and a golf star, and an intricate web of romances and betrayals begins to unfold.</p> <p>The novel is a colorful study of America’s Jazz Age—a term said to be coined by <a href="https://standardebooks.org/ebooks/f-scott-fitzgerald">Fitzgerald</a> himself—complete with wealthy socialites living in hedonistic abandon, libertine flappers, jazz bands, roaring roadsters, and greasy speakeasies populated with shady grifters. Contrasted against the glamorous lives of wealthy socialites is the entrenched lower class, who live in gray, dingy squalor among smoldering ash-heaps. Fitzgerald uses the setting to examine the American Dream: the idea that anyone in America can achieve success through hard work and dedication. Gatsby has spent his life reaching for his dream. Some say he’s already achieved it. But has he? Is the dream even real for the hard-working poor that Gatsby and Tom race past in their glittering cars on the way to the decadent city?</p> <p>Fitzgerald wrote much of his real life into the novel. Like Carraway, he was a Midwesterner educated at an Ivy-league school who went to live on Long Island. Despite his meager finances he hobnobbed with socialites, and spent his career struggling for money to maintain the grand style his romantic interests were accustomed to.</p> <p>The cover art, titled <i>Celestial Eyes</i>, was commissioned from Francis Cugat, who completed it before the novel was finished. The huge eyes gazing down on the blazing city so moved Fitzgerald that he wrote them into the story.</p> <p>Fitzgerald saw the novel as a purely artistic work, free of the pulp pandering required by his shorter commissions—but despite that, contemporary reviews were mixed, and it sold poorly. Fitzgerald thought it a failure, and died believing the novel to be fatally obscure. Only during World War II did it come back to the public consciousness, buoyed by the support of a ring of writers and critics and printed as an Armed Service Edition to be sent to soldiers on the front. Now it is an American classic.</p> @@ -342,14 +204,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/ford-madox-ford/some-do-not @@ -357,35 +217,22 @@ Ford Madox Ford https://standardebooks.test/ebooks/ford-madox-ford - https://en.wikipedia.org/wiki/Ford_Madox_Ford - https://id.loc.gov/authorities/names/n79045085 - 2020-10-27T17:54:38Z + 2020-10-27T17:54:38Z 2021-01-04T02:56:00Z - en-GB - Standard Ebooks - http://gutenberg.ca/ebooks/fordfm-somedonot/fordfm-somedonot-00-h-dir/fordfm-somedonot-00-h.html - https://catalog.hathitrust.org/Record/006152929 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. As the eve of World War I looms, a stiff English statistician and a suffragette fall in love. - -

Some Do Not … opens at the cusp of World War I. Christopher Tietjens, a government statistician, and his friend Vincent Macmaster, an aspiring literary critic, are visiting the English countryside. Tietjens, preoccupied with his disastrous marriage, meets Valentine Wannop, a suffragette, during a round of golf. As their love story develops, the novel explores the horrors of the war without the narrative ever entering the battlefield.

-

The characters are complex and nuanced. Tietjens is an old-fashioned man even by the standards of his day; he’s concerned with honor and doing the right thing, but he lives in a society that only pays those values lip service. Yet he himself isn’t free of a thread of hypocrisy: he won’t leave his deeply unhappy marriage because that would be the wrong way to act, but the reader is left wondering if he tolerates his situation simply because he married up in class. He wants to do to the noble and right thing, but does that mean going to war?

-

The men and women around him each have their individual motivations, and they are often conniving and unlikable in their aspirations even as the propaganda of England at war paints the country as a moral and heroic one. The delicate interplay of each character’s subtleties paints a rich portrait of 1920s English society, as the romantic ideals of right and wrong clash with notions of ambition and practicality.

-

The prose is unapologetically modernist: unannounced time shifts combine with a stream-of-consciousness style that can often be dense. Yet Ford’s portrayal of shell shock, the politics of women in the 1920s, and the moral greyness of wartime is groundbreaking. The book, and its complete tetralogy—called Parade’s End—has garnered praise from critics and authors alike, with Anthony Burgess calling it “the finest novel about the First World War” and William Carlos Williams stating that the novels “constitute the English prose masterpiece of their time.”

-
+ <p><i>Some Do Not …</i> opens at the cusp of World War I. Christopher Tietjens, a government statistician, and his friend Vincent Macmaster, an aspiring literary critic, are visiting the English countryside. Tietjens, preoccupied with his disastrous marriage, meets Valentine Wannop, a suffragette, during a round of golf. As their love story develops, the novel explores the horrors of the war without the narrative ever entering the battlefield.</p> <p>The characters are complex and nuanced. Tietjens is an old-fashioned man even by the standards of his day; he’s concerned with honor and doing the right thing, but he lives in a society that only pays those values lip service. Yet he himself isn’t free of a thread of hypocrisy: he won’t leave his deeply unhappy marriage because that would be the wrong way to act, but the reader is left wondering if he tolerates his situation simply because he married up in class. He wants to do to the noble and right thing, but does that mean going to war?</p> <p>The men and women around him each have their individual motivations, and they are often conniving and unlikable in their aspirations even as the propaganda of England at war paints the country as a moral and heroic one. The delicate interplay of each character’s subtleties paints a rich portrait of 1920s English society, as the romantic ideals of right and wrong clash with notions of ambition and practicality.</p> <p>The prose is unapologetically modernist: unannounced time shifts combine with a stream-of-consciousness style that can often be dense. Yet <a href="https://standardebooks.org/ebooks/ford-madox-ford">Ford’s</a> portrayal of shell shock, the politics of women in the 1920s, and the moral greyness of wartime is groundbreaking. The book, and its complete tetralogy—called <a href="https://standardebooks.org/collections/parades-end">Parade’s End</a>—has garnered praise from critics and authors alike, with Anthony Burgess calling it “the finest novel about the First World War” and William Carlos Williams stating that the novels “constitute the English prose masterpiece of their time.”</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/anatole-france/penguin-island/a-w-evans @@ -393,21 +240,12 @@ Anatole France https://standardebooks.test/ebooks/anatole-france - https://en.wikipedia.org/wiki/Anatole_France - https://id.loc.gov/authorities/names/n80045853 - 2020-10-04T20:22:36Z + 2020-10-04T20:22:36Z 2020-10-11T19:13:35Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/1930 - https://archive.org/details/in.ernet.dli.2015.167011 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A myopic saint mistakenly baptizes some penguins, ushering in a centuries-spanning satire of French history. - -

Penguin Island, published by Anatole France in 1908, is a comic novel that satirizes the history of France, from its prehistory to the author’s vision of a distant future.

-

After setting out on a storm-tossed voyage of evangelization, the myopic St. Maël finds himself on an island populated by penguins. Mistaking them to be humans, Maël baptizes them—touching off a dispute in Heaven and ushering the Penguin nation into history.

-
+ <p><i>Penguin Island</i>, published by <a href="https://standardebooks.org/ebooks/anatole-france">Anatole France</a> in 1908, is a comic novel that satirizes the history of France, from its prehistory to the author’s vision of a distant future.</p> <p>After setting out on a storm-tossed voyage of evangelization, the myopic St. Maël finds himself on an island populated by penguins. Mistaking them to be humans, Maël baptizes them—touching off a dispute in Heaven and ushering the Penguin nation into history.</p> @@ -415,14 +253,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/booth-tarkington/the-turmoil @@ -430,24 +266,12 @@ Booth Tarkington https://standardebooks.test/ebooks/booth-tarkington - Newton Booth Tarkington - https://en.wikipedia.org/wiki/Booth_Tarkington - https://id.loc.gov/authorities/names/n79078124 - 2020-10-04T18:35:04Z + 2020-10-04T18:35:04Z 2020-10-13T01:28:16Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/1098 - https://books.google.com/books?id=h4g1AAAAMAAJ Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A dreamy and sensitive scion of a Midwestern businessman comes to terms with his legacy in a growing city. - -

Bibbs is the dreamy, sensitive son of Mr. Sheridan, a cigar-chomping, larger-than-life businessman in the turn-of-the-century American Midwest. Sheridan made his fortune in the rapid industrialization that was overtaking the small towns and cities of America, but Bibbs—named so “mainly through lack of imagination on his mother’s part”—is too sickly to help his father in Sheridan’s relentless quest for “Bigness.”

-

The Sheridan family moves to a house next door to the old-money Vertrees family, whose fortunes have declined precipitously in this new era’s thirst for industry. Bibbs makes fast friends with Mary, Vertrees’ daughter; but as he tries to make a life for himself as a poet and writer, away from the cutthroat world of business, he must face off against the relentless drum of money, growth, and Bigness that has consumed American small-town life.

-

The Turmoil is the first book in Tarkington’s Growth trilogy, a series that explores the destruction of traditional small-town America in favor of industrialization, pollution, automobiles, overcrowding, and suburbia. Tarkington makes no secret of his opinion on the matter: the trilogy is filled with acrid smoke, towering and crowded buildings, noise and deadly accidents caused by brand-new cars, brutal working conditions, and a yearning for the clean, bright, slow, dignified days of yore.

-

The book was made in to two silent films just 8 years apart from each other; its sequel, The Magnificent Ambersons, went on to win the Pulitzer prize in 1919.

-
+ <p>Bibbs is the dreamy, sensitive son of Mr. Sheridan, a cigar-chomping, larger-than-life businessman in the turn-of-the-century American Midwest. Sheridan made his fortune in the rapid industrialization that was overtaking the small towns and cities of America, but Bibbs—named so “mainly through lack of imagination on his mother’s part”—is too sickly to help his father in Sheridan’s relentless quest for “Bigness.”</p> <p>The Sheridan family moves to a house next door to the old-money Vertrees family, whose fortunes have declined precipitously in this new era’s thirst for industry. Bibbs makes fast friends with Mary, Vertrees’ daughter; but as he tries to make a life for himself as a poet and writer, away from the cutthroat world of business, he must face off against the relentless drum of money, growth, and Bigness that has consumed American small-town life.</p> <p><i>The Turmoil</i> is the first book in <a href="https://standardebooks.org/ebooks/booth-tarkington">Tarkington’s</a> <a href="https://standardebooks.org/collections/growth-trilogy">Growth trilogy</a>, a series that explores the destruction of traditional small-town America in favor of industrialization, pollution, automobiles, overcrowding, and suburbia. Tarkington makes no secret of his opinion on the matter: the trilogy is filled with acrid smoke, towering and crowded buildings, noise and deadly accidents caused by brand-new cars, brutal working conditions, and a yearning for the clean, bright, slow, dignified days of yore.</p> <p>The book was made in to two silent films just 8 years apart from each other; its sequel, <a href="https://standardebooks.org/ebooks/booth-tarkington/the-magnificent-ambersons">The Magnificent Ambersons</a>, went on to win the Pulitzer prize in 1919.</p> @@ -456,14 +280,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/agatha-christie/the-man-in-the-brown-suit @@ -471,24 +293,12 @@ Agatha Christie https://standardebooks.test/ebooks/agatha-christie - Dame Agatha Mary Clarissa Christie, Lady Mallowan - https://en.wikipedia.org/wiki/Agatha_Christie - http://id.loc.gov/authorities/names/n79038407 - 2020-07-21T18:13:34Z + 2020-07-21T18:13:34Z 2021-07-22T21:21:48Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/61168 - https://archive.org/details/BrownSuit00AGCH Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. Anne Beddingfeld travels to South Africa after finding a cryptic note beside the body of a man whose death she witnessed in the London Underground. - -

After her father’s death, young Anne Beddingfeld moves to London with her meagre inheritance, hopeful and ready to meet adventure. She witnesses a fatal accident at a Tube station and picks up a cryptic note dropped by the anonymous doctor who appeared on the scene. When Anne learns of a murder at the estate that the dead man was on his way to visit, it confirms her suspicion that the man in the brown suit who lost the note was not a real doctor.

-

With her clue in hand she gains a commission from the newspaper leading the search for the “man in the brown suit,” and her investigation leads her to take passage on a South Africa–bound ocean liner. On board, she meets a famous socialite, a fake missionary, a possible secret service agent, and the M.P. at whose estate the second murder occurred. She learns about a secretive criminal master­mind known only as the Colonel and of stolen diamonds connected to it all.

-

During the voyage, she evades an attempt on her life, and in South Africa she escapes from a kidnapping and barely survives another attack on her at Victoria Falls. She falls in love, finds the diamonds, and discovers the truth about the two deaths in London that started it all. Finally, she confronts the mysterious criminal mastermind, the Colonel.

-

Published in 1924 by the Bodley Head, The Man in the Brown Suit is Agatha Christie’s fourth novel. Unlike the classic murder mysteries that made her famous, The Man in the Brown Suit, like her second novel The Secret Adversary, is an international crime thriller.

-
+ <p>After her father’s death, young Anne Beddingfeld moves to London with her meagre inheritance, hopeful and ready to meet adventure. She witnesses a fatal accident at a Tube station and picks up a cryptic note dropped by the anonymous doctor who appeared on the scene. When Anne learns of a murder at the estate that the dead man was on his way to visit, it confirms her suspicion that the man in the brown suit who lost the note was not a real doctor.</p> <p>With her clue in hand she gains a commission from the newspaper leading the search for the “man in the brown suit,” and her investigation leads her to take passage on a South Africa–bound ocean liner. On board, she meets a famous socialite, a fake missionary, a possible secret service agent, and the <abbr>M.P.</abbr> at whose estate the second murder occurred. She learns about a secretive criminal master­mind known only as the Colonel and of stolen diamonds connected to it all.</p> <p>During the voyage, she evades an attempt on her life, and in South Africa she escapes from a kidnapping and barely survives another attack on her at Victoria Falls. She falls in love, finds the diamonds, and discovers the truth about the two deaths in London that started it all. Finally, she confronts the mysterious criminal mastermind, the Colonel.</p> <p>Published in 1924 by the Bodley Head, <i>The Man in the Brown Suit</i> is <a href="https://standardebooks.org/ebooks/agatha-christie">Agatha Christie’s</a> fourth novel. Unlike the classic murder mysteries that made her famous, <i>The Man in the Brown Suit</i>, like her second novel <i><a href="https://standardebooks.org/ebooks/agatha-christie/the-secret-adversary">The Secret Adversary</a></i>, is an international crime thriller.</p> @@ -497,14 +307,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charlotte-bronte/villette @@ -512,34 +320,24 @@ Charlotte Brontë https://standardebooks.test/ebooks/charlotte-bronte - https://en.wikipedia.org/wiki/Charlotte_Bront%C3%AB - http://id.loc.gov/authorities/names/n79054114 - 2020-06-16T19:28:12Z + 2020-06-16T19:28:12Z 2020-10-11T18:45:50Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/9182 - https://archive.org/details/villettenovel00bronuoft Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A young woman travels from England to the fictional town of Villette where she makes new connections and encounters people from her past. - -

Charlotte Brontë’s last novel, Villette, is thought to be most closely modelled on her own experiences teaching in a pensionnat in Brussels, the place on which the fictional town of Villette is based. In the novel, first published in 1853, we follow the protagonist Lucy Snowe from the time she is fourteen and lives with her godmother in rural England, through her family tragedies and departure for the town of Villette where she finds work at a French boarding school. People from her past reappear in dramatic ways, she makes new connections, and she learns the stories and secrets of the people around her. Through it all, the reader is made privy to Lucy’s thoughts, feelings, and journey of self-discovery.

-
+ <p><a href="https://standardebooks.org/ebooks/charlotte-bronte">Charlotte Brontë’s</a> last novel, <i>Villette</i>, is thought to be most closely modelled on her own experiences teaching in a <i>pensionnat</i> in Brussels, the place on which the fictional town of Villette is based. In the novel, first published in 1853, we follow the protagonist Lucy Snowe from the time she is fourteen and lives with her godmother in rural England, through her family tragedies and departure for the town of Villette where she finds work at a French boarding school. People from her past reappear in dramatic ways, she makes new connections, and she learns the stories and secrets of the people around her. Through it all, the reader is made privy to Lucy’s thoughts, feelings, and journey of self-discovery.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charlotte-perkins-gilman/herland @@ -547,36 +345,23 @@ Charlotte Perkins Gilman https://standardebooks.test/ebooks/charlotte-perkins-gilman - Charlotte Anna Perkins Stetson Gilman - https://en.wikipedia.org/wiki/Charlotte_Perkins_Gilman - https://id.loc.gov/authorities/names/n78079511 - 2020-06-01T01:09:43Z + 2020-06-01T01:09:43Z 2020-10-11T18:45:54Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/32 - https://catalog.hathitrust.org/Record/011719932 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. Three male explorers trek into a mysterious civilization populated entirely by women. - -

Three male explorers set out to reach a legendary land where only women live, and find—to their surprise—that the legends are true. This country hidden in the mountains is a feminist utopia. There are no men, nor is there war, poverty, or crime. The residents subsist on food from cultivated forests, maintain immaculate houses and roads, and reproduce asexually through parthenogenesis. Although the main characters are men, their role is to show us how their notions about society and womanhood are humorously upturned.

-

Charlotte Perkins Gilman was an outspoken activist and suffragist, most famous nowadays for her short story “The Yellow Wallpaper.” As a writer, she was stunningly prolific. She founded The Forerunner, a monthly magazine for which she personally wrote every article, story, and poem. Because she chose to run no advertisements, she covered the cost of printing the magazine herself. In contrast to many women’s publications of the day, Gilman advocated for equal rights and expanded social roles for women.

-

Originally published serially in The Forerunner in 1915, Herland was not republished as a standalone work until decades later. It is the second in Gilman’s Utopian trilogy, along with Moving the Mountain and With Her in Ourland.

-
+ <p>Three male explorers set out to reach a legendary land where only women live, and find—to their surprise—that the legends are true. This country hidden in the mountains is a feminist utopia. There are no men, nor is there war, poverty, or crime. The residents subsist on food from cultivated forests, maintain immaculate houses and roads, and reproduce asexually through parthenogenesis. Although the main characters are men, their role is to show us how their notions about society and womanhood are humorously upturned.</p> <p><a href="https://standardebooks.org/ebooks/charlotte-perkins-gilman">Charlotte Perkins Gilman</a> was an outspoken activist and suffragist, most famous nowadays for her short story “The Yellow Wallpaper.” As a writer, she was stunningly prolific. She founded <i>The Forerunner</i>, a monthly magazine for which she personally wrote every article, story, and poem. Because she chose to run no advertisements, she covered the cost of printing the magazine herself. In contrast to many women’s publications of the day, Gilman advocated for equal rights and expanded social roles for women.</p> <p>Originally published serially in <i>The Forerunner</i> in 1915, <i>Herland</i> was not republished as a standalone work until decades later. It is the second in Gilman’s <a href="https://standardebooks.org/collections/utopian-trilogy">Utopian trilogy</a>, along with <i>Moving the Mountain</i> and <i>With Her in Ourland</i>.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/compton-mackenzie/sinister-street @@ -584,36 +369,22 @@ Compton Mackenzie https://standardebooks.test/ebooks/compton-mackenzie - Edward Montague Compton Mackenzie - https://en.wikipedia.org/wiki/Compton_Mackenzie - http://id.loc.gov/authorities/names/n79071096 - 2020-04-21T00:48:54Z + 2020-04-21T00:48:54Z 2020-10-11T18:46:12Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/33797 - https://www.gutenberg.org/ebooks/33798 - https://archive.org/details/sinisterstreet01mack - https://archive.org/details/sinisterstreet02mack Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A precocious boy grows to adulthood while struggling with both his own and society’s expectations of his role in life. - -

Michael Fane arrives in the thin red house in Carlington Road to his new family of Nurse, Cook, Annie the housemaid, his younger sister Stella, and the occasional presence of Mother. From here, the novel follows the next twenty years of his life as he tries to find his place in the upper echelons of Edwardian society, through prep school, studies at Oxford, and his emergence into the wide world. The setting is rich in period detail, and the characters portrayed are vivid and more nuanced in their actions and stories than first impressions imply.

-

Sinister Street was an immediate critical success on publication, although not without some worry for its openness to discuss less salubrious scenes, and it was a favourite of George Orwell and John Betjeman. Compton Mackenzie had attended both St. James’ school and St. Mary’s College at Oxford and the novel is at least partly autobiographical, but for the same measure was praised as an accurate portrayal of that experience; Max Beerbohm said “There is no book on Oxford like it. It gives you the actual Oxford experience.” Although originally published in two volumes (in 1913 and 1914) for commercial reasons, the two form a single novel and have been brought back together again for this edition.

-
+ <p>Michael Fane arrives in the thin red house in Carlington Road to his new family of Nurse, Cook, Annie the housemaid, his younger sister Stella, and the occasional presence of Mother. From here, the novel follows the next twenty years of his life as he tries to find his place in the upper echelons of Edwardian society, through prep school, studies at Oxford, and his emergence into the wide world. The setting is rich in period detail, and the characters portrayed are vivid and more nuanced in their actions and stories than first impressions imply.</p> <p><i>Sinister Street</i> was an immediate critical success on publication, although not without some worry for its openness to discuss less salubrious scenes, and it was a favourite of George Orwell and John Betjeman. <a href="https://standardebooks.org/ebooks/compton-mackenzie">Compton Mackenzie</a> had attended both <abbr>St.</abbr> James’ school and <abbr>St.</abbr> Mary’s College at Oxford and the novel is at least partly autobiographical, but for the same measure was praised as an accurate portrayal of that experience; <a href="https://standardebooks.org/ebooks/max-beerbohm">Max Beerbohm</a> said “There is no book on Oxford like it. It gives you the actual Oxford experience.” Although originally published in two volumes (in 1913 and 1914) for commercial reasons, the two form a single novel and have been brought back together again for this edition.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charlotte-bronte/shirley @@ -621,38 +392,24 @@ Charlotte Brontë https://standardebooks.test/ebooks/charlotte-bronte - https://en.wikipedia.org/wiki/Charlotte_Bront%C3%AB - https://id.loc.gov/authorities/names/n79054114 - 2020-04-08T17:35:26Z + 2020-04-08T17:35:26Z 2020-10-11T18:45:46Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/30486 - https://archive.org/details/shirley01bron - https://archive.org/details/shirley02bron Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. In the early part of the 19th Century, two young women struggle in different ways for independence and love during turbulent times caused by the advent of mechanical looms in the textile industry. - -

Shirley, published in 1849, was Charlotte Brontë’s second novel after Jane Eyre. Published under her pseudonym of “Currer Bell,” it differs in several respects from that earlier work. It is written in the third person with an omniscient narrator, rather than the first-person of Jane Eyre, and incorporates the themes of industrial change and the plight of unemployed workers. It also features strong pleas for the recognition of women’s intellect and right to their independence of thought and action.

-

Set in the West Riding of Yorkshire during the Napoleonic period of the early 19th Century, the novel describes the confrontations between textile manufacturers and organized groups of workers protesting the introduction of mechanical looms. Three characters stand out: Robert Moore, a mill-owner determined to introduce modern methods despite sometimes violent opposition; his young cousin Caroline Helstone, who falls deeply in love with Robert; and Shirley Keeldar, a rich heiress who comes to live in the estate of Fieldhead, on whose land Robert’s mill stands. Robert’s business is in trouble, not so much because of the protests of the workers but because of a government decree which prevents him selling his finished cloth overseas during the duration of the war with Napoleon. He receives a loan from Miss Keeldar, and her interest in him seems to be becoming a romantic one, much to the distress of Caroline, who pines away for lack of any sign of affection from Robert.

-

Shirley Keeldar is a remarkable female character for the time: strong, very independent-minded, dismissive of much of the standard rules of society, and determined to decide on her own future. Interestingly, up to this point, the name “Shirley” was almost entirely a male name; Shirley’s parents had hoped for a boy. Such was the success of Brontë’s novel, however, that it became increasingly popular as a female name and is now almost exclusively so.

-

Although never as popular or successful as the more classically romantic Jane Eyre, Shirley is nevertheless now highly regarded by critics.

-
+ <p><i>Shirley</i>, published in 1849, was <a href="https://standardebooks.org/ebooks/charlotte-bronte">Charlotte Brontë’s</a> second novel after <i><a href="https://standardebooks.org/ebooks/charlotte-bronte/jane-eyre">Jane Eyre</a></i>. Published under her pseudonym of “Currer Bell,” it differs in several respects from that earlier work. It is written in the third person with an omniscient narrator, rather than the first-person of <i>Jane Eyre</i>, and incorporates the themes of industrial change and the plight of unemployed workers. It also features strong pleas for the recognition of women’s intellect and right to their independence of thought and action.</p> <p>Set in the West Riding of Yorkshire during the Napoleonic period of the early 19th Century, the novel describes the confrontations between textile manufacturers and organized groups of workers protesting the introduction of mechanical looms. Three characters stand out: Robert Moore, a mill-owner determined to introduce modern methods despite sometimes violent opposition; his young cousin Caroline Helstone, who falls deeply in love with Robert; and Shirley Keeldar, a rich heiress who comes to live in the estate of Fieldhead, on whose land Robert’s mill stands. Robert’s business is in trouble, not so much because of the protests of the workers but because of a government decree which prevents him selling his finished cloth overseas during the duration of the war with Napoleon. He receives a loan from Miss Keeldar, and her interest in him seems to be becoming a romantic one, much to the distress of Caroline, who pines away for lack of any sign of affection from Robert.</p> <p>Shirley Keeldar is a remarkable female character for the time: strong, very independent-minded, dismissive of much of the standard rules of society, and determined to decide on her own future. Interestingly, up to this point, the name “Shirley” was almost entirely a male name; Shirley’s parents had hoped for a boy. Such was the success of Brontë’s novel, however, that it became increasingly popular as a female name and is now almost exclusively so.</p> <p>Although never as popular or successful as the more classically romantic <i>Jane Eyre</i>, <i>Shirley</i> is nevertheless now highly regarded by critics.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charles-dickens/oliver-twist @@ -660,23 +417,12 @@ Charles Dickens https://standardebooks.test/ebooks/charles-dickens - Charles John Huffam Dickens - https://en.wikipedia.org/wiki/Charles_Dickens - https://id.loc.gov/authorities/names/n78087607 - 2020-03-01T17:50:51Z + 2020-03-01T17:50:51Z 2020-10-11T18:45:36Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/730 - https://archive.org/details/olivertwist1907dick Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A poor boy, born and raised in a workhouse in Victorian England, falls into the control of a gang of heartless criminals. - -

Oliver Twist, or The Parish Boy’s Progress was Charles Dickens’ second novel, following The Pickwick Papers, and was published as a serial in the magazine Bentley’s Miscellany between 1837 and 1839. It details the misadventures of its eponymous character, Oliver Twist, born in a Victorian-era workhouse, his mother dying within minutes of his birth. He is raised in miserable conditions, half-starved, and then sent out as an apprentice to an undertaker. Running away from this situation, he walks to London and falls under the influence of a criminal gang run by an old man called Fagin, who wants to employ the child as a pickpocket.

-

The novel graphically depicts the wretched living conditions of much of the poor people of Victorian times and the disgusting slums in which they were forced to live. It has been accused of perpetrating anti-Semitic stereotypes in the character of Fagin, almost always referred to as “the Jew” in the book’s early chapters. Interestingly, while the serial was still running in the magazine, Dickens was eventually persuaded that he was wrong in this and removed many such usages in later episodes. He also introduced more kindly Jewish characters in such later novels as Our Mutual Friend.

-

Oliver Twist was immediately popular in serial form, with its often gripping story and lurid details. It has remained one of Dicken’s best-loved novels, and the story has often been made into films and television series, as well as into a very popular musical, Oliver!.

-
+ <p><i>Oliver Twist, or The Parish Boy’s Progress</i> was <a href="https://standardebooks.org/ebooks/charles-dickens">Charles Dickens’</a> second novel, following <i>The Pickwick Papers</i>, and was published as a serial in the magazine <i>Bentley’s Miscellany</i> between 1837 and 1839. It details the misadventures of its eponymous character, Oliver Twist, born in a Victorian-era workhouse, his mother dying within minutes of his birth. He is raised in miserable conditions, half-starved, and then sent out as an apprentice to an undertaker. Running away from this situation, he walks to London and falls under the influence of a criminal gang run by an old man called Fagin, who wants to employ the child as a pickpocket.</p> <p>The novel graphically depicts the wretched living conditions of much of the poor people of Victorian times and the disgusting slums in which they were forced to live. It has been accused of perpetrating anti-Semitic stereotypes in the character of Fagin, almost always referred to as “the Jew” in the book’s early chapters. Interestingly, while the serial was still running in the magazine, Dickens was eventually persuaded that he was wrong in this and removed many such usages in later episodes. He also introduced more kindly Jewish characters in such later novels as <i>Our Mutual Friend</i>.</p> <p><i>Oliver Twist</i> was immediately popular in serial form, with its often gripping story and lurid details. It has remained one of Dicken’s best-loved novels, and the story has often been made into films and television series, as well as into a very popular musical, <i>Oliver!</i>.</p> @@ -684,14 +430,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charles-dickens/great-expectations @@ -699,23 +443,12 @@ Charles Dickens https://standardebooks.test/ebooks/charles-dickens - https://en.wikipedia.org/wiki/Charles_Dickens - https://id.loc.gov/authorities/names/n78087607 - 2019-12-23T22:06:14Z + 2019-12-23T22:06:14Z 2020-12-04T03:40:37Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/1400 - https://catalog.hathitrust.org/Record/011405484 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. An orphan boy living in Victorian England begins his life in extreme poverty and goes on to experience good fortune, love, rejection, wealth, and social challenges as he grows into adulthood. - -

Charles Dickens was a British author, journalist, and editor whose work brought attention to the struggles of Victorian England’s lower classes. His writings provided a candid portrait of the era’s poor and served as inspiration for social change.

-

Great Expectations, Dickens’ thirteenth novel, was first published in serial form between 1860 and 1861 and is widely praised as the author’s greatest literary accomplishment.

-

The novel follows the life, relationships, and moral development of an orphan boy named Pip. The novel begins when Pip encounters an escaped convict whom he helps and fears in equal measure. Pip’s actions that day set off a sequence of events and interactions that shape Pip’s character as he matures into adulthood.

-

The vivid characters, engaging narrative style, and universal themes of Great Expectations establish this novel as a timeless literary classic, and an engaging portrait of Victorian life.

-
+ <p><a href="https://standardebooks.org/ebooks/charles-dickens">Charles Dickens</a> was a British author, journalist, and editor whose work brought attention to the struggles of Victorian England’s lower classes. His writings provided a candid portrait of the era’s poor and served as inspiration for social change.</p> <p><i>Great Expectations</i>, Dickens’ thirteenth novel, was first published in serial form between 1860 and 1861 and is widely praised as the author’s greatest literary accomplishment.</p> <p>The novel follows the life, relationships, and moral development of an orphan boy named Pip. The novel begins when Pip encounters an escaped convict whom he helps and fears in equal measure. Pip’s actions that day set off a sequence of events and interactions that shape Pip’s character as he matures into adulthood.</p> <p>The vivid characters, engaging narrative style, and universal themes of <i>Great Expectations</i> establish this novel as a timeless literary classic, and an engaging portrait of Victorian life.</p> @@ -725,14 +458,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/anonymous/beowulf/john-lesslie-hall @@ -741,30 +472,21 @@ Anonymous https://standardebooks.test/ebooks/anonymous
- 2019-12-01T22:30:11Z + 2019-12-01T22:30:11Z 2020-12-02T01:38:34Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/16328 - https://books.google.com/books?id=rfhDAAAAYAAJ Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A hero is hired to kill a monster that has been plaguing the land. - -

Horothgar, King of the Danes, invites warriors from neighboring kingdoms to his great mead hall with the hope that one of them will solve his problem. A monster named Grendel has been terrorizing the land and killing his people. One of the warriors who answers this call is our epic hero, Beowulf.

-

The Beowulf Manuscript, also known as the Nowell Codex, dates back to the late 10th century or early 11th century and is the only copy in existence. In 1731, the manuscript was damaged from the Cotton Library fire, making several lines in the poem unreadable. Today, with the help of modern technology, advanced techniques are being used not only to preserve the document from further degradation but also to reveal missing letters. All this is done to ensure that this epic story will continue to live on for many more generations.

-
+ <p>Horothgar, King of the Danes, invites warriors from neighboring kingdoms to his great mead hall with the hope that one of them will solve his problem. A monster named Grendel has been terrorizing the land and killing his people. One of the warriors who answers this call is our epic hero, Beowulf.</p> <p>The <i>Beowulf</i> Manuscript, also known as the Nowell Codex, dates back to the late 10th century or early 11th century and is the only copy in existence. In 1731, the manuscript was damaged from the Cotton Library fire, making several lines in the poem unreadable. Today, with the help of modern technology, advanced techniques are being used not only to preserve the document from further degradation but also to reveal missing letters. All this is done to ensure that this epic story will continue to live on for many more generations.</p> - - - - - - - - + + + + + + https://standardebooks.test/ebooks/charlotte-bronte/jane-eyre @@ -772,21 +494,12 @@ Charlotte Brontë https://standardebooks.test/ebooks/charlotte-bronte - https://en.wikipedia.org/wiki/Charlotte_Bronte - http://id.loc.gov/authorities/names/n79054114 - 2019-11-10T19:43:54Z + 2019-11-10T19:43:54Z 2020-12-04T03:40:40Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/1260 - https://books.google.com/books?id=U9t4uzK2H0oC Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A woman is hired by the mysterious master of Thornfield Hall as a governess for his young ward. - -

Jane Eyre experienced abuse at a young age, not only from her aunt—who raised her after both her parents died—but also from the headmaster of Lowood Institution, where she is sent away to. After ten years of living and teaching at Lowood Jane decides she is ready to see more of the world and takes a position as a governess at Thornfield Hall. Jane later meets the mysterious master of Thornfield Hall, Mr. Rochester, and becomes drawn to him.

-

Charlotte Brontë published Jane Eyre: An Autobiography on October 16th 1847 using the pen name “Currer Bell.” The novel is known for revolutionizing prose fiction, and is considered to be ahead of its time because of how it deals with topics of class, religion, and feminism.

-
+ <p>Jane Eyre experienced abuse at a young age, not only from her aunt—who raised her after both her parents died—but also from the headmaster of Lowood Institution, where she is sent away to. After ten years of living and teaching at Lowood Jane decides she is ready to see more of the world and takes a position as a governess at Thornfield Hall. Jane later meets the mysterious master of Thornfield Hall, Mr. Rochester, and becomes drawn to him.</p> <p><a href="https://standardebooks.org/ebooks/charlotte-bronte">Charlotte Brontë</a> published <i>Jane Eyre: An Autobiography</i> on October 16th 1847 using the pen name “Currer Bell.” The novel is known for revolutionizing prose fiction, and is considered to be ahead of its time because of how it deals with topics of class, religion, and feminism.</p> @@ -799,14 +512,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/booker-t-washington/up-from-slavery @@ -814,23 +525,12 @@ Booker T. Washington https://standardebooks.test/ebooks/booker-t-washington - Booker Taliaferro Washington - https://en.wikipedia.org/wiki/Booker_T._Washington - http://id.loc.gov/authorities/names/n79063604 - 2019-09-26T17:49:03Z + 2019-09-26T17:49:03Z 2020-11-24T16:22:28Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/2376 - https://archive.org/details/upfromslaveryan06washgoog Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. The autobiography of Booker T. Washington, former slave and founder of the Tuskegee Institute. - -

Booker Taliaferro Washington began life as a slave in Virginia shortly before emancipation, but rose to become one of the most celebrated leaders the African American community has ever had. His principal occupation was as president of the Tuskegee Institute, which he founded in 1881, but he earned national renown as an orator, writer and political advisor. His address at the Atlanta Exposition was a pivotal moment in race relations in America.

-

Washington believed deeply in the dignity of physical labor, and that merit and talent are eventually rewarded regardless of race or class. The Tuskegee Institution was primarily a technical college, and aimed to teach industrial skills in addition to academic training. Students built many of the buildings on the campus, grew the food that was eaten there, and even made the furniture, tools and vehicles used by the school.

-

Up from Slavery was originally published as a serialized work in The Outlook, a Christian magazine based in New York, before being collected in a single volume in 1901. This edition includes an introduction by Walter H. Page, a future U.S. ambassador to the United Kingdom.

-
+ <p><a href="https://standardebooks.org/ebooks/booker-t-washington">Booker Taliaferro Washington</a> began life as a slave in Virginia shortly before emancipation, but rose to become one of the most celebrated leaders the African American community has ever had. His principal occupation was as president of the Tuskegee Institute, which he founded in 1881, but he earned national renown as an orator, writer and political advisor. His address at the Atlanta Exposition was a pivotal moment in race relations in America.</p> <p>Washington believed deeply in the dignity of physical labor, and that merit and talent are eventually rewarded regardless of race or class. The Tuskegee Institution was primarily a technical college, and aimed to teach industrial skills in addition to academic training. Students built many of the buildings on the campus, grew the food that was eaten there, and even made the furniture, tools and vehicles used by the school.</p> <p><i>Up from Slavery</i> was originally published as a serialized work in <i>The Outlook</i>, a Christian magazine based in New York, before being collected in a single volume in 1901. This edition includes an introduction by Walter <abbr>H.</abbr> Page, a future U.S. ambassador to the United Kingdom.</p> @@ -838,14 +538,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charles-dickens/a-tale-of-two-cities @@ -853,21 +551,12 @@ Charles Dickens https://standardebooks.test/ebooks/charles-dickens - https://en.wikipedia.org/wiki/Charles_Dickens - http://id.loc.gov/authorities/names/n78087607 - 2019-08-14T18:12:49Z + 2019-08-14T18:12:49Z 2020-10-11T18:45:17Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/98 - https://books.google.com/books?id=UXkPAAAAQAAJ Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A family is reunited, added to, and then threatened to be torn apart by events arising from the French Revolution. - -

A doctor is released from the Bastille after being falsely imprisoned for almost eighteen years. A young woman discovers the father she’s never known is not dead but alive, if not entirely well. A young man is acquitted of being a traitor, due in part to the efforts of a rather selfish lout who is assisting the young man’s attorney. A man has a wine shop in Paris with a wife who knits at the bar. These disparate elements are tied together as only Dickens can, and in the process he tells the story of the French Revolution.

-

Charles Dickens was fascinated by Thomas Carlyle’s magnum opus The French Revolution; according to Dickens’ letters, he read it “500 times” and carried it with him everywhere while he was working on this novel. When he wrote to Carlyle asking him for books to read on background, Carlyle sent him two cartloads full. Dickens mimicked Carlyle’s style, his chronology, and his overall characterization of the revolution; although A Tale of Two Cities is fiction, the historical events described are largely accurate, sometimes exactly so. Even so, Dickens made his name and reputation on telling stories full of characters one could be invested in, care about, and despise, and this novel has all of those and more. It also, in its first and last lines, has two of the most famous lines in literature. With the possible exception of A Christmas Carol, it is his most popular novel, and according to many, his best.

-
+ <p>A doctor is released from the Bastille after being falsely imprisoned for almost eighteen years. A young woman discovers the father she’s never known is not dead but alive, if not entirely well. A young man is acquitted of being a traitor, due in part to the efforts of a rather selfish lout who is assisting the young man’s attorney. A man has a wine shop in Paris with a wife who knits at the bar. These disparate elements are tied together as only <a href="https://standardebooks.org/ebooks/charles-dickens">Dickens</a> can, and in the process he tells the story of the French Revolution.</p> <p>Charles Dickens was fascinated by <a href="https://standardebooks.org/ebooks/thomas-carlyle">Thomas Carlyle’s</a> magnum opus <i>The French Revolution</i>; according to Dickens’ letters, he read it “500 times” and carried it with him everywhere while he was working on this novel. When he wrote to Carlyle asking him for books to read on background, Carlyle sent him two cartloads full. Dickens mimicked Carlyle’s style, his chronology, and his overall characterization of the revolution; although <i>A Tale of Two Cities</i> is fiction, the historical events described are largely accurate, sometimes exactly so. Even so, Dickens made his name and reputation on telling stories full of characters one could be invested in, care about, and despise, and this novel has all of those and more. It also, in its first and last lines, has two of the most famous lines in literature. With the possible exception of <a href="https://standardebooks.org/ebooks/charles-dickens/a-christmas-carol"><i>A Christmas Carol</i></a>, it is his most popular novel, and according to many, his best.</p> @@ -878,14 +567,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charles-babbage/passages-from-the-life-of-a-philosopher @@ -893,33 +580,21 @@ Charles Babbage https://standardebooks.test/ebooks/charles-babbage - https://en.wikipedia.org/wiki/Charles_Babbage - http://id.loc.gov/authorities/names/n50031102 - 2019-07-20T21:10:32Z + 2019-07-20T21:10:32Z 2020-10-11T18:45:06Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/57532 - https://archive.org/details/passagesfromlife00babb - https://archive.org/details/TO00961792_TO0324_62184_000000 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. The eminent Victorian scientist and mathematician on his inventions, dreams and adventures. - -

Charles Babbage was a Victorian polymath, and someone with a seemingly never-ending intellectual curiosity about the world around him. A mathematician by training, he also wrote copiously on subjects such as economics, physics, engineering, computation, cryptography, religion and education, along with conducting practical experiments with pretty much anything that had grabbed his interest at the time. Today, he’s widely viewed to be the father of the computer with his Difference and Analytical Engines. Although neither were fully completed during his lifetime, a working replica of the Difference Engine was built in the 1990s, and an Analytical Engine is currently in the planning stages.

-

This autobiography (first published near the end of his life in 1864) veers from topic to topic and rarely settles on any subject for more than a chapter. Apart from his early life and an explanation of the thinking behind his computing Engines, Babbage also transcribes his memories of climbing into an active volcano, arguing with street musicians, picking locks, standing in elections, and imagining life as a cheese mite, among other diverse subjects. The original meaning of the titular word “Philosopher” is “lover of wisdom,” and this book shows Babbage to be just that.

-
+ <p><a href="https://standardebooks.org/ebooks/charles-babbage">Charles Babbage</a> was a Victorian polymath, and someone with a seemingly never-ending intellectual curiosity about the world around him. A mathematician by training, he also wrote copiously on subjects such as economics, physics, engineering, computation, cryptography, religion and education, along with conducting practical experiments with pretty much anything that had grabbed his interest at the time. Today, he’s widely viewed to be the father of the computer with his Difference and Analytical Engines. Although neither were fully completed during his lifetime, a working replica of the Difference Engine was built in the 1990s, and an Analytical Engine is currently in the planning stages.</p> <p>This autobiography (first published near the end of his life in 1864) veers from topic to topic and rarely settles on any subject for more than a chapter. Apart from his early life and an explanation of the thinking behind his computing Engines, Babbage also transcribes his memories of climbing into an active volcano, arguing with street musicians, picking locks, standing in elections, and imagining life as a cheese mite, among other diverse subjects. The original meaning of the titular word “Philosopher” is “lover of wisdom,” and this book shows Babbage to be just that.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/bertrand-russell/the-problems-of-philosophy @@ -927,36 +602,23 @@ Bertrand Russell https://standardebooks.test/ebooks/bertrand-russell - Bertrand Arthur William Russell - https://en.wikipedia.org/wiki/Bertrand_Russell - http://id.loc.gov/authorities/names/n79056054 - 2019-07-16T16:44:31Z + 2019-07-16T16:44:31Z 2020-10-11T18:44:31Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/5827 - https://archive.org/details/problemsofphilo00russuoft Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A beginner’s guide to problems in various fields of philosophy. - -

The Problems of Philosophy, published in 1912, is an introductory book for a beginner in philosophical studies. In this book, the author attempts to provoke a discussion by posing different problems.

-

The book covers a wide variety of theories proposed by philosophers like Plato, Descartes, Hume, Aristotle, etc. In view of these theories, Russell poses questions about the nature of reality and our perception of it.

-

While the book refrains from providing absolute solutions to the problems it describes, it excels in guiding the readers towards developing their own way of thinking.

-
+ <p><i>The Problems of Philosophy</i>, published in 1912, is an introductory book for a beginner in philosophical studies. In this book, the author attempts to provoke a discussion by posing different problems.</p> <p>The book covers a wide variety of theories proposed by philosophers like Plato, Descartes, Hume, <a href="https://standardebooks.org/ebooks/aristotle">Aristotle</a>, <abbr>etc.</abbr> In view of these theories, <a href="https://standardebooks.org/ebooks/bertrand-russell">Russell</a> poses questions about the nature of reality and our perception of it.</p> <p>While the book refrains from providing absolute solutions to the problems it describes, it excels in guiding the readers towards developing their own way of thinking.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/ben-jonson/the-alchemist @@ -964,36 +626,24 @@ Ben Jonson https://standardebooks.test/ebooks/ben-jonson - Benjamin Jonson - https://en.wikipedia.org/wiki/Ben_Jonson - http://id.loc.gov/authorities/names/n80044918 - 2019-04-12T22:10:41Z + 2019-04-12T22:10:41Z 2020-10-11T18:44:18Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/4081 - https://archive.org/details/completeplayswit02jonsuoft Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A rollicking Elizabethan comedy in which two con men and their female compatriot gull a series of unfortunate victims out of their money. - -

First performed in 1610, The Alchemist is one of Ben Jonson’s greatest comedies. Written for the King’s Men—the acting company to which Shakespeare belonged—it was first performed in Oxford because the playhouses in London were closed due to the plague. It was an immediate success and has remained a popular staple ever since.

-

The play centers around a con man, his female accomplice, and a roguish butler who uses his master’s house to gull a series of victims out of their money and goods. Jonson uses the play to satirize as many people as he can—pompous lords, greedy commoners, and self-righteous Anabaptists alike—as his three con artists proceed to bilk everyone who comes to their door. They don multiple roles and weave elaborate tales to exploit their victims’ greed and amass a small fortune. But it all comes to a sudden, raucous end when the master unexpectedly returns to London and all the victims gather to try and reclaim their property.

-
+ <p>First performed in 1610, <i>The Alchemist</i> is one of <a href="https://standardebooks.org/ebooks/ben-jonson">Ben Jonson’s</a> greatest comedies. Written for the King’s Men—the acting company to which <a href="https://standardebooks.org/ebooks/william-shakespeare">Shakespeare</a> belonged—it was first performed in Oxford because the playhouses in London were closed due to the plague. It was an immediate success and has remained a popular staple ever since.</p> <p>The play centers around a con man, his female accomplice, and a roguish butler who uses his master’s house to gull a series of victims out of their money and goods. Jonson uses the play to satirize as many people as he can—pompous lords, greedy commoners, and self-righteous Anabaptists alike—as his three con artists proceed to bilk everyone who comes to their door. They don multiple roles and weave elaborate tales to exploit their victims’ greed and amass a small fortune. But it all comes to a sudden, raucous end when the master unexpectedly returns to London and all the victims gather to try and reclaim their property.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/christopher-marlowe/the-tragical-history-of-doctor-faustus @@ -1001,35 +651,23 @@ Christopher Marlowe https://standardebooks.test/ebooks/christopher-marlowe - https://en.wikipedia.org/wiki/Christopher_Marlowe - http://id.loc.gov/authorities/names/n78088956 - 2019-03-31T17:51:53Z + 2019-03-31T17:51:53Z 2020-10-11T18:45:57Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/779 - https://archive.org/details/christophermarl00elligoog Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. Dr. Faustus sells his soul to Lucifer in return for magical powers. - -

The Tragical History of Doctor Faustus, Christopher Marlowe’s classic interpretation of the Dr. Faustus legend, was first performed in London by the Admiral’s Men around 1592. It is believed to be the first dramatization of this classic tale wherein Faustus, a German scholar, trades his soul to Lucifer in return for magical powers and the command over the demon Mephistopheles. Faustus at first seeks to expand his knowledge of the universe, but soon finds that a deal with the devil brings little satisfaction. All too soon the contract expires, and Faustus is faced with the prospect of eternal damnation.

-

Two principal versions of this play exist, one based on the 1604 quarto (the A text) and a longer, emended version published in 1616 (the B text). This edition is based on Havelock Ellis’s 1893 edition of the 1604 text (the A text is currently believed by many scholars to be the closest to Marlowe’s original).

-

Often considered to be Marlowe’s greatest work, Doctor Faustus builds on the ancestry of the medieval morality play, but brings a more sympathetic view to the straying hero than those precursors to Elizabethan drama, and even ventures to pose questions of common Christian doctrine. This is the last play written by Marlowe before he was killed in a Deptford tavern.

-
+ <p><i>The Tragical History of Doctor Faustus</i>, <a href="https://standardebooks.org/ebooks/christopher-marlowe">Christopher Marlowe’s</a> classic interpretation of the <abbr>Dr.</abbr> Faustus legend, was first performed in London by the Admiral’s Men around 1592. It is believed to be the first dramatization of this classic tale wherein Faustus, a German scholar, trades his soul to Lucifer in return for magical powers and the command over the demon Mephistopheles. Faustus at first seeks to expand his knowledge of the universe, but soon finds that a deal with the devil brings little satisfaction. All too soon the contract expires, and Faustus is faced with the prospect of eternal damnation.</p> <p>Two principal versions of this play exist, one based on the 1604 quarto (the A text) and a longer, emended version published in 1616 (the B text). This edition is based on Havelock Ellis’s 1893 edition of the 1604 text (the A text is currently believed by many scholars to be the closest to Marlowe’s original).</p> <p>Often considered to be Marlowe’s greatest work, <i>Doctor Faustus</i> builds on the ancestry of the medieval morality play, but brings a more sympathetic view to the straying hero than those precursors to Elizabethan drama, and even ventures to pose questions of common Christian doctrine. This is the last play written by Marlowe before he was killed in a Deptford tavern.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charles-w-chesnutt/the-conjure-woman @@ -1037,40 +675,22 @@ Charles W. Chesnutt https://standardebooks.test/ebooks/charles-w-chesnutt - Charles Waddell Chesnutt - https://en.wikipedia.org/wiki/Charles_W._Chesnutt - https://id.loc.gov/authorities/names/n79138741 - 2019-02-28T20:33:07Z + 2019-02-28T20:33:07Z 2020-10-11T18:45:39Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/11666 - https://archive.org/details/conjurewoman00chesrich - https://chesnuttarchive.org/Works/Stories/stories.html - https://archive.org/details/atlantic64bostuoft - https://catalog.hathitrust.org/Record/009990972 - https://archive.org/details/selfculture00unkngoog Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. Former slave Julius tells fantastical tales about plantation life to the incredulous Northerners who have just moved in. - -

The Conjure Woman is a collection of fantastical stories narrated by Julius, a former slave, about life on the nearby plantations prior to the Civil War. Each involves an element of magic, be it a vine that dooms those who eat from it or a man transformed into a tree to avoid being separated from his wife. Julius’s audience, a married couple who have just moved to the South to cultivate grapes, listen on with mixed sympathy and disbelief. They disagree on whether Julius is telling the truth and whether there is some deeper significance to the tales. At turns humorous and unsettling, these stories provide a surprising lens into the realities of slavery.

-

The text is notable for spelling out Julius’s spoken accent. Although Julius has some stereotypical features of a simple-minded old slave, he is often regarded as a more clever and complicated figure. He seems to tell his tales not only to entertain his listeners, but to trick them to his advantage.

-

Many of these stories first appeared in national magazines, where they received popular acclaim, before being assembled as their own volume in 1899. Charles W. Chesnutt’s race was not mentioned by the publisher, nor could many guess his African heritage based on his appearance. However, Chesnutt embraced his African-American identity and was a prominent activist for black rights. The Conjure Woman, his first book, is considered an important early work of African-American fiction.

-

This edition includes four additional Julius tales that appeared in magazines but were not collected during Chesnutt’s lifetime.

-
+ <p><i>The Conjure Woman</i> is a collection of fantastical stories narrated by Julius, a former slave, about life on the nearby plantations prior to the Civil War. Each involves an element of magic, be it a vine that dooms those who eat from it or a man transformed into a tree to avoid being separated from his wife. Julius’s audience, a married couple who have just moved to the South to cultivate grapes, listen on with mixed sympathy and disbelief. They disagree on whether Julius is telling the truth and whether there is some deeper significance to the tales. At turns humorous and unsettling, these stories provide a surprising lens into the realities of slavery.</p> <p>The text is notable for spelling out Julius’s spoken accent. Although Julius has some stereotypical features of a simple-minded old slave, he is often regarded as a more clever and complicated figure. He seems to tell his tales not only to entertain his listeners, but to trick them to his advantage.</p> <p>Many of these stories first appeared in national magazines, where they received popular acclaim, before being assembled as their own volume in 1899. <a href="https://standardebooks.org/ebooks/charles-w-chesnutt">Charles <abbr>W.</abbr> Chesnutt’s</a> race was not mentioned by the publisher, nor could many guess his African heritage based on his appearance. However, Chesnutt embraced his African-American identity and was a prominent activist for black rights. <i>The Conjure Woman</i>, his first book, is considered an important early work of African-American fiction.</p> <p>This edition includes four additional Julius tales that appeared in magazines but were not collected during Chesnutt’s lifetime.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/carey-rockwell/stand-by-for-mars @@ -1078,21 +698,12 @@ Carey Rockwell https://standardebooks.test/ebooks/carey-rockwell - http://id.loc.gov/authorities/names/no98109014 - 2019-01-24T03:59:21Z + 2019-01-24T03:59:21Z 2020-10-23T18:00:01Z - en-US - Standard Ebooks - https://www.gutenberg.org/ebooks/19526 - https://www.pgdp.org/ols/tools/biblio.php?id=projectID43efed53d919f Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. Young Tom Corbett finally realizes his dream of becoming a Space Cadet but soon he and his classmates find themselves fighting to stay alive in the harsh Martian desert. - -

Inspired by Robert A. Heinlein’s 1948 novel Space Cadet, the Tom Corbett series started as a TV show in 1950. It stayed on the air for five years and, among other things, spawned a series of novels published by Grosset & Dunlap. Written by unknown authors, they were published under the pseudonym Carey Rockwell, with Willy Ley (the TV show’s technical director) listed as technical advisor.

-

Stand by for Mars! is the first of eight novels written between 1952 and 1956. It features a young Tom Corbett who is trying to fulfill his dream of becoming a Space Cadet on his way to joining the Solar Guard. But interpersonal conflicts stand in his way. Tom, along with his unit-mates Astro and Roger Manning, must find a way past their difficulties or else risk being washed out. Their adventure takes them from the rigours of the Academy on Earth to the rugged and deadly deserts of Mars where they need to learn that only by working together can they hope to survive.

-

An entire generation grew up on the adventures of Tom Corbett—it spawned radio shows, music recordings and a whole series of toys and tie-ins. Fans still maintain a Tom Corbett Space Cadet website and have held reunions as recently as 2006. Stand by for Mars! is a classic example of the space-crazy juvenile fiction of its era.

-
+ <p>Inspired by Robert <abbr>A.</abbr> Heinlein’s 1948 novel <i>Space Cadet</i>, the Tom Corbett series started as a TV show in 1950. It stayed on the air for five years and, among other things, spawned a series of novels published by Grosset &amp; Dunlap. Written by unknown authors, they were published under the pseudonym <a href="https://standardebooks.org/ebooks/carey-rockwell">Carey Rockwell</a>, with Willy Ley (the TV show’s technical director) listed as technical advisor.</p> <p><i>Stand by for Mars!</i> is the first of eight novels written between 1952 and 1956. It features a young Tom Corbett who is trying to fulfill his dream of becoming a Space Cadet on his way to joining the Solar Guard. But interpersonal conflicts stand in his way. Tom, along with his unit-mates Astro and Roger Manning, must find a way past their difficulties or else risk being washed out. Their adventure takes them from the rigours of the Academy on Earth to the rugged and deadly deserts of Mars where they need to learn that only by working together can they hope to survive.</p> <p>An entire generation grew up on the adventures of Tom Corbett—it spawned radio shows, music recordings and a whole series of toys and tie-ins. Fans still maintain a <a href="http://www.solarguard.com/">Tom Corbett Space Cadet website</a> and have held reunions as recently as 2006. <i>Stand by for Mars!</i> is a classic example of the space-crazy juvenile fiction of its era.</p> @@ -1100,14 +711,12 @@ - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/charles-darwin/the-origin-of-species @@ -1115,35 +724,21 @@ Charles Darwin https://standardebooks.test/ebooks/charles-darwin - Charles Robert Darwin - https://en.wikipedia.org/wiki/Charles_Darwin - https://id.loc.gov/authorities/names/n78095637 - 2019-01-15T04:52:30Z + 2019-01-15T04:52:30Z 2020-12-02T00:16:29Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/2009 - https://catalog.hathitrust.org/Record/100424049 Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A distinguished amateur scientist lays out the evidence for the origin of species by means of natural selection. - -

The Origin of Species by Charles Darwin must rank as one of the most influential and consequential books ever published, initiating scientific, social and religious ferment ever since its first publication in 1859. Its full title is The Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life, in some editions prefaced by the word “On.”

-

Darwin describes the book as simply an “abstract” of his ideas, which are more fully fleshed out and supported with detailed examples in his other, more scholarly works (for example, he wrote several long treatises entirely about barnacles). The Origin of Species itself was intended to reach a wider audience and is written in such a way that any reasonably educated and thoughtful reader can follow Darwin’s argument that species of animals and plants are not independent creations, fixed for all time, but mutable. Species have been shaped in response to the effects of natural selection, which Darwin compares to the directed or manual selection by human breeders of domesticated animals.

-

The Origin of Species was eagerly taken up by the reading public, and rapidly went through several editions. This Standard Ebooks edition is based on the sixth edition published by John Murray in 1872, generally considered to be the definitive edition with many amendments and updates by Darwin himself.

-

The Origin of Species has never been out of print and continues to be an extremely popular work. Later scientific discoveries such as the breakthrough of DNA sequencing have refined our concept of some of Darwin’s ideas and given us a better understanding of issues he found puzzling, but the basic thrust of his theory remains unchallenged.

-
+ <p><i>The Origin of Species</i> by <a href="https://standardebooks.org/ebooks/charles-darwin">Charles Darwin</a> must rank as one of the most influential and consequential books ever published, initiating scientific, social and religious ferment ever since its first publication in 1859. Its full title is <i>The Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life</i>, in some editions prefaced by the word “On.”</p> <p>Darwin describes the book as simply an “abstract” of his ideas, which are more fully fleshed out and supported with detailed examples in his other, more scholarly works (for example, he wrote several long treatises entirely about barnacles). <i>The Origin of Species</i> itself was intended to reach a wider audience and is written in such a way that any reasonably educated and thoughtful reader can follow Darwin’s argument that species of animals and plants are not independent creations, fixed for all time, but mutable. Species have been shaped in response to the effects of natural selection, which Darwin compares to the directed or manual selection by human breeders of domesticated animals.</p> <p><i>The Origin of Species</i> was eagerly taken up by the reading public, and rapidly went through several editions. This Standard Ebooks edition is based on the sixth edition published by John Murray in 1872, generally considered to be the definitive edition with many amendments and updates by Darwin himself.</p> <p><i>The Origin of Species</i> has never been out of print and continues to be an extremely popular work. Later scientific discoveries such as the breakthrough of DNA sequencing have refined our concept of some of Darwin’s ideas and given us a better understanding of issues he found puzzling, but the basic thrust of his theory remains unchallenged.</p> - - - - - - - - + + + + + +
https://standardebooks.test/ebooks/baroness-orczy/the-scarlet-pimpernel @@ -1151,24 +746,12 @@ Baroness Orczy https://standardebooks.test/ebooks/baroness-orczy - Baroness Emma Magdolna Rozália Mária Jozefa Borbála Orczy de Orci - https://en.wikipedia.org/wiki/Emma_Orczy - http://id.loc.gov/authorities/names/n50064803 - 2018-12-13T22:24:34Z + 2018-12-13T22:24:34Z 2020-11-30T02:35:52Z - en-GB - Standard Ebooks - https://www.gutenberg.org/ebooks/60 - https://books.google.com/books?id=OA8nAAAAMAAJ Public domain in the United States. Users located outside of the United States must check their local laws before using this ebook. Original content released to the public domain via the Creative Commons CC0 1.0 Universal Public Domain Dedication. A daring Englishman with a secret identity rescues French aristocrats from the guillotine during the French Revolution. - -

At the height of the French Revolution’s Reign of Terror, a mysterious daredevil rescues French aristocrats from execution and smuggles them out of France. This secretive escape artist is known to the French authorities only by the drawings of a flower, the scarlet pimpernel, that he leaves as his calling card.

-

Marguerite St. Just has avoided the worst of the revolutionary turmoil. Her recent marriage to the English baronet Sir Percy Blakeney has taken her away from the chaos in France to England, where she is quickly recognized as the most fashionable and clever lady in London. But even in England, she is unable to escape the effects of the Revolution, and she is soon blackmailed into a plot to unmask and capture the elusive Scarlet Pimpernel.

-

With The Scarlet Pimpernel, Baroness Orczy introduced the world to a talented, adventurous hero hiding behind a dull and ineffectual secret identity. Countless imitators followed, until the “secret identity” became a common feature of adventure stories.

-

In addition to the novel, Orczy wrote with her husband a stage play of the same name, which broke stage records and saw several revivals. Both the play and the novel received much critical and popular acclaim, and Orczy went on to write several sequels about the mysterious Pimpernel and his companions.

-
+ <p>At the height of the French Revolution’s Reign of Terror, a mysterious daredevil rescues French aristocrats from execution and smuggles them out of France. This secretive escape artist is known to the French authorities only by the drawings of a flower, the scarlet pimpernel, that he leaves as his calling card.</p> <p>Marguerite <abbr>St.</abbr> Just has avoided the worst of the revolutionary turmoil. Her recent marriage to the English baronet Sir Percy Blakeney has taken her away from the chaos in France to England, where she is quickly recognized as the most fashionable and clever lady in London. But even in England, she is unable to escape the effects of the Revolution, and she is soon blackmailed into a plot to unmask and capture the elusive Scarlet Pimpernel.</p> <p>With <i>The Scarlet Pimpernel</i>, <a href="https://standardebooks.org/ebooks/baroness-orczy">Baroness Orczy</a> introduced the world to a talented, adventurous hero hiding behind a dull and ineffectual secret identity. Countless imitators followed, until the “secret identity” became a common feature of adventure stories.</p> <p>In addition to the novel, Orczy wrote with her husband a stage play of the same name, which broke stage records and saw several revivals. Both the play and the novel received much critical and popular acclaim, and Orczy went on to write several sequels about the mysterious Pimpernel and his companions.</p> @@ -1177,13 +760,11 @@ - - - - - - - - + + + + + +
diff --git a/www/atom/style.php b/www/atom/style.php new file mode 100644 index 00000000..15f06f18 --- /dev/null +++ b/www/atom/style.php @@ -0,0 +1,83 @@ +\n") +?> + + + + false]) ?> +
+

+

This page is an Atom 1.0 feed. The URL in your browser’s address bar () can be used in any Atom client.

+
    + +
  1. + +

    + + + + + + +

    +
    + +

    + + + + + + +

    +
    +
    +
      + +
    • +

      +
    • +
      +
    +
    +

    + +

    +
    +

    Read

    + +
  2. +
    +
+
+ +
+
diff --git a/www/css/core.css b/www/css/core.css index fd6c0ec7..8625da9d 100644 --- a/www/css/core.css +++ b/www/css/core.css @@ -1190,14 +1190,11 @@ main.ebooks > aside.alert + ol{ margin-top: 4rem; } -.rss .download, .opds .download{ font-weight: bold; margin-top: 1rem; } -.rss .download + ul, -.rss .download + ul li, .opds .download + ul, .opds .download + ul > li{ margin-top: 0; @@ -1242,6 +1239,10 @@ ol.ebooks-list.list > li .thumbnail-container{ grid-row: 1 / span 3; } +ol.ebooks-list.list.rss > li .thumbnail-container{ + grid-row: 1 / span 5; +} + .opds ol.ebooks-list.list > li .thumbnail-container{ grid-row: 1 / span 6; } @@ -1409,8 +1410,7 @@ ul.tags{ margin-top: 1rem; } -.opds ul.tags, -.rss ul.tags{ +.opds ul.tags{ justify-content: flex-start; margin: .5rem auto; } @@ -1420,8 +1420,7 @@ ul.tags li{ } ul.tags li a, -.opds ul.tags li p, -.rss ul.tags li p{ +.opds ul.tags li p{ border: 1px solid var(--body-text); border-radius: 5px; padding: .25rem .5rem; @@ -2502,10 +2501,6 @@ ul.feed p{ font-size: .8rem; } -.rss > li p:last-child{ - margin-top: 0; -} - @media (hover: none) and (pointer: coarse){ /* target ipads and smartphones without a mouse */ /* For iPad, unset the height so it matches the other elements */ select[multiple]{ diff --git a/www/feeds/index.php b/www/feeds/index.php index fc716135..ac481ad2 100644 --- a/www/feeds/index.php +++ b/www/feeds/index.php @@ -6,30 +6,21 @@ require_once('Core.php'); // But, serving that mime type doesn't display the feed in a browser; rather, it downloads it as an attachment. // `text/xml` is the de facto RSS mime type, used by most popular feeds and recognized by all RSS readers. // It also displays the feed in a browser so we can style it with XSLT. -// This is the same for OPDS (whose de jure mime type is `application/atom+xml`). +// This is the same for Atom/OPDS (whose de jure mime type is `application/atom+xml`). + +$subjects = ["Adventure", "Autobiography", "Biography", "Children’s", "Comedy", "Drama", "Fantasy", "Fiction", "Horror", "Memoir", "Mystery", "Nonfiction", "Philosophy", "Poetry", "Satire", "Science Fiction", "Shorts", "Spirituality", "Tragedy", "Travel"]; ?> 'A list of available feeds of Standard Ebooks ebooks.']) ?>

Ebook Feeds

We offers several feeds that you can use to get notified about new ebooks, or to browse and download from our catalog directly in your ereader.

-
-

RSS feeds

-

RSS feeds can be read by one of the many RSS clients available for download, like Thunderbird.

-
    -
  • -

    New releases (RSS 2.0)

    -

    /rss/new-releases

    -

    A list of the thirty latest Standard Ebooks ebook releases, most-recently-released first.

    -
  • -
-
-

OPDS feeds

+

OPDS 1.2 feeds

OPDS feeds are designed for use with ereading systems like KOreader or Calibre, or with ereaders like Foliate. They allow you to search, browse, and download from our catalog, directly in your ereader. They’re also perfect for organizations who wish to download and process our catalog efficiently.

@@ -45,6 +36,63 @@ require_once('Core.php');
+
+

Atom 1.0 feeds

+

Atom feeds can be read by one of the many RSS clients available for download, like Thunderbird. They contain more information than regular RSS feeds. Most RSS clients can read both Atom and RSS feeds.

+

Note that some RSS readers may show these feeds ordered by when an ebook was last updated, even though the feeds are ordered by when an ebook was first released. You should be able to change the sort order in your RSS reader.

+
    +
  • +

    New releases

    +

    /atom/new-releases

    +

    The thirty latest Standard Ebooks, most-recently-released first.

    +
  • +
  • +

    All ebooks

    +

    /atom/all

    +

    All Standard Ebooks, most-recently-released first.

    +
  • +
+
+

Ebooks by subject

+
    + +
  • +

    +

    +

    /atom/subjects/

    +
  • + +
+
+
+
+

RSS 2.0 feeds

+

RSS feeds are an alternative to Atom feeds. They contain less information than Atom feeds, but might be better supported by some RSS readers.

+
    +
  • +

    New releases

    +

    /rss/new-releases

    +

    The thirty latest Standard Ebooks, most-recently-released first.

    +
  • +
  • +

    All ebooks

    +

    /rss/all

    +

    All Standard Ebooks, most-recently-released first.

    +
  • +
+
+

Ebooks by subject

+
    + +
  • +

    +

    +

    /rss/subjects/

    +
  • + +
+
+
diff --git a/www/opds/search.php b/www/opds/search.php index 1464f9ed..2bf566c8 100644 --- a/www/opds/search.php +++ b/www/opds/search.php @@ -16,25 +16,25 @@ catch(\Exception $ex){ include(WEB_ROOT . '/404.php'); exit(); } -print("\n"); +print("\n\n"); ?> - https://standardebooks.org/opds/all?query= - - - - - - Standard Ebooks OPDS Search Results - Free and liberated ebooks, carefully produced for the true book lover. - /images/logo.png + /opds/all?query= + + + + + + Search Results + Results for “”. + /images/logo.png Format('Y-m-d\TH:i:s\Z') ?> Standard Ebooks - https://standardebooks.org + - $ebook]) ?> + $ebook]) ?> diff --git a/www/opds/style.php b/www/opds/style.php index b5203668..89ba2a23 100644 --- a/www/opds/style.php +++ b/www/opds/style.php @@ -11,7 +11,7 @@ print("\n") false]) ?>

-

This page is an OPDS feed. The URL in your browser’s address bar () can be used in any OPDS client.

+

This page is an OPDS 1.2 feed. The URL in your browser’s address bar () can be used in any OPDS client.

    @@ -38,7 +38,7 @@ print("\n") - The cover for the Standard Ebooks edition of Winnie-the-Pooh, by A. A. Milne + diff --git a/www/rss/style.php b/www/rss/style.php index e7a4fa52..10d74a3e 100644 --- a/www/rss/style.php +++ b/www/rss/style.php @@ -5,23 +5,37 @@ require_once('Core.php'); header('Content-Type: text/xsl'); print("\n") ?> - + false]) ?> -
    +

    -

    This page is an RSS feed. The URL in your browser’s address bar () can be used in any RSS reader.

    -
      +

      This page is an RSS 2.0 feed. The URL in your browser’s address bar () can be used in any RSS reader.

      +
      1. - - - - - - + +

        + + + + + + +

        • @@ -29,9 +43,11 @@ print("\n")
        -

        - -

        +
        +

        + +

        +

        Read