Populating site files with initial commit.

bookshelf
Gutenberg back end service account 2019-08-18 13:17:16 -04:00
parent 4b66789feb
commit 42e8d3b53f
38 changed files with 4183 additions and 327 deletions

15
.gitignore vendored Normal file → Executable file
View File

@ -1,19 +1,4 @@
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
*.yml
*.html
ebooks
internal
cache
ftp
gutenberg
public
pics
feeds
files
*php
*~
*bak
BACKUP

View File

@ -19,14 +19,16 @@ gem "minima", "~> 2.0"
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.6"
## gbn: we're not using feeds (this creates feed.xml:
## gem "jekyll-feed", "~> 0.6"
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
### gbn: not needed with a Linux system
### gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.0" if Gem.win_platform?
### gbn customizations
gem 'jekyll-optional-front-matter' # https://github.com/benbalter/jekyll-optional-front-matter
### gem 'jekyll-optional-front-matter' # https://github.com/benbalter/jekyll-optional-front-matter

77
Gemfile.lock Normal file
View File

@ -0,0 +1,77 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.6.0)
public_suffix (>= 2.0.2, < 4.0)
colorator (1.1.0)
concurrent-ruby (1.1.5)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.11.1)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.8.5)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (~> 1.14)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-feed (0.12.1)
jekyll (>= 3.7, < 5.0)
jekyll-optional-front-matter (0.3.0)
jekyll (~> 3.0)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-seo-tag (2.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (1.17.0)
liquid (4.0.3)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6)
minima (2.5.0)
jekyll (~> 3.5)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (3.1.0)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
rouge (3.4.1)
ruby_dep (1.5.0)
safe_yaml (1.0.5)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
PLATFORMS
ruby
DEPENDENCIES
jekyll (~> 3.8.5)
jekyll-feed (~> 0.6)
jekyll-optional-front-matter
minima (~> 2.0)
tzinfo-data
BUNDLED WITH
2.0.2

View File

@ -1,21 +1,44 @@
# gutenbergsite
The Project Gutenberg Web site, database, and other internals
This is the *source* which is used to build the site. It is managed by git, with this private repository:
https://github.com/gbnewby/gutenbergsite
This is the *source* which is used to build the site. It is managed by git in a repository at https://github.com/gbnewby/gutenbergsite
An ssh key is needed to enable pulls or commits.
An ssh key is needed to enable pulls or commits, but any user logged into github may send pull requests.
*** On the Project Gutenberg site, use the designated username to edit files and generate the site. ***
The basic setup is:
$BASEDIR is the path where we maintain the site.
$BASEDIR/gutenbergsite is the git-maintained content
$BASEDIR/html is the path on the server that the webserver uses as its DOCUMENT ROOT.
We use Jekyll to convert pages from github-flavored markdown to HTML, applying our styles.
Most pages for the live site (i.e., under $BASEDIR/html) should exist under $BASEDIR/gutenbergsite. Any exceptions will be noted in $BASEDIR/gutenbergsite/_config.yml (the Jekyll configuration file).
To update the git-maintained content and push to the live site:
cd $BASEDIR/gutenbergsite
jekyll build --verbose
(--verbose is optional)
Any changes to files under gutenbergsite should be checked in via git. For example,
git add FILENAME (for newly created files only)
git commit (give an informative commit log message)
git push
Similarly, any changes made via github.com should be pulled to $BASEDIR/gutenbergsite:
cd $BASEDIR/gutenbergsite
git pull
Pages that will be converted from markdown to HTML (and have our header/footer added) are in $BASEDIR/gutenbergsite/site
To make it easier to track where things are, we use the same structure and filenames as the live site. For example, site/about/index.md will correspond to about/index.html for the live site. However, the actual filename and path is in the .md file (the first lines at the top): Jekyll does not build the directory structure you use, instead it follows the metadata at the top of the md files.
Content that should be copied as-is to the live site is put at the the top-level of $BASEDIR/gutenbergsite. For example, we have a directory "catalog" for the catalog interface, and "gutenberg" for the site assets (css and pictures).
Use the "keep_files" variable in Jekyll's _config.yml for anything that is not part of the gutenbergsite repo but is maintained separately in $BASEDIR/html. This includes symlinks. Anything with usernames, passwords, codes, or other private information should not be added to the gutenbergsite repo.
The repository includes the needed configuration files for Jekyll, which takes the markdown (.md) files
in the repo, and creates HTML files in the destination on the ibiblio server.
Documentation for this is in the "Notes and TO DO" document, currently. Once procedures stabilize, they
will be moved to this README or elsewhere in the repo.
The goal is to use the git-based repo to edit the content of PG pages, using markdown. The markdown will
then be converted to HTML that uses the .css, header/footer etc., and goes where needed in the live Apache
document root.
There will be other components of the site that are managed in different ways, and these are in the
.gitignore (so they don't get overwritten).

View File

@ -17,34 +17,36 @@ title: Project Gutenberg
email: webmaster2019@gutenberg.org
description: >- # this means to ignore newlines until "baseurl:"
Project Gutenberg provides free eBooks.
baseurl: "jekyll" # the subpath of your site, e.g. /blog
url: "https://dev.gutenberg.org/jekyll" # the base hostname & protocol for your site, e.g. http://example.com
baseurl: "" # the subpath of your site, e.g. /blog
url: "https://dev.gutenberg.org/" # the base hostname & protocol for your site, e.g. http://example.com
twitter_username: gutenberg_org
github_username: gbnewby
# Build settings
markdown: kramdown
theme: minima
plugins:
- jekyll-feed
### gbn: this is the default
### theme: minima
# plugins:
# - jekyll-feed
# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
# exclude:
# - Gemfile
# - Gemfile.lock
# - node_modules
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/
exclude:
- Gemfile
- Gemfile.lock
- node_modules
- vendor/bundle/
- vendor/cache/
- vendor/gems/
- vendor/ruby/
- BACKUP
- LICENSE
- README.md
destination: /public/vhost/g/gutenberg/dev/html/jekyll
destination: /public/vhost/g/gutenberg/dev/html/
timezone: America/New_York
encoding: utf-8 # default
incremental: BOOL # doesn't seem to work... all files are being built
keep_files: [.htaccess,css,pics]
incremental: TRUE # doesn't seem to work... all files are being built
keep_files: [.htaccess,cache,ftp,robots.txt,google3c00b5891470e2e3.html,catalog]
plugins:
- jekyll-optional-front-matter # Automally uses 'Page' layout for .md

View File

@ -3,16 +3,16 @@
<div class="footer">
<ul>
<li>
<a href="/policy/privacy_policy.html" title="Gutenberg:Privacy policy">Privacy policy</a>
<a href="/jekyll/policy/privacy_policy.html" title="Gutenberg:Privacy policy">Privacy policy</a>
</li>
<li>
<a href="/about/index.html" title="Gutenberg:About">About Gutenberg</a>
</li>
<li>
<a href="/policy/terms_of_use.html">Terms of Use</a>
<a href="/jekyll/policy/terms_of_use.html">Terms of Use</a>
</li>
<li>
<a href="/about/contact_information.html">Contact Information</a>
<a href="/jekyll/about/contact_information.html">Contact Information</a>
</li>
</ul>

View File

@ -10,15 +10,15 @@
<meta name="keywords" content="books, ebooks, free, kindle, android, iphone, ipad"/>
<meta name="google-site-verification" content="wucOEvSnj5kP3Ts_36OfP64laakK-1mVTg-ptrGC9io"/>
<meta name="alexaVerifyID" content="4WNaCljsE-A82vP_ih2H_UqXZvM"/>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html"/>
<link rel="shortcut icon" href="/gutenberg/fav1/favicon.ico?v=1.1"/>
<link rel="copyright" href="https://www.gnu.org/copyleft/fdl.html"/>
<link rel="shortcut icon" href="/gutenberg/favicon.ico?v=1.1"/>
<meta property="og:title" content="Project Gutenberg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://www.gutenberg.org/" />
<meta property="og:description" content="Project Gutenberg offers free ebooks to download." />
<meta property="og:url" content="https://www.gutenberg.org/" />
<meta property="og:description" content="Project Gutenberg is a library of free eBooks." />
<meta property="fb:admins" content="615269807" />
<meta property="fb:app_id" content="115319388529183" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="og:image" content="http://www.gutenberg.org/pics/logo-144x144.png" />
<meta property="og:image" content="https://www.gutenberg.org/gutenberg/pg-logo-144x144.png" />
</head>

View File

@ -2,7 +2,7 @@
<div class="container">
<nav role="navigation">
<a href="/index.html" class="no-hover">
<img class="logo" src="/gutenberg/new-pg-logo.png" alt="Project Gutenberg" draggable="false">
<img class="logo" src="/gutenberg/pg-logo-129x80.png" alt="Project Gutenberg" draggable="false">
</a>
<label for="show-menu" class="show-menu"><img src="/gutenberg/menu-icon.png" class="menu"></label>
<input type="checkbox" id="show-menu" role="button">

343
ebooks/book.html Normal file
View File

@ -0,0 +1,343 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ebook="http://www.gutenberg.org/ebooks/" xmlns:marcrel="http://www.loc.gov/loc.terms/relators/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" lang="en_US" xml:lang="en_US" version="XHTML+RDFa 1.0">
<head xmlns:og="http://opengraphprotocol.org/schema/" profile="http://a9.com/-/spec/opensearch/1.1/">
<link rel="apple-touch-icon" sizes="180x180" href="https://gutenberg.org/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://gutenberg.org/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://gutenberg.org/favicon-32x32.png">
<link rel="manifest" href="https://gutenberg.org/site.webmanifest">
<link rel="mask-icon" href="https://gutenberg.org/safari-pinned-tab.svg" color="#0a0a0a">
<link rel="stylesheet" href="../gutenberg/style.css">
<link rel="stylesheet" href="../gutenberg/nav.css"
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta name="apple-mobile-web-app-title" content="Project Gutenberg">
<meta name="application-name" content="Project Gutenberg">
<meta name="description" content="Book Title">
<meta name="msapplication-TileColor" content="#f5f5f5">
<meta name="msapplication-TileImage" content="https://gutenberg.org/mstile-144x144.png">
<meta name="theme-color" content="#f5f5f5">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:creator" content="@gutenberg_org">
<meta name="twitter:description" content="Book Title">
<meta name="twitter:image" content="https://gutenberg.org/img.png">
<meta name="twitter:site" content="@gutenberg_org">
<meta name="twitter:title" content="Project Gutenberg">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="og:description" content="">
<meta property="og:image" content="https://gutenberg.org/img.png">
<meta property="og:site_name" content="Project Gutenberg">
<meta property="og:title" content="Project Gutenberg">
<meta property="og:type" content="image/png">
<meta property="og:url" content="https://twitter.com/gutenberg_org">
<title>Gutenberg | Book Title</title>
<link rel="canonical" href="http://www.gutenberg.org/ebooks/57111" />
<link rel="search" type="application/opensearchdescription+xml" title="Search Project Gutenberg" href="//www.gutenberg.org/catalog/osd-books.xml" />
<link rel="alternate nofollow" type="application/atom+xml;profile=opds-catalog" title="OPDS feed" href="/ebooks/57111.opds" />
<meta name="title" content="Warren Commission (13 of 26): Hearings Vol. XIII (of 15) by Warren Commission" />
<meta name="description" content="Free kindle book and epub digitized and proofread by Project Gutenberg." />
<meta name="keywords" content="ebook, ebooks, free ebooks, free books, book, books, audio books" />
<meta name="classification" content="public" />
<meta property="og:title" content="Warren Commission (13 of 26): Hearings Vol. XIII (of 15) by Warren Commission" />
<meta property="og:description" content="Free kindle book and epub digitized and proofread by Project Gutenberg." />
<meta property="og:type" content="book" />
<meta property="og:image" content="//www.gutenberg.org/cache/epub/57111/pg57111.cover.medium.jpg" />
<meta property="og:url" content="http://www.gutenberg.org/ebooks/57111" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="fb:app_id" content="115319388529183" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@gutenberg_new" />
<title>Warren Commission (13 of 26): Hearings Vol. XIII (of 15) by Warren Commission - Free Ebook</title>
<link rel="alternate nofollow" type="application/rdf+xml" href="/ebooks/57111.rdf" />
<style type="text/css">
.qrcode { background: transparent url(//www.gutenberg.org/cache/epub/57111/pg57111.qrcode.png) 0 0 no-repeat; }
</style>
</head>
<body>
<div class="container">
<nav role="navigation">
<a href="/index.html" class="no-hover">
<img class="logo" src="gutenberg/new-pg-logo.png" alt="Project Gutenberg" >
</a>
<label for="show-menu" class="show-menu"><img src="gutenberg/menu-icon.png" class="menu"></label>
<input type="checkbox" id="show-menu" role="button">
<!--<a href="#" class="show-menu"></a>-->
<ul id="menu">
<li><a href="/ebooks/index.html">Find a Book</a></li>
<li><a href="#">How to Help</a></li>
<li><a href="#">Help</a>
<ul class="hidden">
<li><a href="/help/mobile.html">Mobile How-To</a></li>
<li><a href="#">Sub-2</a></li>
<li><a href="#">Sub-3</a></li>
</ul>
</li>
<li><a href="#">About</a>
<ul class="hidden">
<li><a href="about/history.html">About Us</a></li>
<li><a href="policy/privacy_policy.html">Privacy Policy</a></li>
<li><a href="about/contact_information.html">Contact Us</a></li>
</ul>
</li>
<li><a href="/donate/donate.html">Donate</a></li>
</ul>
<div class="searchbox">
<form method="get" action="/ebooks/search/"
accept-charset="utf-8" enctype="multipart/form-data">
<input type="text" value="" id="menu-book-search" name="query" class="searchInput" title="" alt="undefined string" tabindex="20" size="20" maxlength="80"
placeholder="Search for Books"/>
</form>
</div>
<div class="donate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="new">
<p>Project Gutenberg appreciates your donation! Learn <a href="/donate/donate.html">Why Donate?</a> Click here to:</p>
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input class="donbtn" type="image" src="/gutenberg/en_US.gif"
name="submit" alt="PayPal-The safer, easier way to pay online!" />
</form>
</div>
</nav>
<div class="content">
<div class="book-container">
<div class="content book">
<h1 class="title">Warren Commission (13 of 26): Hearings Vol. XIII (of 15) by Warren Commission</h1>
<!-- cover -->
<div class="section cover no-select">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
<div class="share-icon">
<br><img src="/gutenberg/icons/pr.svg" alt="Print" title="Print this page">
<img src="/gutenberg/icons/gd.svg" alt="Google Drive" title="Save to Google Drive">
</div>
</div>
<!-- details -->
<div class="section details">
<h4 class="author">
<a href="">Author Name</a>
<span class="desc">(1800 - 1875)</span>
</h4>
<p class="id desc">12345</p>
<div class="bib_rec">
<ul>
<li><h4>Subject:</h4>
<a href="">Something</a>,<a href="">Another</a>
</li>
<li><h4>Language:</h4>
<a href="">Language Name </a>
</li>
<li><h4>Release Date:</h4>
Release Date
</li>
<li><h4>Category:</h4>
Text
</li>
<li><h4>Downloads (Last 30 days):</h4> No.of Downloads
</li>
<li><h4>Copyright:</h4> Public domain in US.
</li>
</ul>
</div>
</div>
<!-- download -->
<div class="section download no-select">
<h4>Read</h4>
<ul>
<li>
<a href="">html</a>
</li>
<li>
<a href="">epub (images)</a>
</li>
<li>
<a href="">epub (no images)</a>
</li>
<li>
<a href="">kindle (images)</a>
</li>
<li>
<a href="">kindle (no images)</a>
</li>
<li>
<a href="">text</a>
</li>
</ul>
</div>
<!-- share -->
<div class="section share no-select">
<h4>Share</h4>
<a href="https://goodreads.com/book/show/BOOK_ID" class="share-icon no-hover" target="_blank">
<img src="/gutenberg/icons/gr.svg" alt="Goodreads">
</a>
<a href="https://twitter.com/intent/tweet?text=https://gutenberg.org/BOOK_ID" class="share-icon no-hover"
target="_blank">
<img src="/gutenberg/icons/tw.svg" alt="Twitter">
</a>
<a href="https://www.facebook.com/sharer/sharer.php?u=https://gutenberg.org/BOOK_ID" class="share-icon no-hover"
target="_blank">
<img src="/gutenberg/icons/fb.svg" alt="Facebook">
</a>
<a href="https://www.reddit.com/submit?url=https://gutenberg.org/BOOK_ID&title=BOOK_TITLE"
class="share-icon no-hover" target="_blank">
<img src="/gutenberg/icons/rd.svg" alt="Reddit">
</a>
</div>
</div>
</div>
<h2>Readers also downloaded </h2>
</div>
<!--<div>
help
<div>
<p>Enter your search terms separated by spaces,
then press &lt;Enter&gt;.
Avoid punctuation except as indicated below:</p>
<table class="helpbox">
<tr>
<th>Suffixes</th>
<th lang="en" xml:lang="en">.</th>
<td>exact match</td>
</tr>
<tr>
<th rowspan="7">Prefixes</th>
<th lang="en" xml:lang="en">a.</th>
<td>author</td>
</tr>
<tr>
<th lang="en" xml:lang="en">t.</th>
<td>title</td>
</tr>
<tr>
<th lang="en" xml:lang="en">s.</th>
<td>subject</td>
</tr>
<tr>
<th lang="en" xml:lang="en">l.</th>
<td>language</td>
</tr>
<tr>
<th lang="en" xml:lang="en">#</th>
<td>ebook no.</td>
</tr>
<tr>
<th lang="en" xml:lang="en">n.</th>
<td>ebook no.</td>
</tr>
<tr>
<th lang="en" xml:lang="en">cat.</th>
<td>category</td>
</tr>
<tr>
<th rowspan="3" style="width: 8em">
Operators
<small>Always put spaces around these.</small>
</th>
<th lang="en" xml:lang="en">|</th>
<td>or</td>
</tr>
<tr>
<th lang="en" xml:lang="en">!</th>
<td>not</td>
</tr>
<tr>
<th lang="en" xml:lang="en">( )</th>
<td>grouping</td>
</tr>
</table>
<table class="helpbox">
<tr>
<th>this query</th>
<th>finds</th>
</tr>
<tr>
<td lang="en" xml:lang="en">shakespeare hamlet</td>
<td>"Hamlet" by Shakespeare</td>
</tr>
<tr>
<td lang="en" xml:lang="en">qui.</td>
<td>"qui", not "Quixote"</td>
</tr>
<tr>
<td lang="en" xml:lang="en">love stories</td>
<td>love stories</td>
</tr>
<tr>
<td lang="en" xml:lang="en">a.shakespeare</td>
<td>by Shakespeare</td>
</tr>
<tr>
<td lang="en" xml:lang="en">s.shakespeare</td>
<td>about Shakespeare</td>
</tr>
<tr>
<td lang="en" xml:lang="en">#74</td>
<td>ebook no. 74</td>
</tr>
<tr>
<td lang="en" xml:lang="en">juvenile l.german</td>
<td>juvenile lit in German</td>
</tr>
<tr>
<td lang="en" xml:lang="en">verne ( l.fr | l.it )</td>
<td>by Verne in French or Italian</td>
</tr>
<tr>
<td lang="en" xml:lang="en">love stories ! austen</td>
<td>love stories not by Austen</td>
</tr>
<tr>
<td lang="en" xml:lang="en">jane austen cat.audio</td>
<td>audio books by Jane Austen</td>
</tr>
</table>
</div>
</div> -->
<div class="footer">
<ul>
<li>
<a href="/wiki/Gutenberg:Privacy_policy" title="Gutenberg:Privacy policy">Privacy policy</a>
</li>
<li>
<a href="/wiki/Gutenberg:About" title="Gutenberg:About">About Gutenberg</a>
</li>
<li>
<a href="/wiki/Gutenberg:General_disclaimer" title="Gutenberg:General disclaimer">Disclaimers</a>
</li>
<li>
<a href="terms_of_use.html">Terms of Use</a>
</li>
<li>
<a href="Contact_info.html">Contact Information</a>
</li>
</ul>
<a href="http://www.ibiblio.org/index.html" title="Project Gutenberg is hosted by ibiblio">
<img src="/gutenberg/ibiblio-logo.png" alt="HTML tutorial">
</a>
</div> <!-- footer ending-->
</div>
</body>
</html>

471
ebooks/book_eg.html Normal file
View File

@ -0,0 +1,471 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ebook="http://www.gutenberg.org/ebooks/" xmlns:marcrel="http://www.loc.gov/loc.terms/relators/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" lang="en_US" xml:lang="en_US" version="XHTML+RDFa 1.0">
<head xmlns:og="http://opengraphprotocol.org/schema/" profile="http://a9.com/-/spec/opensearch/1.1/">
<link rel="stylesheet" type="text/css" href="/css/pg-desktop-one.css?1544106575" />
<script type="text/javascript">//<![CDATA[
var json_search = "/ebooks/suggest/";
var mobile_url = "//m.gutenberg.org/ebooks/58784.mobile";
var canonical_url = "http://www.gutenberg.org/ebooks/58784";
var lang = "en_US";
var fb_lang = "en_US"; /* FB accepts only xx_XX */
var msg_load_more = "Load More Results…";
var page_mode = "screen";
var dialog_title = "";
var dialog_message = "";
//]]></script>
<script type="text/javascript" src="/js/pg-desktop-one.js?1544106575"></script>
<link rel="shortcut icon" href="/pics/favicon" />
<link rel="canonical" href="http://www.gutenberg.org/ebooks/58784" />
<link rel="search" type="application/opensearchdescription+xml" title="Search Project Gutenberg" href="//www.gutenberg.org/catalog/osd-books.xml" />
<link rel="alternate nofollow" type="application/atom+xml;profile=opds-catalog" title="OPDS feed" href="/ebooks/58784.opds" />
<link rel="apple-touch-icon" href="/pics/apple-touch-icon" />
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="en_US" />
<meta name="title" content="And Gone Tomorrow by Andy Offut" />
<meta name="description" content="Free kindle book and epub digitized and proofread by Project Gutenberg." />
<meta name="keywords" content="ebook, ebooks, free ebooks, free books, book, books, audio books" />
<meta name="classification" content="public" />
<meta property="og:title" content="And Gone Tomorrow by Andy Offut" />
<meta property="og:description" content="Free kindle book and epub digitized and proofread by Project Gutenberg." />
<meta property="og:type" content="book" />
<meta property="og:image" content="//www.gutenberg.org/cache/epub/58784/pg58784.cover.medium.jpg" />
<meta property="og:url" content="http://www.gutenberg.org/ebooks/58784" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="fb:app_id" content="115319388529183" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@gutenberg_new" />
<title>And Gone Tomorrow by Andy Offut - Free Ebook</title>
<link rel="alternate nofollow" type="application/rdf+xml" href="/ebooks/58784.rdf" />
<style type="text/css">
.qrcode { background: transparent url(//www.gutenberg.org/cache/epub/58784/pg58784.qrcode.png) 0 0 no-repeat; }
</style>
<meta name="google" content="notranslate" />
</head>
<body>
<div id="mw-head-dummy" class="noprint"></div>
<div id="content" itemscope="itemscope" itemtype="http://schema.org/Book">
<div class="breadcrumbs noprint">
<ul>
<li class="breadcrumb first" itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb">
<span class="breadcrumb-separator"></span>
<a href="/" title="Go to the Main page." itemprop="url"><span itemprop="title">Project Gutenberg</span></a>
</li>
<li class="breadcrumb next" itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb">
<span class="breadcrumb-separator"></span>
<a href="/ebooks/" title="Start a new search." itemprop="url"><span itemprop="title">58,715 free ebooks</span></a>
</li>
</ul>
</div>
<div class="header">
<h1 itemprop="name">And Gone Tomorrow by Andy Offut</h1>
</div>
<div class="body">
<div property="dcterms:publisher" itemprop="publisher" content="Project Gutenberg"></div>
<div itemprop="bookFormat" content="EBook"></div>
<div id="cover-social-wrapper">
<div id="cover">
<img class="cover-art" src="//www.gutenberg.org/cache/epub/58784/pg58784.cover.medium.jpg" title="Book Cover" alt="Book Cover" itemprop="image" />
</div>
<div id="social" class="noprint">
<ul>
<li>
<!-- share without javascript -->
<div class="social-button gplus-share-button">
<a href="https://plus.google.com/share?url=http%3A%2F%2Fwww.gutenberg.org%2Febooks%2F58784" title="Share on Google+" onclick="open_share_popup(this.href, this.target, 640, 320)" target="_gplus_share_popup">
<span class="icon icon_gplus"></span>
</a>
</div>
</li>
<li>
<!-- tweet without javascript -->
<div class="social-button twitter-share-button">
<a href="https://twitter.com/share?count=none&amp;url=http%3A%2F%2Fwww.gutenberg.org%2Febooks%2F58784&amp;related=gutenberg_new%3AProject%20Gutenberg%20New%20Books&amp;lang=en&amp;text=And%20Gone%20Tomorrow%20by%20Andy%20Offut" title="Share on Twitter" onclick="open_share_popup(this.href, this.target, 640, 320)" target="_tw_share_popup">
<span class="icon icon_twitter"></span>
</a>
</div>
</li>
<li>
<a onclick="printpage ()" title="Print this page"><span class="icon icon_print"></span></a>
</li>
</ul>
</div>
<div id="qr">
<span class="qrcode qrcode-desktop noscreen"></span>
<span class="qrcode qrcode-mobile noprint" title="Go to our mobile site."></span>
</div>
</div>
<div id="tabs-wrapper">
<div id="tabs">
<ul class="noprint">
<li><a href="#download">Download</a></li>
<li><a href="#bibrec">Bibrec</a></li>
</ul>
<div id="bibrec">
<div typeof="pgterms:ebook" about="[ebook:58784]">
<h2>Bibliographic Record <span>
<a href="/wiki/Gutenberg:Help_on_Bibliographic_Record_Page#Table:_Bibliographic_Record" title="Explain Table: Bibliographic Record."><span class="icon icon_help noprint"></span></a>
</span></h2>
<table class="bibrec" summary="Bibliographic data of author and book.">
<colgroup>
<col class="narrow" />
<col />
</colgroup>
<tr>
<th>Author</th>
<td>
<a href="/ebooks/author/50151" rel="marcrel:aut" about="/authors/50151" typeof="pgterms:agent" itemprop="creator">Offut, Andy</a></td>
</tr>
<tr>
<th>Title</th>
<td itemprop="headline">
And Gone Tomorrow
</td>
</tr>
<tr property="dcterms:language" datatype="dcterms:RFC4646" itemprop="inLanguage" content="en">
<th>Language</th>
<td>English</td>
</tr>
<tr>
<th>Category</th>
<td property="dcterms:type" datatype="dcterms:DCMIType">Text</td>
</tr>
<tr>
<th>EBook-No.</th>
<td>58784</td>
</tr>
<tr property="dcterms:issued" datatype="xsd:date" content="2019-01-28T00:00:00+00:00">
<th>Release Date</th>
<td itemprop="datePublished">Jan 28, 2019</td>
</tr>
<tr>
<th>Copyright Status</th>
<td property="dcterms:rights">Public domain in the USA.</td>
</tr>
<tr>
<th>Downloads</th>
<td itemprop="interactionCount">146 downloads in the last 30 days.</td>
</tr>
<tr itemprop="offers" itemscope="itemscope" itemtype="http://schema.org/Offer">
<th>Price</th>
<td><span itemprop="priceCurrency" content="USD"></span><span itemprop="price">$0.00</span><span itemprop="availability" href="http://schema.org/InStock" content="In Stock"></span></td>
</tr>
</table>
</div>
<div id="more_stuff">
<h2 class="header">Similar Books</h2>
<div class="navlink noprint grayed">
<a rel="nofollow" href="/ebooks/58784/also/" accesskey="1">
<span class="cell leftcell">
<span class="icon icon_suggestion"></span>
</span>
<span class="cell content">
<span class="title">Readers also downloaded…</span>
</span>
<span class="hstrut"></span>
</a>
</div>
</div> <!-- more stuff -->
</div>
<div id="download">
<div about="[ebook:58784]" rel="dcterms:hasFormat" rev="dcterms:isFormatOf">
<h2>Download This eBook</h2>
<table class="files" summary="Table of available file types and sizes.">
<colgroup>
<col class="narrow" />
<col />
<col />
<col class="narrow noprint" />
<col class="narrow noprint" />
<col class="narrow noprint" />
</colgroup>
<tr>
<th></th>
<th>Format <span>
<a href="/wiki/Gutenberg:Help_on_Bibliographic_Record_Page#Format" title="Explain Format."><span class="icon icon_help noprint"></span></a>
</span></th>
<th class="noscreen">Url</th>
<th class="right">Size</th>
<th class="noprint"><span>
<a href="/wiki/Gutenberg:Help_on_Bibliographic_Record_Page#Dropbox" title="Explain Dropbox."><span class="icon icon_help noprint"></span></a>
</span></th>
<th class="noprint"><span>
<a href="/wiki/Gutenberg:Help_on_Bibliographic_Record_Page#Google_Drive" title="Explain Google Drive."><span class="icon icon_help noprint"></span></a>
</span></th>
<th class="noprint"><span>
<a href="/wiki/Gutenberg:Help_on_Bibliographic_Record_Page#OneDrive" title="Explain OneDrive."><span class="icon icon_help noprint"></span></a>
</span></th>
</tr>
<tr class="even" about="//www.gutenberg.org/files/58784/58784-h/58784-h.htm" typeof="pgterms:file">
<td><span class="icon icon_book"></span></td>
<td property="dcterms:format" content="text/html; charset=us-ascii" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/files/58784/58784-h/58784-h.htm" type="text/html; charset=us-ascii" class="link" title="Download">Read this book online: HTML</a></td>
<td class="noscreen">//www.gutenberg.org/files/58784/58784-h/58784-h.htm</td>
<td class="right" property="dcterms:extent" content="85678">84 kB</td>
<td class="noprint">
</td>
<td class="noprint">
</td>
<td class="noprint">
<a href="/ebooks/send/megaupload/58784.html" title="Send to MegaUpload." rel="nofollow"></a>
</td>
</tr><tr class="even" about="//www.gutenberg.org/ebooks/58784.epub.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" typeof="pgterms:file">
<td><span class="icon icon_book"></span></td>
<td property="dcterms:format" content="application/epub+zip" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.epub.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/epub+zip" class="link" title="Download">EPUB (with images)</a></td>
<td class="noscreen">//www.gutenberg.org/ebooks/58784.epub.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99</td>
<td class="right" property="dcterms:extent" content="357863">349 kB</td>
<td class="noprint">
<a href="/ebooks/send/dropbox/58784.epub.images" title="Send to Dropbox." rel="nofollow"><span class="icon icon_dropbox"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/gdrive/58784.epub.images" title="Send to Google Drive." rel="nofollow"><span class="icon icon_gdrive"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/msdrive/58784.epub.images" title="Send to OneDrive." rel="nofollow"><span class="icon icon_msdrive"></span></a>
</td>
</tr><tr class="odd" about="//www.gutenberg.org/ebooks/58784.epub.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" typeof="pgterms:file">
<td><span class="icon icon_book"></span></td>
<td property="dcterms:format" content="application/epub+zip" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.epub.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/epub+zip" class="link" title="Download">EPUB (no images)</a></td>
<td class="noscreen">//www.gutenberg.org/ebooks/58784.epub.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99</td>
<td class="right" property="dcterms:extent" content="115765">113 kB</td>
<td class="noprint">
<a href="/ebooks/send/dropbox/58784.epub.noimages" title="Send to Dropbox." rel="nofollow"><span class="icon icon_dropbox"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/gdrive/58784.epub.noimages" title="Send to Google Drive." rel="nofollow"><span class="icon icon_gdrive"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/msdrive/58784.epub.noimages" title="Send to OneDrive." rel="nofollow"><span class="icon icon_msdrive"></span></a>
</td>
</tr><tr class="even" about="//www.gutenberg.org/ebooks/58784.kindle.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" typeof="pgterms:file">
<td><span class="icon icon_book"></span></td>
<td property="dcterms:format" content="application/x-mobipocket-ebook" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.kindle.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/x-mobipocket-ebook" class="link" title="Download">Kindle (with images)</a></td>
<td class="noscreen">//www.gutenberg.org/ebooks/58784.kindle.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99</td>
<td class="right" property="dcterms:extent" content="767711">750 kB</td>
<td class="noprint">
<a href="/ebooks/send/dropbox/58784.kindle.images" title="Send to Dropbox." rel="nofollow"><span class="icon icon_dropbox"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/gdrive/58784.kindle.images" title="Send to Google Drive." rel="nofollow"><span class="icon icon_gdrive"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/msdrive/58784.kindle.images" title="Send to OneDrive." rel="nofollow"><span class="icon icon_msdrive"></span></a>
</td>
</tr><tr class="odd" about="//www.gutenberg.org/ebooks/58784.kindle.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" typeof="pgterms:file">
<td><span class="icon icon_book"></span></td>
<td property="dcterms:format" content="application/x-mobipocket-ebook" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.kindle.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/x-mobipocket-ebook" class="link" title="Download">Kindle (no images)</a></td>
<td class="noscreen">//www.gutenberg.org/ebooks/58784.kindle.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99</td>
<td class="right" property="dcterms:extent" content="315421">308 kB</td>
<td class="noprint">
<a href="/ebooks/send/dropbox/58784.kindle.noimages" title="Send to Dropbox." rel="nofollow"><span class="icon icon_dropbox"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/gdrive/58784.kindle.noimages" title="Send to Google Drive." rel="nofollow"><span class="icon icon_gdrive"></span></a>
</td>
<td class="noprint">
<a href="/ebooks/send/msdrive/58784.kindle.noimages" title="Send to OneDrive." rel="nofollow"><span class="icon icon_msdrive"></span></a>
</td>
</tr><tr class="even" about="//www.gutenberg.org/ebooks/58784.txt.utf-8" typeof="pgterms:file">
<td><span class="icon icon_book"></span></td>
<td property="dcterms:format" content="text/plain" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.txt.utf-8" type="text/plain" class="link" title="Download">Plain Text UTF-8</a></td>
<td class="noscreen">//www.gutenberg.org/ebooks/58784.txt.utf-8</td>
<td class="right" property="dcterms:extent" content="80713">79 kB</td>
<td class="noprint">
</td>
<td class="noprint">
</td>
<td class="noprint">
</td>
</tr>
<tr class="even">
<td><span class="icon icon_folder"></span></td>
<td class="unpadded icon_file"><a href="/files/58784/" class="link">More Files…</a></td>
<td class="noscreen">http://www.gutenberg.org/files/58784/</td>
<td></td>
<td class="noprint"></td>
<td class="noprint"></td>
<td class="noprint"></td>
</tr>
</table>
</div>
</div> <!-- download -->
</div>
</div>
</div>
<div id="dialog" class="hidden">
</div>
<div class="footer">
</div>
</div>
<div id="fb-root"></div>
<div id="print-head" class="noscreen">
<div class="center">http://www.gutenberg.org/ebooks/58784<br /><br />Project Gutenberg offers 58,715 free ebooks to download.</div>
</div>
<div id="screen-head" class="noprint">
<table>
<tr>
<td rowspan="2" id="logo">
<a href="/wiki/Main_Page" title="Go to the Main Page.">
<span id="id7041" class="icon icon_logo"></span>
</a>
</td>
<td id="tagline-badges" colspan="2">
<table>
<tr>
<td id="tagline">Project Gutenberg offers 58,715 free ebooks to download.</td>
<td id="paypal-badge" class="badge">
<form class="paypal-button" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<div>
<input lang="en" xml:lang="en" type="hidden" name="cmd" value="_s-xclick" />
<input lang="en" xml:lang="en" type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input type="image" name="submit" src="//www.gutenberg.org/pics/paypal/en_US.gif" title="Send us money through PayPal." />
</div>
</form>
</td>
<td id="flattr-badge" class="badge">
<a class="flattr-button" target="_blank" href="https://flattr.com/thing/509045/Project-Gutenberg" title="Send us money through Flattr.">
<span class="icon icon_flattr"></span>
</a>
</td>
</tr>
</table>
</td>
</tr>
<tr id="menubar-search">
<td id="menubar">
<a id="menubar-first" tabindex="11" accesskey="1" title="Start a new search." href="/ebooks/">Search</a>
<a tabindex="22" title="Our latest releases." href="/ebooks/search/?sort_order=release_date">Latest</a>
<a tabindex="31" title="Read the Project Gutenberg terms of use." href="/terms_of_use/">Terms of Use</a>
<a tabindex="32" href="/wiki/Gutenberg:Project_Gutenberg_Needs_Your_Donation" title="Learn why we need some money.">Donate?</a>
<a tabindex="33" accesskey="m" href="//m.gutenberg.org/ebooks/58784.mobile" title="Go to our mobile site.">Mobile</a>
</td>
<td id="search">
<form method="get" action="/ebooks/search/" enctype="multipart/form-data">
<table class="borderless">
<tr>
<td id="search-button-cell">
<button id="search-button" type="submit" title="Execute the search. &lt;enter&gt;">
<span class="icon icon_smsearch"></span>
</button>
</td>
<td id="search-input-cell">
<input id="search-input" name="query" type="text" title="Search Project Gutenberg. &lt;s&gt;" accesskey="s" value="" />
</td>
<td id="help-button-cell">
<button id="help-button" type="button" title="Open the help menu. &lt;h&gt;" accesskey="h">Help</button>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<div id="helpbox" class="hide">
<div>
<p>Enter your search terms separated by spaces,
then press &lt;Enter&gt;.
Avoid punctuation except as indicated below:</p>
<table class="helpbox">
<tr>
<th>Suffixes</th>
<th lang="en" xml:lang="en">.</th>
<td>exact match</td>
</tr>
<tr>
<th rowspan="7">Prefixes</th>
<th lang="en" xml:lang="en">a.</th>
<td>author</td>
</tr>
<tr>
<th lang="en" xml:lang="en">t.</th>
<td>title</td>
</tr>
<tr>
<th lang="en" xml:lang="en">s.</th>
<td>subject</td>
</tr>
<tr>
<th lang="en" xml:lang="en">l.</th>
<td>language</td>
</tr>
<tr>
<th lang="en" xml:lang="en">#</th>
<td>ebook no.</td>
</tr>
<tr>
<th lang="en" xml:lang="en">n.</th>
<td>ebook no.</td>
</tr>
<tr>
<th lang="en" xml:lang="en">cat.</th>
<td>category</td>
</tr>
<tr>
<th rowspan="3" style="width: 8em">
Operators
<small>Always put spaces around these.</small>
</th>
<th lang="en" xml:lang="en">|</th>
<td>or</td>
</tr>
<tr>
<th lang="en" xml:lang="en">!</th>
<td>not</td>
</tr>
<tr>
<th lang="en" xml:lang="en">( )</th>
<td>grouping</td>
</tr>
</table>
<table class="helpbox">
<tr>
<th>this query</th>
<th>finds</th>
</tr>
<tr>
<td lang="en" xml:lang="en">shakespeare hamlet</td>
<td>"Hamlet" by Shakespeare</td>
</tr>
<tr>
<td lang="en" xml:lang="en">qui.</td>
<td>"qui", not "Quixote"</td>
</tr>
<tr>
<td lang="en" xml:lang="en">love stories</td>
<td>love stories</td>
</tr>
<tr>
<td lang="en" xml:lang="en">a.shakespeare</td>
<td>by Shakespeare</td>
</tr>
<tr>
<td lang="en" xml:lang="en">s.shakespeare</td>
<td>about Shakespeare</td>
</tr>
<tr>
<td lang="en" xml:lang="en">#74</td>
<td>ebook no. 74</td>
</tr>
<tr>
<td lang="en" xml:lang="en">juvenile l.german</td>
<td>juvenile lit in German</td>
</tr>
<tr>
<td lang="en" xml:lang="en">verne ( l.fr | l.it )</td>
<td>by Verne in French or Italian</td>
</tr>
<tr>
<td lang="en" xml:lang="en">love stories ! austen</td>
<td>love stories not by Austen</td>
</tr>
<tr>
<td lang="en" xml:lang="en">jane austen cat.audio</td>
<td>audio books by Jane Austen</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,67 @@
/*.tab_structure {
box-sizing: border-box;
}*/
.tabs {
display: flex;
flex-wrap: wrap;
max-width: 700px;
#background: #efefef;
/*box-shadow: 0 48px 80px -32px rgba(0,0,0,0.3);*/
}
.tabs .input {
position: absolute;
opacity: 0;
}
.tabs .label {
width: 100%;
padding: 20px 30px;
background: #e5e5e5;
cursor: pointer;
font-weight: bold;
font-size: 18px;
color: #7f7f7f;
transition: background 0.1s, color 0.1s;
}
.tabs .label:hover {
background: #d8d8d8;
}
.tabs .label:active {
background: #ccc;
}
.tabs .input:focus + .label {
box-shadow: inset 0px 0px 0px 3px #2aa1c0;
z-index: 1;
}
.tabs .input:checked + .label {
background: #fff;
color: #000;
}
.book_container{
display: table;
}
@media (min-width: 600px) {
.tabs .label {
width: auto;
}
}
.tabs .panel {
display: none;
padding: 20px 30px 30px;
background: #fff;
}
@media (min-width: 600px) {
.tabs .panel {
order: 99;
}
}
.tabs .input:checked + .label + .panel {
display: block;
}

339
ebooks/bookshelves.html Normal file
View File

@ -0,0 +1,339 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="apple-touch-icon" sizes="180x180" href="https://gutenberg.org/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://gutenberg.org/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://gutenberg.org/favicon-32x32.png">
<link rel="manifest" href="https://gutenberg.org/site.webmanifest">
<link rel="mask-icon" href="https://gutenberg.org/safari-pinned-tab.svg" color="#0a0a0a">
<link rel="stylesheet" href="/gutenberg/style.css">
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta name="apple-mobile-web-app-title" content="Project Gutenberg">
<meta name="application-name" content="Project Gutenberg">
<meta name="description" content="The one who does not read has no advantage over the one who cannot read.">
<meta name="msapplication-TileColor" content="#f5f5f5">
<meta name="msapplication-TileImage" content="https://gutenberg.org/mstile-144x144.png">
<meta name="theme-color" content="#f5f5f5">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:creator" content="@gutenberg_org">
<meta name="twitter:description" content="The one who does not read has no advantage over the one who cannot read.">
<meta name="twitter:image" content="https://gutenberg.org/img.png">
<meta name="twitter:site" content="@gutenberg_org">
<meta name="twitter:title" content="Project Gutenberg">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="og:description" content="">
<meta property="og:image" content="https://gutenberg.org/img.png">
<meta property="og:site_name" content="Project Gutenberg">
<meta property="og:title" content="Project Gutenberg">
<meta property="og:type" content="image/png">
<meta property="og:url" content="https://twitter.com/gutenberg_org">
<title>Gutenberg | Library</title>
</head>
<body>
<div class="container">
<!-- ==================================================
library -->
<div class="content library">
<div class="lib latest no-select">
<h1>Latest Books</h1>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
</div>
<div class="lib bookshelves">
<h1>Bookshelves</h1>
<ul>
<h2 class="bookshelf">Animal</h2>
<li>Amphibians</li>
<li>Birds</li>
<li>Insects</li>
<li>Mammals</li>
<li>Reptiles</li>
<h2 class="bookshelf">Childrens</h2>
<li>Children's Books</li>
<h2 class="bookshelf">Classics</h2>
<li>Classics</li>
<h2 class="bookshelf">Countries</h2>
<li>Africa</li>
<li>Argentina</li>
<li>Australia</li>
<li>Bulgaria</li>
<li>Canada</li>
<li>Czech</li>
<li>Egypt</li>
<li>France</li>
<li>Germany</li>
<li>Greece</li>
<li>India</li>
<li>Italy</li>
<li>New Zealand</li>
<li>Norway</li>
<li>Travel</li>
<li>United Kingdom</li>
<li>United States</li>
<h2 class="bookshelf">Crime</h2>
<li>Detective</li>
<li>Fiction</li>
<li>Mystery</li>
<li>Nonfiction</li>
<h2 class="bookshelf">Education</h2>
<li>Education</li>
<h2 class="bookshelf">Emmy's Picks</h2>
<li>Emmy's Picks</li>
<h2 class="bookshelf">Fiction</h2>
<li>Adventure</li>
<li>Crime</li>
<li>Detective</li>
<li>Erotic</li>
<li>Fantasy</li>
<li>General</li>
<li>Gothic</li>
<li>Historical</li>
<li>Horror</li>
<li>Humor</li>
<li>Movie</li>
<li>Mystery</li>
<li>Science</li>
<li>Romance</li>
<li>School</li>
<li>Western</li>
<h2 class="bookshelf">Fine arts</h2>
<li>Architecture</li>
<li>Art</li>
<h2 class="bookshelf">General Works</h2>
<li>General Works</li>
<h2 class="bookshelf">Geography</h2>
<li>Geography</li>
<h2 class="bookshelf">History</h2>
<li>Archaelogy</li>
<li>Biography</li>
<li>Classical Antiquity</li>
<h2 class="bookshelf">Language</h2>
<li>Language Education</li>
<h2 class="bookshelf">Law</h2>
<li>British</li>
<li>American</li>
<h2 class="bookshelf">Music</h2>
<li>Music</li>
<li>Opera</li>
<h2 class="bookshelf">Periodicals</h2>
<li>Ainslee's</li>
<li>Armour's Monthly Cook Book</li>
<li>Astounding Stories</li>
<li>Barnavännen</li>
<li>Bird-Lore</li>
<li>Birds, Illustrated by Color Photography</li>
<li>Blackwood's Edinburgh Magazine</li>
<li>Buchanan's Journal of Man</li>
<li>Bulletin de Lille</li>
<li>CIA World Factbooks</li>
<li>Celtic Magazine</li>
<li>Chambers's Edinburgh Journal</li>
<li>Children's Periodicals</li>
<li>Continental Monthly</li>
<li>Current History</li>
<li>De Aarde en haar Volken</li>
<li>Dew Drops</li>
<li>Donahoe's Magazine</li>
<li>Garden and Forest</li>
<li>Godey's Lady's Book</li>
<li>Golden Days for Boys and Girls</li>
<li>Graham's Magazine</li>
<li>Harper's New Monthly Magazine</li>
<li>Harper's Young People</li>
<li>Journal of Entomology and Zoology</li>
<li>L'Illustration</li>
<li>Lippincott's Magazine</li>
<li>Little Folks</li>
<li>London Medical Gazette</li>
<li>McClure's Magazine</li>
<li>Mother Earth</li>
<li>Mrs Whittelsey's Magazine for Mothers and Daughters</li>
<li>Northern Nut Growers Association</li>
<li>Notes and Queries</li>
<li>Our Young Folks</li>
<li>Poetry, A Magazine of Verse</li>
<li>Popular Science Monthly</li>
<li>Prairie Farmer</li>
<li>Punch</li>
<li>Punchinello</li>
<li>Scientific American</li>
<li>Scribner's Magazine</li>
<li>St. Nicholas Magazine for Boys and Girls</li>
<li>The Aldine</li>
<li>The American Architect and Building News</li>
<li>The American Journal of Archaeology</li>
<li>The American Missionary</li>
<li>The American Quarterly Review</li>
<li>The Arena</li>
<li>The Argosy</li>
<li>The Atlantic Monthly</li>
<li>The Baptist Magazine</li>
<li>The Bay State Monthly</li>
<li>The Botanical Magazine</li>
<li>The Brochure Series of Architectural Illustration</li>
<li>The Catholic World</li>
<li>The Christian Foundation</li>
<li>The Church of England Magazine</li>
<li>The Contemporary Review</li>
<li>The Economist</li>
<li>The Esperantist</li>
<li>The Galaxy</li>
<li>The Girls Own Paper</li>
<li>The Great Round World And What Is Going On In It</li>
<li>The Haslemere Museum Gazette</li>
<li>The Idler</li>
<li>The Illustrated War News</li>
<li>The International Magazine of Literature, Art, and Science</li>
<li>The Irish Ecclesiastical Record</li>
<li>The Irish Penny Journal</li>
<li>The Journal of Negro History</li>
<li>The Knickerbocker</li>
<li>The Mayflower</li>
<li>The Menorah Journal</li>
<li>The Mentor</li>
<li>The Mirror of Literature, Amusement, and Instruction</li>
<li>The Mirror of Taste, and Dramatic Censor</li>
<li>The National Preacher</li>
<li>The North American Medical and Surgical Journal</li>
<li>The Nursery</li>
<li>The Scrap Book</li>
<li>The Speaker</li>
<li>The Stars and Stripes</li>
<li>The Strand Magazine</li>
<li>The Unpopular Review</li>
<li>The Writer</li>
<li>The Yellow Book</li>
<h2 class="bookshelf">Psychology</h2>
<li>Psychology</li>
<h2 class="bookshelf">Philosophy</h2>
<li>Aesthetics</li>
<li>Epistemology</li>
<li>Ethics</li>
<li>History of Philosophy</li>
<li>Logic</li>
<li>Metaphysics</li>
<li>Political</li>
<li>Religion</li>
<h2 class="bookshelf">Religion</h2>
<li>Atheism</li>
<li>Bahá'í Faith</li>
<li>Buddhism</li>
<li>Christianity</li>
<li>Hinduism</li>
<li>Islam</li>
<li>Judaism</li>
<li>Mythology</li>
<li>Paganism</li>
<h2 class="bookshelf">Science</h2>
<li>Astronomy</li>
<li>Biology</li>
<li>Botany</li>
<li>Chemistry</li>
<li>Ecology</li>
<li>Geology</li>
<li>Mathematics</li>
<li>Microbiology</li>
<li>Microscopy</li>
<li>Mycology</li>
<li>Natural History</li>
<li>Physics</li>
<li>Physiology</li>
<li>Science</li>
<li>Scientific American</li>
<li>Zoology</li>
<h2 class="bookshelf">Social Sciences</h2>
<li>Anarchism</li>
<li>Racism</li>
<li>Slavery</li>
<li>Sociology</li>
<h2 class="bookshelf">Technology</h2>
<li>Engineering</li>
<li>Manufacturing</li>
<li>Technology</li>
<h2 class="bookshelf">Wars</h2>
<li>American Revolutionary War</li>
<li>Boer War</li>
<li>English Civil War</li>
<li>Spanish American War</li>
<li>US Civil War</li>
<li>World War I</li>
<li>World War II</li>
</ul>
</div>
</div>
</div>
</body>
</html>

104
ebooks/bookshelves1.html Normal file
View File

@ -0,0 +1,104 @@
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta charset="UTF-8"/>
<title>Project Gutenberg</title>
<link rel="stylesheet" href="/gutenberg/style.css?v=1.1">
<link rel="stylesheet" href="/gutenberg/nav.css?v=1.1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="keywords" content="books, ebooks, free, kindle, android, iphone, ipad"/>
<meta name="google-site-verification" content="wucOEvSnj5kP3Ts_36OfP64laakK-1mVTg-ptrGC9io"/>
<meta name="alexaVerifyID" content="4WNaCljsE-A82vP_ih2H_UqXZvM"/>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html"/>
<link rel="shortcut icon" href="/gutenberg/fav1/favicon.ico?v=1.1"/>
<meta property="og:title" content="Project Gutenberg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://www.gutenberg.org/" />
<meta property="og:description" content="Project Gutenberg offers free ebooks to download." />
<meta property="fb:admins" content="615269807" />
<meta property="fb:app_id" content="115319388529183" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="og:image" content="http://www.gutenberg.org/pics/logo-144x144.png" />
</head>
<body>
<div class="container">
<nav role="navigation">
<a href="/index.html" class="no-hover">
<img class="logo" src="/gutenberg/new-pg-logo.png" alt="Project Gutenberg" draggable="false">
</a>
<label for="show-menu" class="show-menu"><img src="/gutenberg/menu-icon.png" class="menu"></label>
<input type="checkbox" id="show-menu" role="button">
<!--<a href="#" class="show-menu"></a>-->
<ul id="menu">
<!--<li><a href="/ebooks/index.php">Find a Book</a></li>-->
<li><a href="/ebooks/">Find a Book</a></li>
<li><a href="#">How to Help</a></li>
<li><a href="#">Help</a>
<ul class="hidden">
<li><a href="/help/mobile.html">Mobile How-To</a></li>
<li><a href="#">Sub-2</a></li>
<li><a href="#">Sub-3</a></li>
</ul>
</li>
<li><a href="#">About</a>
<ul class="hidden">
<li><a href="/about/history.html">About Us</a></li>
<li><a href="/policy/privacy_policy.html">Privacy Policy</a></li>
<li><a href="/about/contact_information.html">Contact Us</a></li>
</ul>
</li>
<li><a href="/donate/donate.html">Donate</a></li>
</ul>
<form method="get" action="/ebooks/search/"
accept-charset="utf-8" enctype="multipart/form-data" class="searchbox">
<input type="text" value="" id="menu-book-search" name="query" class="searchInput" title="" alt="undefined string" tabindex="20" size="20" maxlength="80"
placeholder="Search for Books"/>
<input type="submit" name="submit_search" value="Search" style="vertical-align:middle;">
</form>
<div class="donate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="new">
<p>Project Gutenberg appreciates your donation! Learn <a href="/donate/donate.html">Why Donate?</a> Click here to:</p>
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input class="donbtn" type="image" src="/gutenberg/en_US.gif"
name="submit" alt="PayPal-The safer, easier way to pay online!" />
</form>
</div>
</nav>
<div class="page_content">
</div>
<div class="footer">
<a href="http://www.ibiblio.org/index.html" title="Project Gutenberg is hosted by ibiblio">
<img src="/gutenberg/ibiblio-logo.png" alt="HTML tutorial">
</a>
<ul>
<li>
<a href="/policy/privacy_policy.html" title="Gutenberg:Privacy policy">Privacy policy</a>
</li>
<li>
<a href="/about/index.html" title="Gutenberg:About">About Gutenberg</a>
</li>
<li>
<a href="/policy/terms_of_use.html">Terms of Use</a>
</li>
<li>
<a href="/about/contact_information.html">Contact Information</a>
</li>
</ul>
</div> <!-- footer ending-->
</div>
</body>
</html>

547
ebooks/index.php Normal file
View File

@ -0,0 +1,547 @@
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta charset="UTF-8"/>
<title>Project Gutenberg</title>
<link rel="stylesheet" href="/gutenberg/style.css?1.1">
<link rel="stylesheet" href="/gutenberg/collapsible.css?1.1">
<link rel="stylesheet" href="/gutenberg/nav.css?v=1.1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="keywords" content="books, ebooks, free, kindle, android, iphone, ipad"/>
<meta name="google-site-verification" content="wucOEvSnj5kP3Ts_36OfP64laakK-1mVTg-ptrGC9io"/>
<meta name="alexaVerifyID" content="4WNaCljsE-A82vP_ih2H_UqXZvM"/>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html"/>
<link rel="shortcut icon" href="/gutenberg/fav1/favicon.ico?v=1.1"/>
<meta property="og:title" content="Project Gutenberg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://www.gutenberg.org/" />
<meta property="og:description" content="Project Gutenberg offers free ebooks to download." />
<meta property="fb:admins" content="615269807" />
<meta property="fb:app_id" content="115319388529183" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="og:image" content="http://www.gutenberg.org/pics/logo-144x144.png" />
</head>
<body>
<div class="container">
<nav role="navigation">
<a href="/index.html" class="no-hover">
<img class="logo" src="/gutenberg/new-pg-logo.png" alt="Project Gutenberg" draggable="false">
</a>
<label for="show-menu" class="show-menu"><img src="/gutenberg/menu-icon.png" class="menu"></label>
<input type="checkbox" id="show-menu" role="button">
<!--<a href="#" class="show-menu"></a>-->
<ul id="menu">
<li><a href="/ebooks/index.php">Find a Book</a></li>
<li><a href="#">How to Help</a></li>
<li><a href="#">Help</a>
<ul class="hidden">
<li><a href="/help/mobile.html">Mobile How-To</a></li>
<li><a href="#">Sub-2</a></li>
<li><a href="#">Sub-3</a></li>
</ul>
</li>
<li><a href="#">About</a>
<ul class="hidden">
<li><a href="/about/history.html">About Us</a></li>
<li><a href="/policy/privacy_policy.html">Privacy Policy</a></li>
<li><a href="/about/contact_information.html">Contact Us</a></li>
</ul>
</li>
<li><a href="/donate/donate.html">Donate</a></li>
</ul>
<div class="searchbox">
<form method="get" action="/ebooks/search/"
accept-charset="utf-8" enctype="multipart/form-data">
<input type="text" value="" id="menu-book-search" name="query" class="searchInput" title="" alt="undefined string" tabindex="20" size="20" maxlength="80"
placeholder="Search for Books"/>
<input type="submit" name="submit_search" value="Search" style="vertical-align:middle;">
</form>
</div>
<div class="donate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="new">
<p>Project Gutenberg appreciates your donation! Learn <a href="/donate/donate.html">Why Donate?</a> Click here to:</p>
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input class="donbtn" type="image" src="/gutenberg/en_US.gif"
name="submit" alt="PayPal-The safer, easier way to pay online!" />
</form>
</div>
</nav>
<div class="page_content">
<?php
include_once ("pgcat.phh");
global $db;
$db = $config->db ();
$dir = "browse";
$dir_authors = "$dir/authors";
$dir_titles = "$dir/titles";
$dir_langs = "$dir/languages";
$dir_loccs = "$dir/loccs";
$dir_subjects = "$dir/subjects";
$dir_categories = "$dir/categories";
$dir_recent = "$dir/recent";
$dir_feeds = "cache/epub/feeds";
$dir_etext = "ebooks";
$base_url = "http://$config->domain";
?>
<div class="search_category"><ul>
<li><a href="/ebooks/search/?sort_order=downloads">Popular</a></li>
<li><a href="/ebooks/search/?sort_order=release_date">Latest Categories</a></li>
<li><a href="/ebooks/search/?sort_order=random">Random</a></li>
</ul>
</div>
<a class="button" href="#popup1">Help</a>
<div id="popup1" class="overlay">
<div class="popup">
<a class="close" href="#">&times;</a>
<div class="content">
<p>Enter your search terms separated by spaces,
then press &lt;Enter&gt;.
Avoid punctuation except as indicated below:</p>
<table border=3px>
<tr>
<th>Suffixes</th>
<th>.</th>
<td>exact match</td>
</tr>
<tr>
<th rowspan="7">Prefixes</th>
<th>a.</th>
<td>author</td>
</tr>
<tr>
<th>t.</th>
<td>title</td>
</tr>
<tr>
<th>s.</th>
<td>subject</td>
</tr>
<tr>
<th>l.</th>
<td>language</td>
</tr>
<tr>
<th>#</th>
<td>ebook no.</td>
</tr>
<tr>
<th>n.</th>
<td>ebook no.</td>
</tr>
<tr>
<th>cat.</th>
<td>category</td>
</tr>
<tr>
<th rowspan="3" style="width: 8em">
Operators
<small>Always put spaces around these.</small>
</th>
<th>|</th>
<td>or</td>
</tr>
<tr>
<th>!</th>
<td>not</td>
</tr>
<tr>
<th>( )</th>
<td>grouping</td>
</tr>
</table>
<table border=3px>
<tr>
<th>this query</th>
<th>finds</th>
</tr>
<tr>
<td>shakespeare hamlet</td>
<td>"Hamlet" by Shakespeare</td>
</tr>
<tr>
<td>qui.</td>
<td>"qui", not "Quixote"</td>
</tr>
<tr>
<td>love stories</td>
<td>love stories</td>
</tr>
<tr>
<td>a.shakespeare</td>
<td>by Shakespeare</td>
</tr>
<tr>
<td>s.shakespeare</td>
<td>about Shakespeare</td>
</tr>
<tr>
<td>#74</td>
<td>ebook no. 74</td>
</tr>
<tr>
<td>juvenile l.german</td>
<td>juvenile lit in German</td>
</tr>
<tr>
<td>verne ( l.fr | l.it )</td>
<td>by Verne in French or Italian</td>
</tr>
<tr>
<td>love stories ! austen</td>
<td>love stories not by Austen</td>
</tr>
<tr>
<td>jane austen cat.audio</td>
<td>audio books by Jane Austen</td>
</tr>
</table>
</div>
</div>
</div>
<form method="get" action="/ebooks/search/"
accept-charset="utf-8" enctype="multipart/form-data">
<div class="search">
<p><label for="book-search" class="lbl-toggle">Basic Search</label>
<input type="text" value="" id="book-search" name="query" class="searchInput" title="" alt="undefined string" tabindex="20" size="20" maxlength="80"
placeholder="Search for Books"/>
<input type="submit" name="submit_search" value="Search" style="vertical-align:middle;">
</p>
</div>
</form>
<div id="popup2" class="overlay">
<div class="popup">
<a class="close" href="#">&times;</a>
<div class="content">
<ul>
<?php
if (is_maintainer ()) {
echo("<li>Search for items without Subjects (No Subject) by entering " .
"two double quotes into the Subject field, like this: \"\"</li>");
}
?>
<li>Advanced Search is case insensitive.</li>
<li>Fill in as many fields you like.</li>
<li>Enter one or more space separated words in each field.
Avoid punctuation characters.</li>
<li>The result will match all of the words you entered in all
of the fields. Eg. Author: <i>Jules Verne</i>, Title: <i>20</i>,
Language: <i>French</i> will get <i>20.000 Leagues Under The Sea</i>
in French.</li>
<li>Select Language: <i>English</i> only if you explicitly want to
exclude works in languages other than English.
Eg. Author: <i>Molière</i> Language: <i>English</i>
will get all the works of Molière translated into English.</li>
</ul>
</div>
</div>
</div>
<div id="popup3" class="overlay">
<div class="popup">
<a class="close" href="#">&times;</a>
<div class="content">
</div>
</div>
</div>
<div id="popup4" class="overlay">
<div class="popup">
<a class="close" href="#">&times;</a>
<div class="content">
</div>
</div>
</div>
<div id="popup5" class="overlay">
<div class="popup">
<a class="close" href="#">&times;</a>
<div class="content">
</div>
</div>
</div>
<div class="box">
<a class="button" href="#popup2">Help</a>
<?
form_open("results");
?>
<input id="collapsible1" class="toggle" type="checkbox">
<label for="collapsible1" class="lbl-toggle">Advanced Search</label>
<div class="collapsible-content">
<div class="content-inner">
<p>
<label for="author">Author:</label>
<input type="text" name="author" id="author"/>
</p>
<p>
<label for="title">Title:</label>
<input type="text" name="title" id="title"/>
</p>
<p>
<label for="subject">Subject:</label>
<input type="text" name="subject" id="subject"/>
</p>
<p>
<label for="language">Language:</label>
<select id="lang" name="lang"
title="Language (Book Count)">
<?php
echo (" <option selected value=\"\">Any</option>\n");
$db->Exec ("select pk, lang, cnt from langs join (select fk_langs, count (fk_langs) as cnt from mn_books_langs group by fk_langs) as sums on pk = fk_langs order by lang;");
if ($db->FirstRow ()) {
do {
$pk = $db->Get ("pk");
$lang = $db->Get ("lang");
$cnt = $db->Get ("cnt");
echo (" <option value=\"$pk\">$lang ($cnt)</option>\n");
} while ($db->NextRow ());
}
?>
</select>
</p>
<p>
<label for="category" accesskey="c">Category:</label>
<select id="category" name="category"
title="Category (Book Count)">
<?php
echo (" <option selected value=\"\">Any</option>\n");
$db->Exec ("select pk, category, cnt from categories join (select fk_categories, count (*) as cnt from mn_books_categories group by fk_categories) as sums on pk = fk_categories order by pk;");
if ($db->FirstRow ()) {
do {
$pk = $db->Get ("pk");
$category = $db->Get ("category");
$cnt = $db->Get ("cnt");
echo (" <option value=\"$pk\">$category ($cnt)</option>\n");
} while ($db->NextRow ());
}
?>
</select>
</p>
<p>
<label for="locc" accesskey="o">LoCC:</label>
<select id="locc" name="locc"
title="Please choose a Library of Congress Class.">
<?php
echo (" <option selected value=\"\">Any</option>\n");
if (is_maintainer ()) {
echo (" <option value=\"nolocc\">No LoCC</option>\n");
}
$db->Exec ("select pk, locc, cnt from loccs join (select fk_loccs, count (*) as cnt from mn_books_loccs group by fk_loccs) as sums on pk = fk_loccs order by pk;");
if ($db->FirstRow ()) {
do {
$pk = $db->Get ("pk");
$locc = $db->Get ("locc");
$cnt = $db->Get ("cnt");
echo (" <option value=\"$pk\">$pk $locc ($cnt)</option>\n");
} while ($db->NextRow ());
}
?>
</select>
</p>
<p>
<label for="filetype" accesskey="f">Filetype:</label>
<select id="filetype" name="filetype"
title="Please choose a file type.">
<?php
echo (" <option selected value=\"\">Any</option>\n");
$db->Exec ("select pk, filetype from filetypes order by sortorder, filetype;");
if ($db->FirstRow ()) {
do {
$pk = $db->Get ("pk");
$filetype = $db->Get ("filetype");
echo (" <option value=\"$pk\">$filetype ($pk)</option>\n");
} while ($db->NextRow ());
}
?>
</select>
</p>
<p>
<input type="submit" id="submit" name="submit_search" value="Search">
</p>
<?php
form_close();
?>
</div>
</div>
</div>
<a class="button" href="#popup3">Help</a>
<input id="collapsible2" class="toggle" type="checkbox">
<label for="collapsible2" class="lbl-toggle">Full Text Search</label>
<div class="collapsible-content">
<div class="content-inner">
<form method="get" action="https//search.yahoo.com/search">
<img src="/pics/yahoologo.png" style="vertical-align:middle;" alt="Yahoo! logo">
<input type="hidden" name="fr" value="cap-PG">
<input type="hidden" name="vs" id="ysvs1" value="gutenberg.org">
<input type="text" name="p" size="29" placeholder="Search Yahoo!">
<input type="submit" value="Yahoo! Search">
</form>
<form method="get" action="https://www.google.com/search">
<img src="/gutenberg/google_search.png?v=1.1" style="vertical-align:middle;" alt="Google logo">
<input type="text" name="q" size="31" maxlength="255" value="" placeholder="Search Google">
<input type="hidden" name="domains" value="gutenberg.org"/>
<input type="hidden" name="sitesearch" value="gutenberg.org"/>
<input type="submit" name="btnG" value="Google Search"/>
</form>
<form method="get" id="search" action="https://duckduckgo.com/">
<img src="/gutenberg/duck.png?v=1.1" style="vertical-align:middle;" alt="DuckDuckGo logo">
<input type="hidden" name="sites" value="http://www.gutenberg.org"/>
<input type="hidden" name="k8" value="#444444"/>
<input type="hidden" name="k9" value="#D51920"/>
<input type="hidden" name="kt" value="h"/>
<input type="text" name="q" maxlength="255" placeholder="Search DuckDuckGo"/>
<input type="submit" value="DuckDuckGo Search"/>
</form>
</div>
</div>
<a class="button" href="#popup4">Help</a>
<input id="collapsible3" class="toggle" type="checkbox">
<label for="collapsible3" class="lbl-toggle">Browse By Language</label>
<div class="collapsible-content">
<div class="content-inner">
<p>
<label for="more_than_50" accesskey="f">Languages with more than 50 books:</label>
<select id="more_than_50" name="more_than_50" onchange="location=this.value">
<option selected value="">Choose a Language</option>
<?php
$lang_thres=50;
$db->Exec("Select pk, lang, cnt from langs join (select fk_langs, count(fk_langs) as cnt from mn_books_langs group by fk_langs having count(fk_langs) >$lang_thres) as sums on pk =fk_langs order by lang;");
if($db->FirstRow()){
do{
$pk = strtolower($db->Get("pk", SQLCHAR));
$lang=$db->Get("lang",SQLCHAR);
$cnt = $db->Get("cnt", SQLINT);
echo (" <option value = \"/$dir_langs/$pk\" title=\"$lang ($cnt)\">$lang ($cnt)</option>\n");
}while ($db->NextRow());
}
?>
</select>
</p>
<p>
<label for="upto_50" accesskey="f">Languages with upto 50 books:</label>
<select id="upto_50" name="upto_50" onchange="location=this.value">
<option selected value="">Choose a Language</option>
<?php
$db->Exec("Select pk, lang, cnt from langs join (select fk_langs, count(fk_langs) as cnt from mn_books_langs group by fk_langs having count(fk_langs) <=$lang_thres) as sums on pk =fk_langs order by lang;");
if($db->FirstRow()){
do{
$pk = strtolower($db->Get("pk", SQLCHAR));
$lang=$db->Get("lang",SQLCHAR);
$cnt = $db->Get("cnt", SQLINT);
echo (" <option value = \"/$dir_langs/$pk\" title=\"$lang ($cnt)\">$lang ($cnt)</option>\n");
}while ($db->NextRow());
}
?>
</select>
</p>
</div>
</div>
<a class="button" href="#popup5">Help</a>
<input id="collapsible4" class="toggle" type="checkbox">
<label for="collapsible4" class="lbl-toggle">Other Categories</label>
<div class="collapsible-content">
<div class="content-inner">
<p>
<label for="category" accesskey="c">Category:</label>
<select id="category" name="category"
title="Please choose a Project Gutenberg Category." style="width: 30em" onchange="location=this.value">
<?php
echo("<option selected value=\"\">Choose a Category </option>\n");
$db->Exec("Select pk,category,cnt from categories join (select fk_categories,count(*) as cnt from mn_books_categories group by fk_categories) as sums on pk = fk_categories order by pk;");
if($db->FirstRow()){
do{
$pk = $db->Get("pk", SQLINT);
$category = $db->Get("category", SQLCHAR);
$cnt = $db->Get("cnt", SQLINT);
echo (" <option value = \"/$dir_categories/$pk\" title=\"$category ($cnt)\">$category ($cnt)</option>\n");
}while ($db->NextRow());
}
?>
</select>
</p>
<p>
<label>Recent:</label>
<a href="/browse/recent/last1"> Last 24 hours</a>,
<a href="/browse/recent/last7"> Last 7 days </a>,
<a href="/browse/recent/last30"> Last 30 days </a>
</p>
</div>
</div>
</div>
<div class="footer">
<a href="http://www.ibiblio.org/index.html" title="Project Gutenberg is hosted by ibiblio">
<img src="/gutenberg/ibiblio-logo.png" alt="HTML tutorial">
</a>
<ul>
<li>
<a href="/policy/privacy_policy.html" title="Gutenberg:Privacy policy">Privacy policy</a>
</li>
<li>
<a href="/about/index.html" title="Gutenberg:About">About Gutenberg</a>
</li>
<li>
<a href="/policy/terms_of_use.html">Terms of Use</a>
</li>
<li>
<a href="/about/contact_information.html">Contact Information</a>
</li>
</ul>
</div> <!-- footer ending-->
</div>

491
ebooks/results.php Normal file
View File

@ -0,0 +1,491 @@
<?php
// config section
$pagesize = 100;
$max_results = 1000;
$max_ft_results = 5000;
include_once ("pgcat.phh");
$db = $config->db ();
rate_limit ();
// userobots ();
pageheader ("Search on Titles &gt; Results");
privatecache ();
$db2 = $config->db ();
$dofulltext = false;
$time_start = getmicrotime ();
$time_query1 = getmicrotime ();
$time_query2 = getmicrotime ();
function getall ($db, $field, $filterfunc = null) {
$f = array ();
$g = array ();
if ($db->FirstRow ()) {
do {
if (!$filterfunc || $filterfunc ($db)) {
$f[] = $db->get ($field, SQLCHAR);
} else {
$g[] = $db->get ($field, SQLCHAR);
}
} while ($db->NextRow ());
}
return array ($f, $g);;
}
function mkurl ($fields) {
$u = array ();
foreach ($fields as $f) {
if (!empty ($_REQUEST[$f])) {
$u[] = "$f=" . urlencode ($_REQUEST[$f]);
}
}
return join ("&amp;", $u);
}
class CalcFieldAuthorDateRoleLink {
function f ($db) {
global $config;
$fk_authors = $db->get ("fk_authors", SQLINT);
$author = $db->get ("author", SQLCHAR);
$page = find_browse_page ($author);
return "<a href=\"/browse/authors/$page#a$fk_authors\">" .
FormatAuthorDateRole ($db) . "</a>";
}
}
class BooksTable extends ListTable {
function BooksTable () {
global $dofulltext, $config;
$this->AddSimpleColumn ("fk_books", "Etext-No.", "narrow right");
$this->AddSimpleColumn ("c_audioicon", "<img src=\"/pics/stock_volume-16.png\" width=\"16\" height=\"16\" alt=\"Audio\" title=\"Audio Book\"$config->endtag>", "narrow");
$this->AddSimpleColumn ("c_author", "Author", "pgdbdataauthor");
$this->AddColumn ("<a href=\"/ebooks/#fk_books#\">#c_title#</a>", "Title", "pgdbdatatitle");
$this->AddSimpleColumn ("lang", "Language", "narrow");
if ($dofulltext) {
$this->AddSimpleColumn ("", "Fulltext Context", "narrow");
}
}
function PrintRow ($db) {
global $dofulltext, $fulltext, $config, $db2, $fk_files;
// print out a row of the table (w/o <tr> tags)
$pk = $db->get ("pk", SQLINT);
echo ("<td>$pk</td>");
$db2->exec ("select * from mn_books_categories where fk_books = $pk and fk_categories <= 2");
if ($db2->FirstRow ()) {
echo ("<td><img src=\"/pics/stock_volume-16.png\" width=\"16\" height=\"16\" alt=\"Audio\" title=\"Audio Book\"$config->endtag></td>");
} else {
echo ("<td>&nbsp;</td>");
}
$db2->exec ("select * from v_books_authors where fk_books = $pk order by heading, role, author");
$db2->calcfields ["c_author"] = new CalcFieldAuthorDateRoleLink ();
echo ("<td>");
list ($a, $b) = getall ($db2, "c_author",
create_function ('$db', 'return $db->get ("heading", SQLINT) == 1;'));
echo (join ("<br$config->endtag>", $a));
if (count ($b)) {
echo ("<ul><li>");
echo (join ("</li>\n<li>", $b));
echo ("</li></ul>");
}
echo ("</td>");
$db2->exec ("select text, fk_attriblist from attributes " .
"where fk_books = $pk order by fk_attriblist, substr (attributes.text, attributes.nonfiling + 1)");
$db2->calcfields ["c_title"] = new CalcFieldTitle ();
echo ("<td>");
list ($a, $b) = getall ($db2, "c_title",
create_function ('$db', 'return in_array
($db->get ("fk_attriblist", SQLINT), array (240, 245, 246));'));
echo ("<a href=\"/ebooks/$pk\">" . join ("<br$config->endtag>", $a) . "</a>");
list ($a, $b) = getall ($db2, "c_title",
create_function ('$db', 'return ($db->get ("fk_attriblist", SQLINT) == 505);'));
if (count ($a)) {
echo ("<p>Contents:</p><ul><li>");
echo (join ("</li><li>", $a));
echo ("</li></ul>");
}
echo ("</td>");
$db2->exec ("select * from mn_books_langs, langs " .
"where fk_books = $pk and mn_books_langs.fk_langs = langs.pk order by lang");
list ($a, $b) = getall ($db2, "lang");
echo ("<td>" . join (" ", $a) . "</td>");
if ($dofulltext) {
$fks = "fk_files[]=" . join ("&amp;fk_files[]=", $fk_files[$pk]);
$url = "fulltext-context?fulltext=" . urlencode ($fulltext) . "&amp;$fks";
echo ("<td><a href=\"$url\">Context</a></td>\n");
}
}
}
getstr ("author");
getstr ("title");
getstr ("subject");
getstr ("lang");
getstr ("locc");
getint ("category");
getstr ("filetype");
getstr ("filemtime");
getint ("etextnr");
getstr ("fulltext");
getint ("pageno");
if (isset ($author)) {
$author = str_replace ("_", " ", $author);
}
if (isset ($title)) {
$title = str_replace ("_", " ", $title);
}
if (isset ($filemtime)) {
list ($year, $month, $day, $hour, $minute, $second) = sscanf ($filemtime, "%d-%d-%d %d:%d:%d");
$filemtime = mktime ($hour, $minute, $second, $month, $day, $year);
}
// check if we can redirect to a browse page
// this we can always do if the user selects just one search item
$selections = 0;
$location = null;
if (isset ($etextnr)) {
$selections++;
$location = "ebooks/$etextnr";
}
if (isset ($filetype)) {
$selections++;
}
if (isset ($filemtime)) {
$selections++;
}
if (isset ($lang)) {
$selections++;
$location = "browse/languages/$lang";
}
if (isset ($locc)) {
$selections++;
$location = "browse/loccs/" . strtolower ($locc);
}
if (isset ($category)) {
$selections++;
$location = "browse/categories/$category";
}
if (isset ($author)) {
$selections++;
// $location = "author/$author";
}
if (isset ($title)) {
$selections++;
}
if (isset ($subject)) {
$selections++;
}
if (isset ($fulltext)) {
$selections++;
}
if ($selections == 1) {
// the user selected just one thing
if (isset ($location)) {
// and there is a static page listing just that
http_redirect ("/$location");
exit;
}
}
if ($selections == 0) {
p ("<a href=\"/ebooks\">New Search</a> &mdash; You didn't select anything!");
pagefooter ();
exit;
}
// user selected more than one thing
// note: we are dealing with UTF-8 encoded strings !
// strtolower etc. don't work !
// explode on ' ' works.
$sqland = array ();
$yousel = array ();
$pks = array ();
$fk_files = array ();
$pkcnt = 0;
function merge (&$a) {
global $pks;
if (count ($pks)) {
$pks = array_intersect ($pks, $a);
} else {
$pks = $a;
}
if (!count ($pks)) {
p ("No record found. Please retry.");
pagefooter ();
exit ();
}
}
function getpks () {
global $db, $pks, $pkcnt;
$a = array ();
if ($db->FirstRow ()) {
do {
$pk = $db->get ("fk_books", SQLINT);
if ($pk)
$a[$pk] = "$pk";
} while ($db->NextRow ());
}
$pkcnt = count ($a);
merge ($a);
}
function yousel ($what) {
global $yousel, $pkcnt;
$yousel[] = "$what ($pkcnt books match)";
}
// fast queries first, so we can bail out soon if nothing found
if (isset ($etextnr)) {
$sql_etextnr = $db->f ($etextnr, SQLINT);
$db->exec ("select pk as fk_books from books where pk = $sql_etextnr");
getpks ();
yousel ("Etext-No. = $etextnr");
}
if (isset ($filetype)) {
$sql_filetype = $db->f ($filetype, SQLCHAR);
$db->exec ("select fk_books from files where fk_filetypes = $sql_filetype");
getpks ();
yousel ("Filetype = $filetype");
}
if (isset ($filemtime)) {
$sql_filemtime = $db->f ($filemtime, SQLDATE);
$db->exec ("select fk_books from files where filemtime >= $sql_filemtime");
getpks ();
yousel ("Book Modified Since: " . date ("Y-m-d H:i:s", $filemtime));
}
if (isset ($locc)) {
if ($locc=="nolocc") {
if (is_maintainer ()) {
$db->exec ("select books.pk as fk_books from books left join mn_books_loccs on books.pk=mn_books_loccs.fk_books where fk_loccs is null");
getpks ();
yousel ("LoC Class = No LoCC");
} else {
yousel ("LoC Class = No LoCC (Only available to Catalog Editors, sorry.)");
}
} else {
$sql_locc = $db->f ($locc, SQLCHAR);
$db->exec ("select fk_books from mn_books_loccs where fk_loccs = $sql_locc");
getpks ();
yousel ("LoC Class = $locc");
}
}
if (isset ($lang)) {
$sql_lang = $db->f ($lang, SQLCHAR);
$db->exec ("select lang from langs where pk = $sql_lang");
if ($db->FirstRow ()) {
$lang = $db->Get ("lang", SQLCHAR);
$db->exec ("select fk_books from mn_books_langs where fk_langs = $sql_lang");
getpks ();
yousel ("Language = $lang");
}
}
if (isset ($category)) {
$sql_category = $db->f ($category, SQLINT);
$db->exec ("select category from categories where pk = $sql_category");
if ($db->FirstRow ()) {
$category = $db->Get ("category", SQLCHAR);
$db->exec ("select fk_books from mn_books_categories where fk_categories = $sql_category");
getpks ();
yousel ("Category = $category");
}
}
if (isset ($author)) {
foreach (explode (" ", $author) as $tmp) {
$sql_author = $db->f ("%$tmp%", SQLCHAR);
$db->exec ("select fk_books from authors inner join mn_books_authors on authors.pk = mn_books_authors.fk_authors where author ilike $sql_author or pk in (select fk_authors from aliases where alias ilike $sql_author)");
getpks ();
yousel ("Author = $tmp");
}
}
if (isset ($title)) {
foreach (explode (" ", $title) as $tmp) {
$sql_title = $db->f ("%$tmp%", SQLCHAR);
$db->exec ("select fk_books from attributes where fk_attriblist in (240, 245, 246, 505) and text ilike $sql_title");
getpks ();
yousel ("Title = $tmp");
}
}
if (isset ($subject)) {
if ($subject=="&quot;&quot;") {
if (is_maintainer ()) {
$db->exec ("select books.pk as fk_books from books left join mn_books_subjects on books.pk=mn_books_subjects.fk_books where fk_subjects is null");
getpks ();
yousel ("Subject = \"\" (No Subject)");
} else {
yousel ("Subject = \"\" (No Subject) " .
"(Only available to Catalog Editors, sorry.)");
}
} else {
foreach (explode (" ", $subject) as $tmp) {
$sql_subject = $db->f ("%$tmp%", SQLCHAR);
$db->exec ("select fk_books from subjects inner join mn_books_subjects on subjects.pk = mn_books_subjects.fk_subjects where subject ilike $sql_subject");
getpks ();
yousel ("Subject = $tmp");
}
}
}
if (isset ($fulltext)) {
// get rid of &quot;
$fulltext = html_entity_decode ($fulltext);
$query = escapeshellarg (utf8_decode ($fulltext));
$hd = popen ("/public/vhost/g/gutenberg/private/local/bin/swish-e " .
"-f /public/vhost/g/gutenberg/private/swish-data/index.swish-e " .
"-w $query", "r");
$stopwords = "";
$ftpks = array ();
if ($hd) {
while (!feof ($hd)) {
$line = trim (fgets ($hd));
if (strlen ($line) && $line{0} == '#') {
if (preg_match ("/^# Number of hits: (\d+)/", $line, $matches)) {
continue;
}
if (!strncmp ($line, "# Removed stopwords: ", 21)) {
$stopwords = substr ($line, 21);
continue;
}
if (!strncmp ($line, "# Indexed on: ", 14)) {
// needs -H2 to turn on
$indexed_on = substr ($line, 14);
continue;
}
continue;
}
if (preg_match ("/^(\d+)\s+(\d+)\/(\d+)\//", $line, $matches)) {
// line format: rank fk_books/fk_files/...
$fk_books_tmp = $matches [2];
$ftpks[intval ($fk_books_tmp)] = $fk_books_tmp;
// an ebook can have more than one file
// eg. part1.html, part2.html etc.
$fk_files[$fk_books_tmp][] = $matches [3];
}
}
pclose ($hd);
}
$pkcnt = count ($ftpks);
$yousel[] = "Full Text = " . htmlspecialchars ($fulltext) . " ($pkcnt books match)" .
(empty ($stopwords) ? "" :
"<br$config->endtag>Note: following words were removed from your " .
"full text search: <em>$stopwords</em>.");
merge ($ftpks);
$dofulltext = 1;
}
$bcnt = count ($pks);
if ($bcnt > $max_results) {
p ("More than $max_results books matched your search. Please refine your query.");
pagefooter ();
return;
}
p ("<a href=\"/ebooks\">New Search</a>");
if ($yousel) {
p ("You selected:");
echo ("<ul><li>" . implode ("</li><li>", $yousel) . "</li></ul>\n");
}
// flush (); flushes headers too :-(
$time_query1 = getmicrotime ();
$where = "books.pk in (" . implode (", ", $pks) . ")";
$offset = $pageno * $pagesize;
// this will turn our unsorted list of books
// into a sorted list of headings
// note: there may be more (or less) headings than books
$sql = "select books.pk from (books
left join v_books_authors on books.pk = fk_books and heading = 1)
left join attributes on books.pk = attributes.fk_books
where attributes.fk_attriblist = 245 and
$where order by author, substr (attributes.text, attributes.nonfiling + 1),
books.pk offset $offset";
// echo ($sql);
$db->exec ($sql);
$time_query2 = getmicrotime ();
$hcnt = $db->CountRows ();
$s = ($bcnt > 1) ? "s" : "";
$note = ($hcnt > $bcnt) ?
"Note: in the following table some books are listed under more than one heading." : "";
p ("$bcnt book$s found. $note");
$pl = "";
$pages = intval (($offset + $hcnt - 1) / $pagesize) + 1;
if ($pages > 1) {
$url = mkurl (array ("author", "title", "subject", "lang", "category",
"locc", "filetype", "filemtime", "etextnr", "fulltext"));
$p = $pageno - 1;
$previous = $pageno ? "<a href=\"results?$url&amp;pageno=$p\">previous</a>" : "";
$p = $pageno + 1;
$next = ($p < $pages) ? "<a href=\"results?$url&amp;pageno=$p\">next</a>" : "";
$pagelinks[] = "$previous ";
for ($i = 0; $i < $pages; $i++) {
if ($i == $pageno) {
$pagelinks[] = "<span class=\"red\">$i</span> ";
} else {
$pagelinks[] = "<a href=\"results?$url&amp;pageno=$i\">$i</a> ";
}
}
$pagelinks[] = $next;
$pl = "<p class=\"center resultpages\">" . join (" ", $pagelinks) . "</p>\n\n";
}
$time_end = getmicrotime ();
$time = $time_end - $time_start;
echo ($pl);
$table = new BooksTable ();
$table->limit = $pagesize;
$table->PrintTable ($db, "Titles", "pgdbfiles");
echo ($pl);
$time_end = getmicrotime ();
$time1 = $time_query1 - $time_start;
$time2 = $time_query2 - $time_query1;
$time3 = $time_end - $time_query2;
$time = $time_end - $time_start;
// p ("Processing time: $time ($time1 + $time2 + $time3) seconds");
pagefooter ();
?>

132
ebooks/tab.html Normal file
View File

@ -0,0 +1,132 @@
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta charset="UTF-8"/>
<title>Project Gutenberg</title>
<link rel="stylesheet" href="../gutenberg/style.css?v=1.1">
<link rel="stylesheet" href="../gutenberg/nav.css?v=1.1">
<link rel="stylesheet" href="book_landing_page.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="keywords" content="books, ebooks, free, kindle, android, iphone, ipad"/>
<meta name="google-site-verification" content="wucOEvSnj5kP3Ts_36OfP64laakK-1mVTg-ptrGC9io"/>
<meta name="alexaVerifyID" content="4WNaCljsE-A82vP_ih2H_UqXZvM"/>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html"/>
<link rel="shortcut icon" href="/gutenberg/fav/favicon.ico"/>
<meta property="og:title" content="Project Gutenberg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://www.gutenberg.org/" />
<meta property="og:description" content="Project Gutenberg offers free ebooks to download." />
<meta property="fb:admins" content="615269807" />
<meta property="fb:app_id" content="115319388529183" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="og:image" content="http://www.gutenberg.org/pics/logo-144x144.png" />
</head>
<body>
<div class="container">
<nav role="navigation">
<a href="/index.html" class="no-hover">
<img class="logo" src="../gutenberg/new-pg-logo.png" alt="Project Gutenberg" >
</a>
<label for="show-menu" class="show-menu"><img src="gutenberg/menu-icon.png" class="menu"></label>
<input type="checkbox" id="show-menu" role="button">
<!--<a href="#" class="show-menu"></a>-->
<ul id="menu">
<li><a href="/ebooks/index.html">Find a Book</a></li>
<li><a href="#">How to Help</a></li>
<li><a href="#">Help</a>
<ul class="hidden">
<li><a href="/help/mobile.html">Mobile How-To</a></li>
<li><a href="#">Sub-2</a></li>
<li><a href="#">Sub-3</a></li>
</ul>
</li>
<li><a href="#">About</a>
<ul class="hidden">
<li><a href="about/history.html">About Us</a></li>
<li><a href="policy/privacy_policy.html">Privacy Policy</a></li>
<li><a href="about/contact_information.html">Contact Us</a></li>
</ul>
</li>
<li><a href="/donate/donate.html">Donate</a></li>
</ul>
<div class="searchbox">
<form method="get" action="/ebooks/search/"
accept-charset="utf-8" enctype="multipart/form-data">
<input type="text" value="" id="menu-book-search" name="query" class="searchInput" title="" alt="undefined string" tabindex="20" size="20" maxlength="80"
placeholder="Search for Books"/>
</form>
</div>
<div class="donate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="new">
<p>Project Gutenberg appreciates your donation! Learn <a href="/donate/donate.html">Why Donate?</a> Click here to:</p>
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input class="donbtn" type="image" src="/gutenberg/en_US.gif"
name="submit" alt="PayPal-The safer, easier way to pay online!" />
</form>
</div>
</nav>
<div class="page_content">
<div class="tabs">
<input name="tabs" type="radio" id="tab-1" checked="checked" class="input"/>
<label for="tab-1" class="label">Download</label>
<div class="panel">
<table class="files" summary="Table of available file types and sizes.">
<tr>
<th>Format </th>
<th>Size</th>
</tr>
<tr>
<td property="dcterms:format" content="text/html; charset=us-ascii" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/files/58784/58784-h/58784-h.htm" type="text/html; charset=us-ascii" class="link" title="Download">Read this book online: HTML</a></td>
<td class="right" property="dcterms:extent" content="85678">84 kB</td>
</tr>
<tr>
<td property="dcterms:format" content="application/epub+zip" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.epub.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/epub+zip" class="link" title="Download">EPUB (with images)</a></td>
<td class="right" property="dcterms:extent" content="357863">349 kB</td>
</tr>
<tr>
<td property="dcterms:format" content="application/epub+zip" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.epub.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/epub+zip" class="link" title="Download">EPUB (no images)</a></td>
</tr>
<tr>
<td property="dcterms:format" content="application/x-mobipocket-ebook" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.kindle.images?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/x-mobipocket-ebook" class="link" title="Download">Kindle (with images)</a></td>
<td class="right" property="dcterms:extent" content="767711">750 kB</td>
</tr>
<tr>
<td property="dcterms:format" content="application/x-mobipocket-ebook" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.kindle.noimages?session_id=0af6e2780e30727ccae4a943f9e318f748fa1f99" type="application/x-mobipocket-ebook" class="link" title="Download">Kindle (no images)</a></td>
<td class="right" property="dcterms:extent" content="315421">308 kB</td>
</tr>
<tr>
<td property="dcterms:format" content="text/plain" datatype="dcterms:IMT" class="unpadded icon_save"><a href="//www.gutenberg.org/ebooks/58784.txt.utf-8" type="text/plain" class="link" title="Download">Plain Text UTF-8</a></td>
<td class="right" property="dcterms:extent" content="80713">79 kB</td>
</tr>
<tr>
<td class="unpadded icon_file"><a href="/files/58784/" class="link">More Files…</a></td>
</tr>
</table>
</div>
<input name="tabs" type="radio" id="tab-2" class="input"/>
<label for="tab-2" class="label">Tangerine</label>
<div class="panel">
<h1>Tangerine</h1>
<p>The tangerine (Citrus tangerina) is an orange-colored citrus fruit that is closely related to, or possibly a type of, mandarin orange (Citrus reticulata).</p>
<p>The name was first used for fruit coming from Tangier, Morocco, described as a mandarin variety. Under the Tanaka classification system, Citrus tangerina is considered a separate species.</p>
</div>
<input name="tabs" type="radio" id="tab-3" class="input"/>
<label for="tab-3" class="label">Clemantine</label>
<div class="panel">
<h1>Clemantine</h1>
<p>A clementine (Citrus ×clementina) is a hybrid between a mandarin orange and a sweet orange, so named in 1902. The exterior is a deep orange colour with a smooth, glossy appearance. Clementines can be separated into 7 to 14 segments. Similarly to tangerines, they tend to be easy to peel.</p>
</div>
</div>
</div>
</div>
</body>

BIN
gutenberg/apple-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
gutenberg/book-cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

186
gutenberg/collapsible.css Normal file
View File

@ -0,0 +1,186 @@
.lbl-toggle {
display: block;
font-weight: bold;
font-size: 1.2rem;
text-transform: uppercase;
text-align:left;
padding: 1rem;
color: #A01F13;
/*background: #FAE042;*/
cursor: pointer;
border-radius: 7px;
transition: all 0.25s ease-out;
}
.lbl-toggle:hover {
color: #7C5A0B;
}
.lbl-toggle::before {
content: ' ';
display: inline-block;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid currentColor;
vertical-align: middle;
margin-right: .7rem;
transform: translateY(-2px);
transition: transform .2s ease-out;
}
.collapsible-content .content-inner {
background: #F5ECDB;
border-bottom: 1px solid rgba(250, 224, 66, .45);
border-bottom-left-radius: 7px;
border-bottom-right-radius: 7px;
padding: .5rem 1rem;
}
.collapsible-content {
max-height: 0px;
overflow: hidden;
transition: max-height .25s ease-in-out;
}
input[type='checkbox'] {
display: none;
}
.toggle:checked + .lbl-toggle + .collapsible-content {
max-height: 500px;
}
.toggle:checked + .lbl-toggle::before {
transform: rotate(90deg) translateX(-3px);
}
.toggle:checked + .lbl-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.content-inner input[type="text"]{
width:400px;
}
.content-inner p{
display:table-row;
}
.content-inner label{
display:table-cell;
}
.content-inner input{
display: table-cell;
margin-bottom: 20px;
}
.content-inner select{
display: table-cell;
margin-bottom: 20px;
width:400px;
}
.search{
display: table;
}
.search p{
display: table-row;
}
.search label{
display: table-cell;
}
.search input{
display: table-cell;
}
.box {
/*width: 40%;
margin: 0 auto;
background: rgba(255,255,255,0.2);
padding: 35px;
border: 2px solid #fff;
border-radius: 20px/50px;
background-clip: padding-box;
text-align: center;*/
}
.button {
font-size: 1em;
padding: 10px;
/*color: #fff;*/
border: 2px solid #000000;
border-radius: 20px/50px;
text-decoration: none;
cursor: pointer;
transition: all 0.3s ease-out;
display: inline;
float:right;
}
.button:hover {
background: #06D85F;
}
.overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.7);
transition: opacity 500ms;
visibility: hidden;
opacity: 0;
}
.overlay:target {
visibility: visible;
opacity: 1;
}
.popup {
margin: 150px auto;
padding: 20px;
background: #fff;
border-radius: 5px;
width: 30%;
position: relative;
transition: all 5s ease-in-out;
}
.popup .close {
position: absolute;
top: 20px;
right: 30px;
transition: all 200ms;
font-size: 30px;
font-weight: bold;
text-decoration: none;
color: #333;
}
.popup .close:hover {
color: #06D85F;
}
.popup .content {
max-height: 30%;
overflow: auto;
}
@media screen and (max-width: 700px){
.box{
width: 70%;
}
.popup{
width: 70%;
}
}

BIN
gutenberg/duck.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
gutenberg/en_US.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
gutenberg/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
gutenberg/google_search.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
gutenberg/ibiblio-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
gutenberg/menu-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

342
gutenberg/nav.css Normal file
View File

@ -0,0 +1,342 @@
/*Strip the ul of padding and list styling*/
nav {
background-color:#EDDAB7;
color:#000000;
left: 0;
padding: 0 10vw 0 0;
position: fixed;
right: 0;
top: 0;
z-index: 999;
font-weight: bold;
}
nav ul {
list-style-type:none;
/*margin:0;*/
padding:0;
position: absolute;
margin-left:140px;
}
/*Create a horizontal list with spacing*/
nav li {
display:inline-block;
float: left;
margin-right: 1px;
}
/*Style for menu links*/
nav li a {
display:block;
min-width:120px;
height: 50px;
text-align: center;
line-height: 50px;
color: #fff;
background: #EDDAB7;
text-decoration: none;
}
/*Hover state for top level links*/
nav li:hover a {
/*background: #19c589;*/
text-decoration:underline;
}
/*Style for dropdown links*/
nav li:hover ul a {
background: #EDDAB7;
color: #2f3036;
height: 40px;
line-height: 40px;
margin: 0;
text-decoration:none;
}
/*Hover state for dropdown links*/
nav li:hover ul a:hover {
background: #7A7A7A;
/*text-decoration:underline;*/
color: #fff;
}
/*Hide dropdown links until they are needed*/
nav li ul {
display: none;
margin-left: 0px;
}
/*Make dropdown links vertical*/
nav li ul li {
display: block;
float: none;
}
/*Prevent text wrapping*/
nav li ul li a {
width: auto;
min-width: 100px;
padding: 0 20px;
}
/*Display the dropdown on hover*/
nav ul li a:hover + .hidden, .hidden:hover {
display: block;
}
.logo{
top:0;
left:0;
position: absolute;
}
/*Style 'show menu' label button and hide it by default*/
.show-menu {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
text-align: center;
padding: 10px 0;
display: none;
margin-left: 140px;
}
/*Hide checkbox*/
nav input[type=checkbox]{
display: none;
}
/*Show menu when invisible checkbox is checked*/
nav input[type=checkbox]:checked ~ #menu{
display: block;
}
.menu{
display: inline;
}
/*nav .searchbox{
margin-right: 20px;
float: right;
position:relative;
background-color: #EDDAB7;
}*/
nav .searchbox input[type=text]{
height:25px;
width:100px;
border-radius:25px;
color: black;
background-color: #f5f5f5;
}
nav .searchbox{
position: relative;
float:right;
width:200px;
padding:10px;
background-color: #EDDAB7;
}
nav .donate{
background-color:#F5ECDB;/*#ADA96B;*/
color:black;
font-size: 16px;
width:115%;
margin-top: 60px;
}
nav .donate p{
font-weight:bold;
margin-top:0px;
margin-left:140px;
display: inline;
}
nav .donate .donbtn{
display:inline-block;
cursor: pointer;
}
/*Responsive Styles*/
@media screen and /*(orientation: portrait)*/(max-width : 750px){
/*Make dropdown links appear inline*/
nav {
height:auto;
font-size:12px;
}
nav ul {
position: static;
display: none;
}
/*Create vertical spacing*/
nav li {
margin-bottom: 1px;
}
/*Make all menu links full width*/
nav ul li, li a {
width:auto;
display: inline-block;
}
nav ul li ul{
width:auto;
}
nav li a{
text-align:left;
}
/*Display 'show menu' link*/
nav .show-menu {
top:0;
display:inline-block;
}
nav .donate p{
display: inline-block;
margin-left: 0px;
}
nav .donate{
display: none;
}
/*nav .searchbox input{
margin-left: 80px;
width:140px;
}*/
nav .searchbox{
float:none;
background-color: transparent;
display:inline-block;
}
}
/* ==================================================
navigation */
/*nav {
background-color:#EDDAB7;
color:#000000;
height: 60px;
left: 0;
padding: 20px 10vw 0 0;
position: fixed;
right: 0;
top: 0;
z-index: 999;
}
/* page links
nav a {
display: block;
float: left;
line-height: 20px;
max-width: 125px;
padding: 10px;
text-decoration: none;
width: 25%;
}
nav .searchbox{
display: block;
float: right;
width: 100px;
padding: 10px;
}
nav .searchbox input{
height:25px;
width:200px;
border-radius:25px;
color: black;
text-align: left;
background-color: #f5f5f5;
}
nav li a img{
position:absolute;
top: 0;
left:0;
}
/*.logo{
height:75px;
width:75px;
}
nav ul li{
display:inline;
}
nav a.page {
font-weight: 700;
position:relative;
text-decoration: none;
}
nav a.page:after {
background: #000000;
bottom: -11px;
content: "";
height: 1px;
left: 5%;
opacity: 0;
pointer-events: none;
position: absolute;
right: 5%;
transform: scale(0, 1);
transition: all 200ms;
}
nav a.page:hover:after {
opacity: 1;
transform: scale(1, 1);
}
.underline {
background: #000000;
height: 1px;
left: 5%;
margin-top: 20px;
position: absolute;
right: 50%;
}
@media screen and (orientation: portrait) {
.underline {
right: 25%;
}
}
nav .social {
float: right;
}
nav .social a {
height: 20px;
width: 20px;
}
nav .donate{
background-color:#F5ECDB;
color:black;
font-size: 16px;
width:115%;
}
nav .donate p{
font-weight:bold;
margin-top:0px;
margin-left:140px;
display: inline;
}
nav .donate .donbtn{
display:inline-block;
cursor: pointer;
}
nav .donate a{
float:none;
display: inline;
}
nav .donate a:hover {
color: currentColor;
background:#E7E292;
text-decoration: underline;
}
nav .donate a:link {
text-decoration: underline;
}
nav .donate a:visited {
color: #3E444D;
}
@media only screen and (max-width: 1000px) {
nav .social a:not(:last-child) {
display: none;
}
}*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

654
gutenberg/style.css Normal file
View File

@ -0,0 +1,654 @@
html,
body {
background-color:#FFFFFF;/* #FFFCD7;*/
color:#000000; /*#A01F13;*/
font-family:
/*-apple-system,
BlinkMacSystemFont,
"Segoe UI",
"Helvetica Neue",
Roboto,
Ubuntu,
Helvetica,
Arial,
sans-serif,
"Apple Color Emoji",
"Segoe UI Emoji",
"Segoe UI Symbol";*/;
font-size: 16px;
margin: 0;
max-width: 100vw;
padding: 0;
width: 100%;
height:100%;
}
html {
overflow-y: scroll;
}
/* links */
a:active {
color: currentColor;
}
a:hover {
color: currentColor;
text-decoration: underline;
}
a:link {
color: currentColor;
text-decoration: none;
}
a:visited {
color: currentColor;
}
.no-hover:hover {
text-decoration: none;
}
/* text selection */
::-moz-selection {
background: #0a0a0a;
color: #ffffff;
}
::selection {
background: #0a0a0a;
color: #ffffff;
}
.no-select {
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}
/* animations */
.fadein {
-moz-animation: fadein 1s;
-ms-animation: fadein 1s;
-o-animation: fadein 1s;
-webkit-animation: fadein 1s;
animation: fadein 1s;
}
@-moz-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.fadeinup {
-moz-animation: fadeInUp 1s both ease;
-ms-animation: fadeInUp 1s both ease;
-o-animation: fadeInUp 1s both ease;
-webkit-animation: fadeInUp 1s both ease;
animation: fadeInUp 1s both ease;
}
@-moz-keyframes fadeInUp {
from {
opacity: 0;
transform: translate3d(0, 40px, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
@-webkit-keyframes fadeInUp {
from {
opacity: 0;
transform: translate3d(0, 40px, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translate3d(0, 50px, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
/* ==================================================
container */
.container {
max-width: 100%;
min-height:75vh;
position: relative;
}
@media screen and (orientation: landscape) {
.container {
min-height: 75vh;
padding: 10vh 10vw;
}
}
@media screen and (orientation: portrait) {
.container {
min-height: 75vh;
padding: 10vh 10vw;
}
}
/*.content h1 {
margin-top:40px;
}*/
.desc {
color: #808080;
font-size: 20px;
font-weight: 200;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
/* ==================================================
library */
.library .latest {
overflow: auto;
white-space: nowrap;
width: 100%;
}
.library .latest::-webkit-scrollbar {
height: 3px;
}
.library .latest::-webkit-scrollbar-track {
background-color: #cccccc
}
.library .latest::-webkit-scrollbar-thumb {
background-color: #333333
}
.library .latest a {
display: inline-block;
margin: 0;
padding: 10px
}
.library .latest .cover-container {
height: 160px;
width: 120px;
}
.library .latest a img {
max-height: 160px;
max-width: 120px;
}
.library .latest h1{
/*color: #999999;*/
/*font-size: 30px;
font-weight: bold;*/
color:#A01F13;
margin-top: 15px;
margin-bottom: 15px;
width: 100%;
border-bottom: 2px solid #A01F13;
}
.library .latest a:hover{
background-color: #FFFFFF;
}
.bookshelves {
margin: 0 auto;
padding: 0;
width: 100%;
}
.bookshelves ul {
-moz-column-count: 3;
-moz-column-gap: 0px;
-webkit-column-count: 3;
-webkit-column-gap: 0px;
column-count: 3;
column-gap: 0px;
cursor: default;
width: 100%;
height: 620px;
}
.bookshelves ul li {
color: #808080;
display: inline-block;
margin-bottom: 0px;
padding-right: 10%;
width: 90%;
}
/*.library .bookshelves h2:hover,
.library .bookshelves ul li:hover {
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
-webkit-transition: all 0.2s ease-in-out;
color: #000000;
cursor: pointer;
text-decoration: underline;
transition: all 0.2s ease-in-out;
}
*/
.page_content.library .lib {
margin-bottom: 50px;
}
/*@media only screen and (max-width: 1200px),
only screen and (max-device-width: 1200px) {
.library .bookshelves ul {
-moz-column-count: 2;
-moz-column-gap: 0px;
-webkit-column-count: 2;
-webkit-column-gap: 0px;
column-count: 2;
column-gap: 0px;
}
}
@media only screen and (max-width: 1000px),
only screen and (max-device-width: 1000px) {
.library .bookshelves ul {
-moz-column-count: 1;
-moz-column-gap: 0px;
-webkit-column-count: 1;
-webkit-column-gap: 0px;
column-count: 1;
column-gap: 0px;
}
.library .bookshelves ul li {
padding-right: 0;
width: 100%;
}
}
*/
/* ==================================================
book */
.book-container {
align-items: center;
justify-content: center;
margin: 50px;
max-width: 1000px;
}
@media only screen and (min-width: 1001px) {
.book-container {
display: flex;
}
}
.book.page_content {
-moz-transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
-o-transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
-webkit-transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
background-color: #f5f5f5;
box-shadow: none;
padding: 50px;
transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
}
.book.page_content:hover {
-moz-transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
-o-transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
-webkit-transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
background-color: #ffffff;
box-shadow: 0 25px 75px rgba(0, 0, 0, 0.1);
transition: box-shadow 0.2s ease-in-out, background-color 0.5s ease-in-out;
}
.book .section {
display: table-cell;
padding: 10px;
}
.book .cover img {
box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.1);
max-height: 200px;
max-width: 150px;
vertical-align: top;
}
.book .details .id {
font-family: Consolas, Courier, monospace;
}
.book .bib_rec li h4{
font-size: 15px;
display: inline;
}
.book .bib_rec ul{
list-style: square inside;
}
@media only screen and (min-width: 1001px) {
.book .download {
width: 75px;
}
.book .download{
line-height: 25px;
width:130px;
}
.book .download a li{
display: block;
}
.book .download ul{
list-style: square inside;
}
.book .share {
line-height:25px;
width: 20px;
word-wrap: break-word;
}
.book .share a {
display: block;
margin: 10px 0;
}
}
@media only screen and (max-width: 1000px) {
.book .section {
display: block;
text-align: center;
}
.book h1 {
text-align: center;
}
.book .download a {
display: inline-block;
text-align: center;
width: 20%;
max-width: 75px;
}
.book .share a {
display: inline-block;
margin: 5px;
}
}
.book .share a {
background: #000000;
border-radius: 50%;
color: #ffffff;
font-size: 13px;
height: 20px;
text-align: center;
width: 20px;
}
.share-icon img{
height:20px;
width: 20px;
}
/* ==================================================
about */
.about {
-moz-column-count: 2;
-moz-column-gap: 0px;
-webkit-column-count: 2;
-webkit-column-gap: 0px;
column-count: 2;
column-gap: 0px;
margin: 0 auto;
}
.about p,
.about a {
color: #808080;
display: inline-block;
font-size: 15px;
font-weight: 200;
margin-bottom: 0px;
padding-right: 10%;
width: 90%;
}
.about p.quote {
color: #000000;
font-style: italic;
font-weight: 500;
padding-left: 5%;
width: 85%;
}
.about a {
text-decoration: underline;
}
@media only screen and (max-width: 1200px),
only screen and (max-device-width: 1200px) {
.about {
-moz-column-count: 1;
-moz-column-gap: 0px;
-webkit-column-count: 1;
-webkit-column-gap: 0px;
column-count: 1;
column-gap: 0px;
}
.about p {
width: 100%;
padding-right: 0;
}
.about p.quote {
width: 95%;
}
}
.page_content{
margin-top:40px;
padding-bottom: 30px;
}
.page_content figure {
/*border: 3px solid #ddd;*/
border-radius: 5px;
padding: 10px;
max-width: 100%;
height: auto;
float:right;
text-align:center;
}
.page_content figure img{
width:100%;
align:center;
}
/*.thumbnail a{
text-align:center;
}*/
.page_content .box_shadow{
/*box-shadow: 10px 10px 8px #F5ECDB;*/
background-color: #F5ECDB;
/*border:2px outset #F5ECDB;*/
border:1px solid #eddab7;
margin-top: 1em;
margin-bottom: 1em;
padding: 1ex 1em;
}
/*.page_content .page_heading {
font-size: 30px;
font-weight: bold;
color:#A01F13;
}*/
.page_content h1{
font-size: 30px;
font-weight: bold;
color:#A01F13;
margin-top: 15px;
margin-bottom: 15px;
width: 100%;
border-bottom: 2px solid #A01F13;
}
.page_content h2{
font-size: 25px;
font-weight:bold;
color:#A01F13;
margin-top:15px;
margin-bottom: 15px;
width:100%;
border-bottom: 2px solid #A01F13;
}
.anchor a{
top:-80px;
}
.page_content ul{
list-style: square inside none;
}
.page_content ul li{
padding: 5px;
}
.page_content p{
/*color: #999999;*/
margin-top: 10px;
margin-bottom: 10px;
padding-top:10px;
padding-bottom: 10px;
}
.page_content a:active {
color: brown;
}
.page_content a:hover {
color: currentColor;
background:#E7E292;
text-decoration: underline;
}
.page_content a:link {
color: #003366;
text-decoration: underline;
}
.page_content a:visited {
color: #3E444D;
}
.search_category li{
display:inline-block;
}
.search_category a{
font-weight:bold;
}
.footer {
text-align:center;
font-size:12px;
/*position:absolute;*/
/*bottom:0;
height:60px; Height of the footer */
position: absolute;
bottom: 0;
width: 80%;
height: 30px;
}
.footer ul li{
display: inline-block;
padding: 10px;
}
.footer img{
align:center;
}
@media only screen and (max-width: 750px) {
container {
left: 0;
padding: 10% 10vw;
position: relative;
right: 0;
width: 80vw;
}
/*.content{
margin-top: 180px;
}*/
.library .latest h1{
font-size: 18px;
}
.page_content{
margin-top:60px;
height: auto;
}
.page_content h1{
font-size:18px;
text-align: center;
}
.page_content h2{
font-size:16px;
text-align: center;
}
body {
font-size:14px;
}
}

BIN
gutenberg/yahoologo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,64 @@
---
layout: default
title: PG- Contact Information
permalink: /about/contact_information.html
---
# Contact Information
From Project Gutenberg, the first producer of free ebooks.
## Electronic Mail
The best way to get in touch is by email.
Please note:
- You cannot click on the address, but must copy it to your email program manually and adjust it to be a valid email address. We apologize for the inconvenience but this helps hiding our addresses from spammers.
- Include a descriptive subject line, or your email will end up in our spam jail.
- Don't send HTML email.
- Be patient. We get a lot of email. If you don't get a response within the time mentioned below, please resend your email.
Please select the most appropriate address from this list.
1. help2018 (at) pglaf.org
General help. Requests for information about Project Gutenberg eBooks or the Project Gutenberg Web pages. Responses typically within two days.
2. errata2018 (at) pglaf.org
Errata within eBooks. To report an error within an eBook (such as a missing word), please be sure to include the eBook number or specific filename or download link you used. Error reports are easiest to handle when they clearly indicate the context in which an error was found. Note that since Project Gutenberg includes many old titles, it is common for unusual spelling or arcane word uses to be used. If possible, check a printed source to verify whether an error exists, before reporting it. Messages to the errata list generate an automatic response that your report was received.
Any errata/bug/typo report is welcome! There is additional guidance in the FAQ on how to prepare errata reports so they are easiest for the Project Gutenberg team to handle. Start with [FAQ #R.26]() on how to report typos.
3. catalog2018 (at) pglaf.org
Catalog metadata errors. Report an error in the online catalog (such as a misspelled author name). There is no automated response, but typically your message is handled within a few days.
4. copyright2018 (at) pglaf.org
Copyright inquiries. Project Gutenberg copyright inquiries. But see [cand.pglaf.org](http://cand.pglaf.org) before reporting potential misuse of copyrighted materials. For licensing questions, permissions and other such inquiries, the answer is probably in our [Permission How-To](). Please don't send email without first checking the How-To. Responses are typically sent within two days.
5. gbnewby (at) pglaf.org
Contact the CEO of the Project Gutenberg Literary Archive Foundation, Dr. Gregory Newby. If you don't get a response within a few days, please first check your spam filters & similar for a response. Resend your message, if no response is received within a few days.
## Postal Mail
If you need to send printed mail, please consider instead scanning and emailing to the appropriate address above. But if you really need to send something physical, send to this address:
Project Gutenberg Literary Archive Foundation
809 North 1500 West
Salt Lake City, UT 84116
## Newsletter and Discussion Lists
For subscribing our mailing lists, visit our [Subscribe How-To] page. There is a monthly email newsletter, also some discussion lists (gutvol-d is the most active, for discussions among volunteers).
## Distributed Proofreaders
The [Distributed Proofreaders](https://www.pgdp.net/) site includes active forums, FAQs and other items of interest for eBook lovers, eBook creators and potential creators. Contact information is available at the site, and online forums are also used for discussions and inquiries.
## Find Project Gutenberg on social media
Facebook: [https://www.facebook.com/project.gutenberg](https://www.facebook.com/project.gutenberg)
Facebook news feed of new eBooks: [https://www.facebook.com/gutenberg.new](https://www.facebook.com/gutenberg.new)
Twitter [https://twitter.com/gutenberg\_org](https://twitter.com/gutenberg_org) @gutenberg\_org
Twitter news feed of new eBooks: [https://twitter.com/gutenberg\_new](https://twitter.com/gutenberg_new) @gutenberg\_new

View File

@ -1,9 +1,8 @@
---
layout: page
title: About - Project Gutenberg
layout: default
title: About | Project Gutenberg
permalink: /about/
---
{% include header.html %}
About Project Gutenberg
=======================
@ -43,4 +42,3 @@ See Also
- [About Fundraising](https://www.gutenberg.org/wiki/Category:Fundraising), with more about the Project Gutenberg Literary Archive Foundation
- [About Volunteering](https://www.gutenberg.org/wiki/Category:Volunteering), how you can help to create the next new Project Gutenberg eBook.
{% include footer.html %}

View File

@ -1,6 +1,6 @@
---
layout: page
title: Help and How-To
layout: default
title: Help and How-To | Project Gutenberg
permalink: /help/
---

155
site/help/mobile.md Normal file
View File

@ -0,0 +1,155 @@
---
layout: default
title: Free eBooks - Project Gutenberg
permalink: /help/mobile.html
---
# MobileReader Devices How-To
From Project Gutenberg, the first producer of free ebooks.
## Project Gutenberg is not just for your desktop or notebook computer!
The Nook, Kindle, Sony EReader, iPad and other eBook readers can display Project
Gutenberg eBooks (we are not going to try to list them all here, but every such
device we are aware of has the ability to display one or more of Project
Gutenberg\'s typical file formats). Most recent mobile phones can also display them. Many MP3
players, gaming systems, and other devices can display eBooks, too. The
Project Gutenberg site offers download formats suitable for eBook
readers, mobile phones, and other devices.
There are several different ways of obtaining and viewing the titles,
and most people will be able to choose whichever suits them best.
Before getting started, check with your device's documentation to
determine which formats you can display. This page lists the formats
that Project Gutenberg offers:
[Help on Bibliographic Record Page](/)
Here are some of the ways we know of to get Project Gutenberg eBooks
to your eBook reader or mobile phone:
1. Try the [Project Gutenberg Mobile Site](/). This site is optimized for smaller screens.
2. Download eBooks directly to your device over the Internet. If your device is Internet-enabled, just visit the catalog page for a book, and download one of the formats your device can display. Here is a sample catalog page: [www.gutenberg.org/ebooks/11](//www.gutenberg.org/ebooks/11). Use the author/title search boxes on every page at www.gutenberg.org to find eBooks you are interested in.
3. Use a third party site (including some for-fee sites), which facilitate getting files onto your device. Try [Project Gutenberg's partners and affiliates](/wiki/Gutenberg:Partners,_Affiliates_and_Resources) Here is the magic catalog for Project Gutenberg titles, created in MOBI and EPUB versions (MOBI is suitable for the Kindle): [http://www.freekindlebooks.org/MagicCatalog/magic/ebooks/index.html](http://www.freekindlebooks.org/MagicCatalog/magic/ebooks/index.html)
4. Other methods, as supported by your device. For example, the Kindle supports an email method to transform and receive files.
## Search For Guidance
Many articles have been written on different approaches to getting Project Gutenberg content onto different devices. Use your favorite search site to look for guidance. These include articles on specific devices, as well on how convert Gutenberg files to other formats.[This article](http://www.makeuseof.com/tag/3-good-online-sources-free-ebooks-free-app-read/) at makeuseof.com describes conversion for Project Gutenberg content.
## General Advice
There are a few different challenges that many people face. Here are some of the ones we hear about most often. Keep in mind that there are many different types of computers, and they can be set up differently and have different software. So, your specific experience might be a little different than someone else's. This also means that step-by-step instructions might need some variation for your own situation.
1. How to save an eBook's file to transfer to your device. If you are using your computer to look at an eBook, you can save the eBook's file(s) to your computer so that you can copy it to your device. Try the "save as..." ... "HTML Complete" option in your Web browser to save the file(s) to a folder you choose, so that you can later transfer the files to your device. If you want to get a particular file format (such as the EPUB or MOBI format), from the Project Gutenberg download page you can right-click to get a pop-up menu, then "save as..." (or a similar option). If you don't have a right mouse button (on some Macs), use control-click to get the pop-up menu.
For HTML, make sure you save the complete page. Some Web browsers just download the HTML (the text), and link back to the images at the www.gutenberg.org site. This won't work, since viewing the book will require you to be online, and link "inline" to those images. Project Gutenberg wants you to have the WHOLE eBook - download the complete HTML with images. All Web browsers offer this as a menu option, but it might not be the default choice.
1. Where is the file? If you just left-click a file to download, you might get a dialog box or something similar, asking whether you want to save the file. But where did it go? It seems there are many different places your computer might save the file, and they can be hard to find later. Use the "save as..." method mentioned above to choose a specific location. Also, keep in mind that the Project Gutenberg files might have names that don't related to the book's title (we use a numeric file naming scheme based on the eBook number). You can rename the files to anything you'd like, but you will first need to know where they are saved.
2. How to get the file to my device? This varies quite a bit, but the first step is to find where you saved the file (sometimes you can save directly to your device, if it is connected). One common variation is to connect your device to your computer, often with a USB cable. Then, just drag and drop (or use another method for copying files) to put the file on your device. Another common variation is to use a separate program that manages your device's content, and to open the file and transfer it from within that program (iTunes is a common example of this).
3. Hey, it doesn't look right! Project Gutenberg relies on several automated steps to create EPUB, MOBI, and some other specialized eBook reader formats. For a variety of reasons, this automation sometimes yields files that don't look right on every device, particularly those with small screens. One common problem is to have lots of white space at the top of an eBook, or very wide margins. Also, it might be that images (from the HTML version of the book) are not included in the automatically-generated version. If you got the right file, but it doesn't look right, it's probably not something you can fix. Try another file format, especially HTML or plain text. HTML and plain text can be viewed by many of the specialized eBook reader devices and mobile phones.
## Kindle
### General Kindle Help
Visit the Amazon help pages for your specific Kindle model. The help pages for the devices we looked all have a page describing how to transfer files from your computer to your Kindle, which is sometimes called "sideloading." Those are the types of instructions that should be helpful: save to your computer, and then copy to your device. Here is [Amazon's device help page] (http://www.amazon.com/gp/help/customer/display.html?nodeId=200127470)
Beware that Amazon sells for money many titles in print and digital format that you can get free from Project Gutenberg. In addition, we have found that Amazon outsources many of their own digital imprints, and sometimes their non-free titles violate the Project Gutenberg trademark. **Project Gutenberg has never received any trademark royalty payments from Amazon or Amazon resellers or imprints**. For older (pre-1923) content, there is a good chance that Project Gutenberg has it free of charge, but Amazon will charge money for it. Of course there might be advantages to the non-free version (such as better formatting). Be aware, and make an informed choice.
### Blocked Users
Since 2014, Amazon Kindle users have reported being detected as "robots" by the software running www.gutenberg.org. On investigation, it was determined that Amazon has been using computer addresses within its cloud services to aggregate requests from Kindle users. The net result is that to www.gutenberg.org there are very large numbers of requests from single network addresses. This causes www.gutenberg.org to trigger a temporary ban of that address, since it seems to be an automated robot, rather than a human user.
The exact conditions under which this aggregation takes place are not clear. We do not have a workaround to disable this outcome. If your device is blocked, the block will expire automatically though it may appear again depending on Amazon's routing of queries to www.gutenberg.org. A good workaround is to instead use your computer to access www.gutenberg.org, and transfer items to your Kindle as described herein.
### Kindle Fire Review from 2012
In 2012, the Project Gutenberg Webmaster wrote a [Kindle Fire review.](/wiki/Gutenberg:Kindle_Fire_Review) Summary: If you fancy free eBooks, don't buy a Kindle Fire. The review suggests readers consider a Nexus 7 instead. Note that the products from Amazon and other suppliers have evolved, since this review was written.
### Alternate Apps and Formats
For the Kindle Fire, and potentially other Kindle devices, you can install alternate eBook reader software. Advice we have received (might need adjustment for your specific device, or if some versions of software are updated from when these instructions were written): **install a third party EPUB reader** and start downloading the EPUB files instead of the Kindle files from this site. One good and free EPUB reader is [FBReader](http://www.fbreader.org/FBReaderJ). Download the *Android .2\* * package for the Kindle Fire and the *Android 4.\* * package for the Kindle Fire HD. You may want to read up on installing third party apps on the Kindle Fire. Advantages of EPUB files over Kindle files include: that they are much smaller than Kindle files and that they work on the Apple iPad too.
### Kindle 3
The Amazon "Kindle 3" device seem to work well with Project Gutenberg titles; the Kindle DX also. Amazon used to have instructions available for downloading Project Gutenberg titles, but this seems to be gone now. They do have some free content, and an app, in their [Amazon.com: Free Book Collections](http://www.amazon.com/b?ie=UTF8&amp;node=2245146011).For MS-Windows users, there is a video describing the process at [Youtube](http://www.youtube.com/watch?v=vV_fsV3Gbao&amp;feature=youtu.be), via [a blog on the power of small instructional vidoes](http://www.toolsandtaxonomy.com/2011/08/23/creating-short-videos-that-support-learning/).
- Kindle devices favor the "MOBI" format, which is usually labeled "Kindle" on the Project Gutenberg download pages
- As described above, you can first download to your computer, then connect your Kindle and copy files to it. This works with MOBI and plain text. The HTML and EPUB files we copied were not viewable on the Kindle. Audio books in MP3 format will play through the Kindle's music player, but the player is limited and does not let you see and select from available audio books.
- Project Gutenberg thanks Amazon for providing Kindle 3's and Kindle DX's for our evaluation in 2010.
### Amazon's New File Format
In 2015, Amazon started using the "kfx" file format for new Kindle readers. Project Gutenberg provides the MOBI format, which our download page calls "kindle" format. There are no immediate plans for Project Gutenberg to offer kfx format, but this may change in the future. Meanwhile, it appears that newer Kindle models can still utilize the other formats (MOBI, HTML and even plain text). There are many articles about how to convert files to the kfx format.[is one at The Digital Reader.com](http://the-digital-reader.com/2016/03/28/how-to-use-calibre-to-convert-ebooks-to-kfx-format-for-the-enhanced-kindle-typesetting/%7CHere)
## Nook
The Barnes &amp; Noble "Nook" devices seem to work well with Project Gutenberg titles, including the different versions (Color etc.). Note that to connect, your Nook needs to be awake (use the on-screen slider to do this, you'll get a message that it is connected to your computer). Other points for the Nook:
- You can use the built-in Web browser to look at Project Gutenberg eBooks in text and HTML format, but it will not display EPUB or the other common Project Gutenberg download formats
- Instead, use your computer's Web browser to find and download EPUB or other formats. Use the techniques described elsewhere on this page. There does not seem to be a way to download those formats to your Nook without going through your computer or the online Nook store.
Beware that there are many Barnes &amp; Noble titles in print and eBooks that are not free from them, but are free from Project Gutenberg. B&amp;N often adds a "Copyright" statement to such old books (for example, Pride and Prejudice, which actually was included with the Nook we tried), but only things like the cover and introduction are copyrighted, the main text is not. For older (pre-1923) content, there is a good chance that Project Gutenberg has it for free, but B&amp;N will charge money for it. Of course there might be advantages to the non-free version (such as better formatting). Be aware, and make an informed choice.
## Kobo Reader
Kobo has had positive reviews, and is less restrictive about where it gets content than devices from B&amp;N and Amazon.
The \[Kobo| http://www.kobo.com/ [http://www.kobo.com/](http://www.kobo.com/)\] reader online store includes free access to 100 of the most popular Project Gutenberg titles. You need to go through the registration process to get access to the store. Direct transfer of downloaded eBooks from a computer to the Kobo did not immediately work for us, but is supposed to be supported. The Kobo supports PDF and ePub formats. Project Gutenberg would like to thank Kobo for providing free evaluation readers in 2010.
## Android
The Android operating system is found on many phones and tablets. The specific features and applications varies, and there are often customizations to Android that change functionality. For the most part, however, Android devices include Web browsers that can be used to read Project Gutenberg's text and HTML eBooks. For other file types, you can try copying from your computer to the device as described above. Or, try the application described below.
### Free FB Reader
1. Use the Android browser to navigate to [http://m.gutenberg.org](http://m.gutenberg.org)
2. Search for the book you want.
3. Select one of the EPUB files.
4. In the "Complete action using" dialog select: FBReader.
The book will start downloading in the background. After the download completes you can open the book from the Android notifications screen or the FBReader library screen.
## iPad, iPhone and iPod Touch
The fastest way to get Project Gutenberg ebooks onto your iOS device is to use the built-in browser
to navigate to [http://m.gutenberg.org](http://m.gutenberg.org)
Download the EPUB format and then "open in" the preferred application.
The Apple iBookstore also contains some Project Gutenberg ebooks. Note that sometimes Apple's copy might not be the most recent copy from the Project Gutenberg site, since we often update our automated conversion procedures. If you live outside the U.S. you won't be able to access the iBookstore via the iBooks app.
You can also get Project Gutenberg's eBook files onto the iPad using iTunes. This works for EPUB files, and it also works well for Project Gutenberg's MP3 audio eBooks.
Project Gutenberg would like to thank Apple for providing devices for evaluation in 2009 and 2010.
Here are apps we know of that will work outside of the U.S., as well as within the U.S. Other apps we have heard about include **Goodreads** and **WattPad**.
### Free: Lexcycle Stanza
**Lexcycle Stanza** is a free-as-in-beer ebook reader for iPad, iPhone and iPod Touch.
1. Download the Stanza app from the Apple App Store. Use the link on the right for the US store.
2. Open the Stanza App.
3. Tap on "Get Books" and "Catalog".
4. From the list select "Project Gutenberg".
### Free: Himalaya
**Himalaya Reader** is a free ebook reader for iPad, iPhone and iPod Touch.
1. Download Himalaya reader from the iTunes store: [http://itunes.apple.com/us/app/himalaya-reader/id492689212](http://itunes.apple.com/us/app/himalaya-reader/id492689212)
2. Follow instructions within the app, or on the Web site:[http://www.himalaya-soft.com/](http://www.himalaya-soft.com/)
### Paid: Eucalyptus
[Eucalyptus](http://eucalyptusapp.com/) is a paid ebook reader for iPad, iPhone and iPod Touch. It provides over 20,000 Project Gutenberg titles, converted from text. *The Eucalyptus developers pay a proportion of their gross proceeds to Project Gutenberg as royalties.*
### Paid: MegaReader
**MegaReader** is a paid ebook reader for iPad, iPhone and iPod Touch.
1. Download QuickReader from the Apple App Store. Use the link on the right for the US store.
2. Open QuickReader and select "Normal Reading" or "Speed Reading".
3. Select "Download Books".
4. From the list select "Project Gutenberg".
## Suggestions from Project Gutenberg Founder Michael Hart
Michael Hart was a proponent of eBooks on mobile devices. He offered these ideas in February 2010. This guidance might not be directly applicable to all of today's portable devices. Michael Hart wanted to encourage you to try the [QiOO Mobile format](/wiki/Gutenberg:Help_on_Bibliographic_Record_Page#QiOO_Mobile) for mobile phones.
I'm writing this because 90% of the questions we receive
at help@ pglaf.org are about buying dedicated eReaders at
prices from $200 to over $1,000.
Before actually plunking down that much money, I suggest trying reading Project Gutenberg and other eBooks on the
laptops, notebooks, netbooks, cellphones or PDAs already in your collection of devices. I have known many people
who have read very lengthy works on their cellphone, PDA or whatever while standing in lines over a period of one or two weeks and are have thus doubled their book number per year without taking any extra time.
If you adjust the font, color, size, etc., you should be able to find a decent reading experience for yourself.
WARNING: DO NOT BUY A CELLPHONE WITHOUT WIFI, they will just jack up your bill but wifi costs little or nothing.
If you insist on getting a dedicated ereader, I'm afraid we don't ever get into recommending specific products on Project Gutenberg, even those we like the best/use most.
However, we do sometimes post reviews.
In my own experiences in electronics over some 55 years, it has been obvious that the greatest value lies in some products that include multiple functions, such as what a hifi person would call a "receiver" which includes amps, preamps, equalizers, tuners and various other functions. Each amp, preamp, equalizer and tuner could be had quite readily as a separate box with a separate power supply-- complete with it's own transformer, AC cord, box, panels and and decorations, knobs, lights, etc.
Believe it or not, if you look at the inventory of parts of any of these items it is the pretty front panel costs the most, then the knobs, then the ugly box with the big clunky power supply that converts the AC to DC, etc.
I apologize, but I can't remember all the details, but I was totally astounded at finding out that was quite true in whole general hifi world. . .the actual parts that in
reality created the "value" cost the least.
As a result, the first computer I ever bought was like a hifi receiver in respects, as it had everything in a big chassis that held the monitor, drives, printer, cards in one with the keyboard above the motherboard. It did not take as much space, it did not require as many cables or other interfaces, it took only one AC socket, and, every single part was completely adjusted to the system.
I have built computers totally from parts many time, and done the same with many other electronics and I've never been a fan of having all the separate boxes. However, I must admit that the very best, if you are going to spend as much on each box as I was spending on entire systems, are available only in separate boxes. . .but one connect that doesn't work right can ruin the whole thing.

View File

@ -1,261 +1,77 @@
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta charset="UTF-8"/>
<title>Project Gutenberg</title>
<link rel="stylesheet" href="/gutenberg/style.css?v=1.1">
<link rel="stylesheet" href="/gutenberg/nav.css?v=1.1">
<meta name="viewport" content="width=device-width, initial-scale=1">
---
layout: default
title: Free eBooks - Project Gutenberg
permalink: /
---
Latest Books
============
{% include latestbooks.html %}
<meta name="keywords" content="books, ebooks, free, kindle, android, iphone, ipad"/>
<meta name="google-site-verification" content="wucOEvSnj5kP3Ts_36OfP64laakK-1mVTg-ptrGC9io"/>
<meta name="alexaVerifyID" content="4WNaCljsE-A82vP_ih2H_UqXZvM"/>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html"/>
<link rel="shortcut icon" href="/gutenberg/fav1/favicon.ico?v=1.1"/>
Welcome
=======
<meta property="og:title" content="Project Gutenberg" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://www.gutenberg.org/" />
<meta property="og:description" content="Project Gutenberg offers free ebooks to download." />
<meta property="fb:admins" content="615269807" />
<meta property="fb:app_id" content="115319388529183" />
<meta property="og:site_name" content="Project Gutenberg" />
<meta property="og:image" content="http://www.gutenberg.org/pics/logo-144x144.png" />
</head>
<body>
<div class="container">
<nav role="navigation">
<a href="/index.html" class="no-hover">
<img class="logo" src="/gutenberg/new-pg-logo.png" alt="Project Gutenberg" draggable="false">
</a>
<label for="show-menu" class="show-menu"><img src="/gutenberg/menu-icon.png" class="menu"></label>
<input type="checkbox" id="show-menu" role="button">
<!--<a href="#" class="show-menu"></a>-->
<ul id="menu">
<!--<li><a href="/ebooks/index.php">Find a Book</a></li>-->
<li><a href="/ebooks/">Find a Book</a></li>
<li><a href="#">How to Help</a></li>
<li><a href="#">Help</a>
<ul class="hidden">
<li><a href="/help/mobile.html">Mobile How-To</a></li>
<li><a href="#">Sub-2</a></li>
<li><a href="#">Sub-3</a></li>
</ul>
</li>
<li><a href="#">About</a>
<ul class="hidden">
<li><a href="/about/history.html">About Us</a></li>
<li><a href="/policy/privacy_policy.html">Privacy Policy</a></li>
<li><a href="/about/contact_information.html">Contact Us</a></li>
</ul>
</li>
<li><a href="/donate/donate.html">Donate</a></li>
</ul>
<form method="get" action="/ebooks/search/"
accept-charset="utf-8" enctype="multipart/form-data" class="searchbox">
<input type="text" value="" id="menu-book-search" name="query" class="searchInput" title="" alt="undefined string" tabindex="20" size="20" maxlength="80"
placeholder="Search for Books"/>
<input type="submit" name="submit_search" value="Search" style="vertical-align:middle;">
</form>
<div class="donate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="new">
<p>Project Gutenberg appreciates your donation! Learn <a href="/donate/donate.html">Why Donate?</a> Click here to:</p>
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input class="donbtn" type="image" src="/gutenberg/en_US.gif"
name="submit" alt="PayPal-The safer, easier way to pay online!" />
</form>
</div>
</nav>
**From Project Gutenberg, the first producer of free ebooks.** Project Gutenberg offers over 60,000 free eBooks. Choose among free epub books, free kindle books, download them or read them online. You will find the world\'s great literature here, with focus on older works for which copyright has expired. Thousands of volunteers digitized and diligently proofread the eBooks, for enjoyment and education. No fee or registration is required. If you find Project Gutenberg useful, please consider a small donation, to help Project Gutenberg digitize more books, maintain our online presence, and improve Project Gutenberg programs and offerings. Other ways to help include digitizing more books, recording audio books, or reporting errors.
<!-- start content -->
<div class="page_content">
<!-- Latest Books -->
<h1>Latest Books [<a href="/ebooks/">Find More</a>]</h1>
<div class="library">
<div class="lib latest no-select">
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hovhttps://github.com/gbnewby/gutenberg-landing-pages.giter">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
<a href="book.html" class="no-hover">
<div class="cover-container">
<img src="/gutenberg/book-cover.png" alt="Book Title" title="Book Title" draggable="false">
</div>
<h3>Book Title</h3>
<p class="desc">Author Name</p>
</a>
</div>
</div>
<!-- ending latest books -->
<h1>Welcome</h1>
<figure>
<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACEAQAAAAB5P74KAAAA6ElEQVR4nO2WsW1EMQxDnw7pqQ1u/7H+BtQETHFVkkuQs8pElUGAxLMgGa7wsebG5/rjSlU13XRV9SJHCc1VVnLM8waUMC0orXKA0rh/7/o2xxq94HquxPR0QXycU6HgwTIgH84zSZKYWI/TgkeDaQM63S+SyJGIHB/zkMhBMhbWIichimQrxzk3oNJXz3CnXnB94UGOEhGf9+cGGtpTlwt6wSMrIQF2/WEKT4PaC54kUWQFbeYHkGRJsLmXEswdjL3pM5KEYccDMLYsveh6okw3l3fvc2hINaQXPFOF6ITFftX/P+FH5R1ArJlJlKrAdgAAAABJRU5ErkJggg==' style='width: 100px; height: 100px;' alt='QR Code'/>
<figcaption><a href='http://m.gutenberg.org/'>Project Gutenberg Mobile Site</a></figcaption>
</figure>
<p>From Project Gutenberg,the first producer of free ebooks.</p>
<b>Project Gutenberg</b> offers over 57,000 free eBooks. Choose among free epub books, free kindle books, download them or read them online. You will find the world's great literature here, with focus on older works for which copyright has expired. Thousands of volunteers digitized and diligently proofread the eBooks, for enjoyment and education.
No fee or registration is required. If you find Project Gutenberg useful, please consider a small <a href="/donate/donate.html" title="Gutenberg:Project Gutenberg Needs Your Donation">donation</a>, to help Project Gutenberg digitize more books, maintain our online presence, and improve Project Gutenberg programs and offerings. Other ways to help include <a rel="nofollow" class="external text" href="https://www.pgdp.net">digitizing more books</a>, <a rel="nofollow" class="external text" href="https://librivox.org">recording audio books</a>, or <a href="/wiki/Gutenberg:Contact_Information#Electronic_Mail" title="Gutenberg:Contact Information">reporting errors</a>.
<h1>News</h1>
<h2>No Fees, and No Custom Apps Required</h2>
<p>Project Gutenberg never charges a fee, for anything. Everything from Project Gutenberg is gratis, libre, and completely without cost to readers. Free to read and free to redistribute. Project Gutenberg eBooks require no special apps to read, just the regular Web browsers or eBook readers that are included with computers and mobile devices. There have been reports of sites that charge fees for custom apps, or for the same eBooks that are freely available from Project Gutenberg. Some of the apps might have worthwhile features, but none are required to enjoy Project Gutenberg eBooks.
</p>
<h2>The Public Domain will grow again in 2019</h2>
<p>In the US, annual copyright term expiry is set to begin again in 2019, after a 20-year hiatus due to the Copyright Term Extension Act of 1998. On January 1, 2019, items published in 1923 will enter the public domain in the US. In the early days of Project Gutenberg, growth of the public domain on January 1 was an annual event. See Duke Law's "<a rel="nofollow" class="external text" href="https://law.duke.edu/cspd/publicdomainday">Public Domain Day</a>"for a listing of many items that were scheduled to enter the public domain, but have yet to do so because of the 1998 extension. Some notable items scheduled to enter the public domain in 2019 include Felix Salten's "Bambi" and Kahlil Gibran's "The Prophet."
</p>
<h1>Site Map</h1>
<h2>Find eBooks</h2>
<ul>
<li> <a href="/ebooks" title="pg:ebooks/">Book Search</a></li>
<li> <a href="/ebooks/search/?sort_order=release_date" title="pg:ebooks/search/?sort order=release date">Recently added eBooks</a></li>
<li> <a href="/ebooks/search/?sort_order=downloads" title="pg:ebooks/search/?sort order=downloads">Most Frequently Downloaded eBooks</a> and <a href="/browse/scores/top" class="extiw" title="pg:browse/scores/top">Top 100 eBooks this month</a></li>
<li> <a href="/wiki/Category:Bookshelf" title="Category:Bookshelf">Bookshelves of related eBooks</a></li>
<li> <a href="/wiki/Gutenberg:Feeds" title="Gutenberg:Feeds">New Books Feeds</a></li>
<li> <a href="//www.gutenberg.org/catalog/" title="pg:catalog/">Browse Catalog</a>: Browse and search, including full-text search.</li>
<li> <a href="/wiki/Gutenberg:Offline_Catalogs" title="Gutenberg:Offline Catalogs">Offline Catalogs</a>: handy book Listings to consult offline.</li>
<li> Visit <a rel="nofollow" href="http://self.gutenberg.org">self.gutenberg.org</a>, for free eBooks by contemporary authors.</li>
</ul>
<h2>Help and Information</h2>
<ul>
<li> <a href="/help/mobile.html" title="Gutenberg:MobileReader Devices How-To">Mobile Reader Devices How-To</a>: Using Kindle, Nook, cell phone, and other mobile devices and readers.</li>
<li> <a href="/how_to/index.html" title="Category:How-To">How-To and FAQs</a>: In depth information about many topics.</li>
</ul>
<h2>How to Help</h2>
<ul>
<li> <a href="/about/contact_information.html" title="Gutenberg:Contact Information">Report errors, bugs, typos</a> (or, see <a href="/wiki/Gutenberg:Readers%27_FAQ#R.26._I.27ve_found_some_obvious_typos_in_a_Project_Gutenberg_text._How_should_I_report_them.3F" title="Gutenberg:Readers' FAQ">detailed information about errata reporting</a>)</li>
<li> <a href="/wiki/Category:Volunteering" title="Category:Volunteering">Volunteering</a></li>
<li> <a rel="nofollow" class="external text" href="http://www.pgdp.net">Distributed Proofreaders</a>. Getting started is easy, and just a page a day will help!</li>
<li> <a rel="nofollow" class="external text" href="https://librivox.org">LibriVox</a>: Help record audio books.</li>
<li> <a href="/wiki/Gutenberg:Promote_Project_Gutenberg" title="Gutenberg:Promote Project Gutenberg">Help to promote Project Gutenberg</a></li>
</ul>
<h2>Special areas</h2>
<ul>
<li> <a href="/about/index.html" title="Gutenberg:About">About Us</a>: About Project Gutenberg</li>
<li> <a href="/information/no_cost_or_freedom.html" title="Gutenberg:No Cost or Freedom?">No Cost or Freedom?</a> What does 'free eBook' mean?</li>
<li> <a href="/help/permission.html" title="Gutenberg:Permission How-To">Permissions, licensing and trademark information</a></li>
<li> <a href="/information/linking_pages.html" title="Gutenberg:Information About Linking to our Pages">Linking Readme</a>: Linking to Project Gutenberg</li>
<li> <a href="/information/robot_access.html" title="Gutenberg:Information About Robot Access to our Pages">Robot Readme</a>: Downloading many items at once</li>
<li> <a href="/donate/donate.html" title="Gutenberg:Project Gutenberg Needs Your Donation">Donate</a>: Donating to Project Gutenberg</li>
<li> <a rel="nofollow" class="external text" href="http://www.gutenbergnews.org">News and Newsletters</a>: (External) News and information about Project Gutenberg</li>
<li> <a href="/information/partners_affiliates_resources.html" title="Gutenberg:Partners, Affiliates and Resources">Partners, Affiliates and Resources</a></li>
</ul>
<h1>Terms of Use</h1>
<div class="box_shadow">
<p>
<b>Our eBooks may be <a href="/information/no_cost_or_freedom.html" title="Gutenberg:No Cost or Freedom?">freely used</a> in the United States</b> because most are not protected by U.S. copyright law, usually because their copyrights have expired. They may not be free of copyright in other countries. Readers outside of the United States must check the copyright terms of their countries before downloading or redistributing our eBooks. We also have a number of copyrighted titles, for which the copyright holder has given permission for unlimited non-commercial worldwide use.
</p>
</div>
<div class="box_shadow">
<p>
<b>The Project Gutenberg website is for human users only.</b> Any real or perceived use of automated tools to access our site will result in a block of your IP address. This site utilizes cookies, captchas and related technologies to help assure the site is maximally available for human users only.
</p>
</div>
<p>
For more details see our <a href="/policy/terms_of_use" title="Gutenberg:Terms of Use">Terms of Use</a> page.
</p>
<h1>Contact Info</h1>
<ul>
<li> <a href="/about/contact_information.html" title="Gutenberg:Contact Information">Contact Information</a>: How to get in touch.</li>
<li> <a href="/wiki/Gutenberg:Subscribe_How-To" title="Gutenberg:Subscribe How-To">Mailing lists</a>: Join our email lists.</li>
</ul>
</div><!--content ending-->
<div class="footer">
<ul>
<li>
<a href="/policy/privacy_policy.html" title="Gutenberg:Privacy policy">Privacy policy</a>
</li>
<li>
<a href="/about/index.html" title="Gutenberg:About">About Gutenberg</a>
</li>
<li>
<a href="/policy/terms_of_use.html">Terms of Use</a>
</li>
<li>
<a href="/about/contact_information.html">Contact Information</a>
</li>
</ul>
<a href="https://www.ibiblio.org/index.html" title="Project Gutenberg is hosted by ibiblio">
<img src="/gutenberg/ibiblio-logo.png" alt="HTML tutorial">
</a>
</div> <!-- footer ending-->
</div> <!-- container ending -->
News
====
**No Fees, and No Custom Apps Required** Project Gutenberg never charges a fee, for anything. Everything from Project Gutenberg is gratis, libre, and completely without cost to readers. Free to read and free to redistribute. Project Gutenberg eBooks require no special apps to read, just the regular Web browsers or eBook readers that are included with computers and mobile devices. There have been reports of sites that charge fees for custom apps, or for the same eBooks that are freely available from Project Gutenberg. Some of the apps might have worthwhile features, but none are required to enjoy Project Gutenberg eBooks.
</body>
</html>
Find Free eBooks
================
- [Book Search](/ebooks).
- [Recently added eBooks](/ebooks/search?sort_order=release_date).
- [Most Frequently Downloaded eBooks](/ebooks/search/?sort_order=downloads) and [Top 100 eBooks this month](/browse/scores/top).
- [Bookshelves of related eBooks](:Category:Bookshelf).
- [New eBooks Feeds](Gutenberg:Feeds).
- [Browse Catalog](pg:catalog/): Browse and search, including full-text search.
- [Offline Catalogs](Gutenberg:Offline Catalogs): handy eBook Listings to consult offline.
- Visit [self.gutenberg.org](http://self.gutenberg.org), for free eBooks by contemporary authors.
Help and Information
====================
- [Mobile Reader Devices How-To](Gutenberg:MobileReader_Devices_How-To): Using Kindle, Nook, cell phone, and other mobile devices and readers.
- [How-To and FAQs](Category:How-To): In depth information about many topics.
How to Help
===========
- Join [Distributed Proofreaders](https://www.pgdp.net), the main source of new Project Gutenberg eBooks. Getting started is easy, and just a page a day will help!
- [Report errors, bugs, typos](Gutenberg:Contact_Information), or, see [detailed information about errata reporting](Gutenberg:Readers%27_FAQ#R.26._I.27ve_found_some_obvious_typos_in_a_Project_Gutenberg_text._How_should_I_report_them.3F)
- [LibriVox](https://librivox.org). Help record audio books.
- [Help to promote Project Gutenberg](Gutenberg:Promote Project Gutenberg).
Special Areas
=============
- [About Project Gutenberg](about/).
- What does [free eBook](No Cost or Freedom?) mean?
- [Permissions, copyright, licensing, and trademark information](Gutenberg:Permission How-To).
- [Linking to Project Gutenberg]([Gutenberg:Gutenberg:Information_About_Linking_to_our_Pages) and [roboting or crawling](Gutenberg:Information_About_Robot_Access_to_our_Pages) the site.
- [Donating to Project Gutenberg](donate/).
- [Partners, Affiliates and Resources](Partners, Affiliates and Resources).
Terms of Use
============
> Our eBooks may be freely used in the United States because most are not protected by U.S. copyright law, usually because their copyrights have expired. They may not be free of copyright in other countries. Readers outside of the United States must check the copyright terms of their countries before downloading or redistributing our eBooks. We also have a number of copyrighted titles, for which the copyright holder has given permission for unlimited non-commercial worldwide use.
> The Project Gutenberg website is for human users only. Any real or perceived use of automated tools to access our site will result in a block of your IP address. This site utilizes cookies, captchas and related technologies to help assure the site is maximally available for human users only.
Contact Info
============
- [Contact Information](https://www.gutenberg.org/wiki/Gutenberg:Contact_Information): How to get in touch.
- [Mailing lists](https://www.gutenberg.org/wiki/Gutenberg:Subscribe_How-To): Join our email lists.

View File

@ -0,0 +1,21 @@
---
layout: default
title: Free Ebooks - Project Gutenberg
permalink: /policy/privacy_policy
---
# Privacy Policy
From Project Gutenberg, the first producer of free ebooks.
If you read the Gutenberg web site, no more information is collected than is typically collected in server logs by web sites in general.
Specifically, all usage of www.gutenberg.org or any domain in PGLAF.org is intended to be anonymous. Your name, or any other identifying information, is never requested. However, your IP address and requests from that address are saved by our servers, for periodic analysis of Web site traffic, quality assurance, and aggregate reporting. Note that Project Gutenberg does not control any mirrors except those at www.gutenberg.org and any domain in PGLAF.org, and those mirrors might have different procedures.
## Uses of Cookies and Captchas
In order to assure the site is available for human users, not robots or third-party sites, this site uses cookies, captchas, and related techniques to apply our [Terms of Use](/jekyll/policy/terms_of_use.html). See the Terms of Use for alternate means to acquire Project Gutenberg content and metadata (i.e., mirrors, offline catalogs, and OPDS) if you cannot abide by these techniques.
## Wiki Authors
If you contribute to the **Project Gutenberg Wiki**, you are publishing every word you post publicly. If you write something, assume that it will be retained forever. This includes articles, user pages and talk pages.
## Linkes to Third Party Websites
This includes Google, Facebook, Twitter, Dropbox and maybe more. Project Gutenberg does link to third party sites wherever users have come to expect this. Many of those sites are notorious wholesale collectors of private data, and it has been reported that such data are freely shared with national spy organizations and others. However, we are very careful to link in a manner that does not allow those third party websites to see what you are doing on Project Gutenberg unless you explicitly click on one of those links. If you click on a third party link, you will leave the Project Gutenberg website, and we cannot tell you what the other site will do with your data.

View File

@ -0,0 +1,47 @@
---
layout: default
title: Free ebooks - Project Gutenberg
permalink: /policy/terms_of_use.html
---
# Terms of Use
From Project Gutenberg, the first producer of free ebooks.
Terms of use for the Project Gutenberg website as of January 1, 2014 (updated April 17, 2016). Applies to all sites in the gutenberg.org domain.
## Audience
**This website is intended for human users only.** Any perceived use of automated tools to access this website will result in a temporary or permanent block of your IP address.
- If you want to **download many books<sup>[\[1\]](#footnotes)</sup>** manually or using an automated download software, download them from one of our mirrors, not from the main site. See the [list of PG mirrors](//www.gutenberg.org/MIRRORS.ALL) and the [roboting guidelines](/wiki/Gutenberg:Information_About_Robot_Access_to_our_Pages").
- If you want a **list of all our books**, download and save the [Gutenberg index file](//www.gutenberg.org/dirs/GUTINDEX.ALL) It can be opened with any browser or word processor.
- If you want a **machine-readable database** of all our books, read the [Feeds page](/wiki/Gutenberg:Feeds) and the [Offline Catalogs] (/wiki/Gutenberg:Offline_Catalogs) page.
- If you are behind a proxy or VPN because you want anonymity or because of company or school policy, you may be blocked because other users of the same address are misbehaving. Try turning the proxy or VPN off.
- If you are using a commercial product that channels requests through a proxy (such as Amazon Kindle), your address may be blocked due to too much use from that shared proxy address. Instead, see our [Mobile Reader How-To](/wiki/Gutenberg:MobileReader_Devices_How-To) for guidance on how to download items to your own system, prior to transferring to the other device.
## License
What you are allowed to do with our books once you download them:
See: [the Project Gutenberg License](//www.gutenberg.org/license) and the [Permision How-To](/wiki/Gutenberg:Permission_How-To)
## Deep Linking
When linking to a Project Gutenberg item, link to the main landing page such as www.gutenberg.org/ebooks/11. Do not link to specific files or anchors, such as [http://www.gutenberg.org/files/11/11-h/11-h.htm](http://www.gutenberg.org/files/11/11-h/11-h.htm). Technical measures (i.e., cookies, captchas and similar) are utilized to ensure that links come from the landing page or elsewhere within www.gutenberg.org. If you need to link to a specific file or passage, please make your own copy of that file and host it on your own server.
This measure is a protection against possible renaming or reorganizing the back end file structure, which has happened several times over the years. We intend the landing page to be permanent.
## Embedding or Wrapping our Site or Contents
**Applies mainly to website owners.**
We do not allow large-scale deep-linking to eBook files hosted on our servers. We reserve the right to take legal and technical measures against this.
While the books we host are free, our server infrastructure and bandwidth is not. It is paid with money generously made available by our donors and partners. We will not tolerate mock Gutenberg front-ends that pocket advertising revenues
while leaving the cost of actually serving the files to us.
## OPDS Feed
**Applies to OPDS application developers.**
Every application that uses our OPDS feed must:
- Use a proper user-agent, like: *calibre/1.1.0 (+http://www.calibre.org)*. Always include a contact address like a web page or email, so we can reach you. Applications without contact address and application developers that do not respond to our inquiries will be blocked from using our OPDS feed.
- Make no more requests to our servers than a user with a browser typically would make (eg. for every search, request only one page of results, and automatically request the next page only if the users scrolls to the bottom of the previous page). If your application makes lots of requests, your users will be blocked at the IP level.
For high-volume OPDS applications consider downloading our [catalog database] (/wiki/Gutenberg:Feeds#The_Complete_Project_Gutenberg_Catalog) and hosting your own OPDS feed.
If you have special needs, [contact us](/wiki/Gutenberg:Contact_Information), don't try to `hack around´.
## Automated Blocks
Blocks to Internet addresses (IP addresses) are applied automatically based on the volume of traffic and related factors. Such blocks automatically expire after a few days.
## Footnotes
- [↑ Many books: i.e., more than ~100 per day](#audience)

View File

@ -1,10 +0,0 @@
---
layout: page
title: Terms of Use
permalink: /policy/terms_of_use.html
---
Terms of Use
============
Terms of use will go here.