Merge from trunk

This commit is contained in:
Sengian 2010-08-10 12:38:59 +02:00
parent 1f576fea11
commit 2eb2024931
10 changed files with 871 additions and 769 deletions

View File

@ -1,102 +1,104 @@
body { background-color: white; } body {
background-color: white;
}
p.title { p.title {
margin-top:0em; margin-top: 0em;
margin-bottom:1em; margin-bottom: 1em;
text-align:center; text-align: center;
font-style:italic; font-style: italic;
font-size:xx-large; font-size: xx-large;
border-bottom: solid black 4px; border-bottom: solid black 4px;
} }
p.author { p.author {
margin-top:0em; margin-top: 0em;
margin-bottom:0em; margin-bottom: 0em;
text-align: left; text-align: left;
text-indent: 1em; text-indent: 1em;
font-size:large; font-size: large;
} }
p.tags { p.tags {
margin-top:0em; margin-top: 0em;
margin-bottom:0em; margin-bottom: 0em;
text-align: left; text-align: left;
text-indent: 1em; text-indent: 1em;
font-size:small; font-size: small;
} }
p.description { p.description {
text-align:left; text-align: left;
font-style:normal; font-style: normal;
margin-top: 0em; margin-top: 0em;
} }
p.date_index { p.date_index {
font-size:x-large; font-size: x-large;
text-align:center; text-align: center;
font-weight:bold; font-weight: bold;
margin-top:1em; margin-top: 1em;
margin-bottom:0px; margin-bottom: 0px;
} }
p.letter_index { p.letter_index {
font-size:x-large; font-size: x-large;
text-align:center; text-align: center;
font-weight:bold; font-weight: bold;
margin-top:1em; margin-top: 1em;
margin-bottom:0px; margin-bottom: 0px;
} }
p.author_index { p.author_index {
font-size:large; font-size: large;
text-align:left; text-align: left;
margin-top:0px; margin-top: 0px;
margin-bottom:0px; margin-bottom: 0px;
text-indent: 0em; text-indent: 0em;
} }
p.series { p.series {
text-align: left; text-align: left;
margin-top:0px; margin-top: 0px;
margin-bottom:0px; margin-bottom: 0px;
margin-left:2em; margin-left: 2em;
text-indent:-2em; text-indent: -2em;
} }
p.read_book { p.read_book {
text-align:left; text-align: left;
margin-top:0px; margin-top: 0px;
margin-bottom:0px; margin-bottom: 0px;
margin-left:2em; margin-left: 2em;
text-indent:-2em; text-indent: -2em;
} }
p.unread_book { p.unread_book {
text-align:left; text-align: left;
margin-top:0px; margin-top: 0px;
margin-bottom:0px; margin-bottom: 0px;
margin-left:2em; margin-left: 2em;
text-indent:-2em; text-indent: -2em;
} }
p.date_read { p.date_read {
text-align:left; text-align: left;
margin-top:0px; margin-top: 0px;
margin-bottom:0px; margin-bottom: 0px;
margin-left:6em; margin-left: 6em;
text-indent:-6em; text-indent: -6em;
} }
hr.series_divider { hr.series_divider {
width:50%; width: 50%;
margin-left:1em; margin-left: 1em;
margin-top:0em; margin-top: 0em;
margin-bottom:0em; margin-bottom: 0em;
} }
hr.annotations_divider { hr.annotations_divider {
width:50%; width: 50%;
margin-left:1em; margin-left: 1em;
margin-top:0em; margin-top: 0em;
margin-bottom:0em; margin-bottom: 0em;
} }

View File

@ -1,142 +1,157 @@
body { body {
background-color: white; background-color: white;
} }
#banner { #banner {
position: absolute; position: absolute;
left: 5px; top: 0px; left: 5px;
top: 0px;
} }
/* /*
Search bar Search bar
*/ */
#search_box { #search_box {
width: 201px; width: 201px;
height: 31px; height: 31px;
background: url(bg_search_box.png); background: url(bg_search_box.png);
top: 5px; right: 20px; top: 5px;
position: absolute; right: 20px;
position: absolute;
} }
#search_box #s { #search_box #s {
float: left; float: left;
padding: 0; padding: 0;
margin: 6px 0 0 6px; margin: 6px 0 0 6px;
border-width: 0px; border-width: 0px;
font-size: 16px; font-size: 16px;
width: 159px; width: 159px;
background: transparent; background: transparent;
} }
#search_box #go { #search_box #go {
float: right; float: right;
margin: 3px 4px 0 0; margin: 3px 4px 0 0;
} }
/* /*
Count bar Count bar
*/ */
#count_bar { #count_bar {
position: absolute; position: absolute;
right: 30px; right: 30px;
top: 80px; top: 80px;
font-size:smaller; font-size: smaller;
padding-bottom: 5px; padding-bottom: 5px;
} }
#count_bar * img { #count_bar * img {
cursor: pointer; cursor: pointer;
} }
#count { cursor: default;} #count {
cursor: default;
}
/* /*
Styles for the book list Styles for the book list
*/ */
#main { #main {
width:95%; width: 95%;
overflow: auto; overflow: auto;
border: solid thin black; border: solid thin black;
position: absolute; position: absolute;
top: 115px; left: 10px; top: 115px;
z-index: 1; left: 10px;
z-index: 1;
} }
table#book_list thead tr td { table#book_list thead tr td {
width: 100%; width: 100%;
padding-right: 1em; padding-left: 1em; padding-right: 1em;
text-align: center; padding-left: 1em;
font-weight: bold; text-align: center;
font-size: 130%; font-weight: bold;
border-bottom: thick solid black; font-size: 130%;
border-top: thick solid black; border-bottom: thick solid black;
cursor: pointer; border-top: thick solid black;
font-family: serif; cursor: pointer;
padding-top: 0.5ex; padding-bottom: 0.5ex; font-family: serif;
padding-top: 0.5ex;
padding-bottom: 0.5ex;
} }
table#book_list tbody tr td { table#book_list tbody tr td {
padding-right: 1em; padding-left: 1em; padding-right: 1em;
/*border-bottom: thin solid black;*/ padding-left: 1em;
padding-bottom: 0.7ex; padding-top: 0.7ex; /*border-bottom: thin solid black;*/
margin: 0pt; padding-bottom: 0.7ex;
cursor: pointer; padding-top: 0.7ex;
margin: 0pt;
cursor: pointer;
} }
table#book_list * .sort_indicator { table#book_list * .sort_indicator {
visibility:hidden; visibility: hidden;
color: #9f9f9f; color: #9f9f9f;
} }
table#book_list * .rating { table#book_list * .rating {
color: #3fbbe4; color: #3fbbe4;
} }
table#book_list * span.subtitle { table#book_list * span.subtitle {
font-size: smaller; font-size: smaller;
} }
table#book_list * a.format { table#book_list * a.format {
text-decoration: none; text-decoration: none;
color: blue; color: blue;
font-family: monospace; font-family: monospace;
} }
table#book_list * a.format:hover { table#book_list * a.format:hover {
color: red; color: red;
} }
table#book_list * a.format:visited { table#book_list * a.format:visited {
color: blue; color: blue;
} }
table#book_list * .comments { table#book_list * .comments {
font-size: smaller; font-size: smaller;
display: none; display: none;
} }
/* /*
Loading message Loading message
*/ */
#loading { #loading {
top: 10px; left: 10px; top: 10px;
position: absolute; left: 10px;
font-size: 160%; font-family: monospace; position: absolute;
text-align: center; font-size: 160%;
visibility: hidden; font-family: monospace;
z-index: 10000; text-align: center;
background-color: #aaaaaa; visibility: hidden;
opacity: 0.8; z-index: 10000;
background-color: #aaaaaa;
opacity: 0.8;
} }
#loading div { #loading div {
top: 50%; position: relative; top: 50%;
position: relative;
} }
#cover_pane { #cover_pane {
overflow: auto; overflow: auto;
position: absolute; position: absolute;
visibility: hidden; visibility: hidden;
text-align: right; text-align: right;
z-index: 2; z-index: 2;
margin: 0pt; padding: 0pt; border-width: 0pt; margin: 0pt;
padding: 0pt;
border-width: 0pt;
} }

View File

@ -1,49 +1,60 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML 1.1" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" version="XHTML 1.1"
<head> xml:lang="en">
<title>calibre library</title> <head>
<link rel="stylesheet" type="text/css" href="/static/gui.css" charset="utf-8" /> <title>calibre library</title>
<script type="text/javascript" src="/static/date.js" charset="utf-8"></script> <link rel="stylesheet" type="text/css" href="/static/gui.css"
<script type="text/javascript" src="/static/jquery.js" charset="utf-8"></script> charset="utf-8" />
<script type="text/javascript" src="/static/gui.js" charset="utf-8"></script> <script type="text/javascript" src="/static/date.js" charset="utf-8"></script>
<link rel="icon" href="http://calibre-ebook.com/favicon.ico" type="image/x-icon" /> <script type="text/javascript" src="/static/jquery.js" charset="utf-8"></script>
</head> <script type="text/javascript" src="/static/gui.js" charset="utf-8"></script>
<body> <link rel="icon" href="http://calibre-ebook.com/favicon.ico"
<div id="banner"> type="image/x-icon" />
<a style="border: 0pt" href="http://calibre-ebook.com" alt="calibre" title="calibre"><img style="border:0pt" src="/static/calibre_banner.png" alt="calibre" /></a> </head>
</div> <body>
<div id="banner"><a style="border: 0pt"
href="http://calibre-ebook.com" alt="calibre" title="calibre"><img
style="border: 0pt" src="/static/calibre_banner.png" alt="calibre" /></a>
</div>
<div id="search_box"> <div id="search_box">
<form name="search_form" onsubmit="search();return false;" action="./" method="get"> <form name="search_form" onsubmit="search();return false;" action="./"
<input value="" id="s" type="text" /> method="get">
<input type="image" src="/static/btn_search_box.png" width="27" height="24" id="go" alt="Search" title="Search" /> <input value="" id="s" type="text" />
</form> <input type="image" src="/static/btn_search_box.png" width="27"
</div> height="24" id="go" alt="Search" title="Search" />
</form>
</div>
<div id="count_bar"> <div id="count_bar"><span id="left"><img
<span id="left"><img src="/static/first.png" alt="Show first set of books" title="Show first set of books"/>&nbsp;<img src="/static/previous.png" alt="Show previous set of books" title="Show previous set of books"/>&nbsp;</span><span id="count">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;<span id="right"><img src="/static/next.png" alt="Show next set of books" title="Show next set of books"/>&nbsp;<img src="/static/last.png" alt="Show last set of books" title="Show last set of books" /></span> src="/static/first.png" alt="Show first set of books"
</div> title="Show first set of books" />&nbsp;<img src="/static/previous.png"
alt="Show previous set of books" title="Show previous set of books" />&nbsp;</span><span
id="count">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;<span
id="right"><img src="/static/next.png"
alt="Show next set of books" title="Show next set of books" />&nbsp;<img
src="/static/last.png" alt="Show last set of books"
title="Show last set of books" /></span></div>
<div id="main"> <div id="main">
<table id="book_list" summary="Book list" cellspacing="0" cellpadding="0"> <table id="book_list" summary="Book list" cellspacing="0"
<thead> cellpadding="0">
<tr></tr> <thead>
</thead> <tr></tr>
<tbody> </thead>
<tbody>
</tbody> </tbody>
</table> </table>
</div> </div>
<div id="loading"> <div id="loading">
<div> <div><img align="top" src="/static/loading.gif" alt="Loading..."
<img align="top" src="/static/loading.gif" alt="Loading..." title="Loading..."/>&nbsp;<span id="loading_msg">Loading&hellip;</span> title="Loading..." />&nbsp;<span id="loading_msg">Loading&hellip;</span>
</div> </div>
</div> </div>
<div id="cover_pane"> <div id="cover_pane"><img title="Cover" src="" /></div>
<img title="Cover" src="" /> </body>
</div>
</body>
</html> </html>

View File

@ -1,83 +1,78 @@
/* CSS for the mobile version of the content server webpage */ /* CSS for the mobile version of the content server webpage */
.navigation table.buttons { .navigation table.buttons {
width: 100%; width: 100%;
} }
.navigation .button { .navigation .button {
width: 50%; width: 50%;
} }
.button a, .button:visited a { .button a,.button:visited a {
padding: 0.5em; padding: 0.5em;
font-size: 1.25em; font-size: 1.25em;
border: 1px solid black; border: 1px solid black;
text-color: black; text-color: black;
background-color: #ddd; background-color: #ddd;
border-top: 1px solid ThreeDLightShadow; border-top: 1px solid ThreeDLightShadow;
border-right: 1px solid ButtonShadow; border-right: 1px solid ButtonShadow;
border-bottom: 1px solid ButtonShadow; border-bottom: 1px solid ButtonShadow;
border-left: 1 px solid ThreeDLightShadow; border-left: 1 px solid ThreeDLightShadow;
-moz-border-radius: 0.25em; -moz-border-radius: 0.25em;
-webkit-border-radius: 0.25em; -webkit-border-radius: 0.25em;
} }
.button:hover a { .button:hover a {
border-top: 1px solid #666; border-top: 1px solid #666;
border-right: 1px solid #CCC; border-right: 1px solid #CCC;
border-bottom: 1 px solid #CCC; border-bottom: 1 px solid #CCC;
border-left: 1 px solid #666; border-left: 1 px solid #666;
} }
div.navigation { div.navigation {
padding-bottom: 1em; padding-bottom: 1em;
clear: both; clear: both;
} }
#search_box { #search_box {
border: 1px solid #393; border: 1px solid #393;
-moz-border-radius: 0.5em; -moz-border-radius: 0.5em;
-webkit-border-radius: 0.5em; -webkit-border-radius: 0.5em;
padding: 1em; padding: 1em;
margin-bottom: 0.5em; margin-bottom: 0.5em;
float: right; float: right;
} }
#listing { #listing {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
} }
#listing td { #listing td {
padding: 0.25em; padding: 0.25em;
} }
#listing td.thumbnail { #listing td.thumbnail {
height: 60px; height: 60px;
width: 60px; width: 60px;
} }
#listing tr:nth-child(even) { #listing tr:nth-child(even) {
background: #eee;
background: #eee;
} }
#listing .button a{ #listing .button a {
display: inline-block; display: inline-block;
width: 2.5em; width: 2.5em;
padding-left: 0em; padding-left: 0em;
padding-right: 0em; padding-right: 0em;
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
} }
#logo { #logo {
float: left; float: left;
} }
#spacer { #spacer {
clear: both; clear: both;
} }

View File

@ -34,380 +34,367 @@
* the terms of any one of the MPL, the GPL or the LGPL. * the terms of any one of the MPL, the GPL or the LGPL.
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
@
namespace url (http: //www.w3.org /1999/xhtml);
@namespace svg url (http: //www.w3.org /2000/svg);
/* blocks */
@namespace url(http://www.w3.org/1999/xhtml); html,div,map,dt,isindex,form {
@namespace svg url(http://www.w3.org/2000/svg); display: block;
/* blocks */
html, div, map, dt, isindex, form {
display: block;
} }
body { body {
display: block; display: block;
} }
p, dl, multicol { p,dl,multicol {
display: block; display: block;
margin: 1em 0; margin: 1em 0;
} }
dd { dd {
display: block; display: block;
margin-left: 40px; margin-left: 40px;
} }
blockquote { blockquote {
display: block; display: block;
margin: 1em; margin: 1em;
} }
address { address {
display: block; display: block;
font-style: italic; font-style: italic;
} }
center { center {
display: block; display: block;
text-align: center; text-align: center;
} }
blockquote[type=cite] { blockquote[type=cite] {
display: block; display: block;
margin: 1em 0em; margin: 1em 0em;
border-color: blue; border-color: blue;
border-width: thin; border-width: thin;
} }
span[_moz_quote=true] { span[_moz_quote=true] {
color: blue; color: blue;
} }
pre[_moz_quote=true] { pre[_moz_quote=true] {
color: blue; color: blue;
} }
h1 { h1 {
display: block; display: block;
font-size: 2em; font-size: 2em;
font-weight: bold; font-weight: bold;
margin: .67em 0; margin: .67em 0;
} }
h2 { h2 {
display: block; display: block;
font-size: 1.5em; font-size: 1.5em;
font-weight: bold; font-weight: bold;
margin: .83em 0; margin: .83em 0;
} }
h3 { h3 {
display: block; display: block;
font-size: 1.17em; font-size: 1.17em;
font-weight: bold; font-weight: bold;
margin: 1em 0; margin: 1em 0;
} }
h4 { h4 {
display: block; display: block;
font-weight: bold; font-weight: bold;
margin: 1.33em 0; margin: 1.33em 0;
} }
h5 { h5 {
display: block; display: block;
font-size: 0.83em; font-size: 0.83em;
font-weight: bold; font-weight: bold;
margin: 1.67em 0; margin: 1.67em 0;
} }
h6 { h6 {
display: block; display: block;
font-size: 0.67em; font-size: 0.67em;
font-weight: bold; font-weight: bold;
margin: 2.33em 0; margin: 2.33em 0;
} }
listing { listing {
display: block; display: block;
font-family: monospace; font-family: monospace;
font-size: medium; font-size: medium;
white-space: pre; white-space: pre;
margin: 1em 0; margin: 1em 0;
} }
xmp, pre, plaintext { xmp,pre,plaintext {
display: block; display: block;
font-family: monospace; font-family: monospace;
white-space: pre; white-space: pre;
margin: 1em 0; margin: 1em 0;
} }
/* tables */ /* tables */
table { table {
display: table; display: table;
border-spacing: 2px; border-spacing: 2px;
border-collapse: separate; border-collapse: separate;
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
text-indent: 0; text-indent: 0;
} }
table[align="left"] { table[align="left"] {
float: left; float: left;
} }
table[align="right"] { table[align="right"] {
float: right; float: right;
} }
table[rules]:not([rules="none"]) { table[rules]:not ([rules="none"] ) {
border-collapse: collapse; border-collapse: collapse;
} }
/* caption inherits from table not table-outer */ /* caption inherits from table not table-outer */
caption { caption {
display: table-caption; display: table-caption;
text-align: center; text-align: center;
} }
table[align="center"] > caption { table[align="center"]>caption {
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
} }
table[align="center"] > caption[align="left"] { table[align="center"]>caption[align="left"] {
margin-right: 0; margin-right: 0;
} }
table[align="center"] > caption[align="right"] { table[align="center"]>caption[align="right"] {
margin-left: 0; margin-left: 0;
} }
tr { tr {
display: table-row; display: table-row;
vertical-align: inherit; vertical-align: inherit;
} }
col { col {
display: table-column; display: table-column;
} }
colgroup { colgroup {
display: table-column-group; display: table-column-group;
} }
tbody { tbody {
display: table-row-group; display: table-row-group;
vertical-align: middle; vertical-align: middle;
} }
thead { thead {
display: table-header-group; display: table-header-group;
vertical-align: middle; vertical-align: middle;
} }
tfoot { tfoot {
display: table-footer-group; display: table-footer-group;
vertical-align: middle; vertical-align: middle;
} }
/* for XHTML tables without tbody */ /* for XHTML tables without tbody */
table > tr { table>tr {
vertical-align: middle; vertical-align: middle;
} }
td { td {
display: table-cell; display: table-cell;
vertical-align: inherit; vertical-align: inherit;
text-align: inherit; text-align: inherit;
padding: 1px; padding: 1px;
} }
th { th {
display: table-cell; display: table-cell;
vertical-align: inherit; vertical-align: inherit;
font-weight: bold; font-weight: bold;
padding: 1px; padding: 1px;
} }
/* inlines */ /* inlines */
b,strong {
b, strong { font-weight: bolder;
font-weight: bolder;
} }
i, cite, em, var, dfn { i,cite,em,var,dfn {
font-style: italic; font-style: italic;
} }
tt, code, kbd, samp { tt,code,kbd,samp {
font-family: monospace; font-family: monospace;
} }
u, ins { u,ins {
text-decoration: underline; text-decoration: underline;
} }
s, strike, del { s,strike,del {
text-decoration: line-through; text-decoration: line-through;
} }
blink { blink {
text-decoration: blink; text-decoration: blink;
} }
big { big {
font-size: larger; font-size: larger;
} }
small { small {
font-size: smaller; font-size: smaller;
} }
sub { sub {
vertical-align: sub; vertical-align: sub;
font-size: smaller; font-size: smaller;
line-height: normal; line-height: normal;
} }
sup { sup {
vertical-align: super; vertical-align: super;
font-size: smaller; font-size: smaller;
line-height: normal; line-height: normal;
} }
nobr { nobr {
white-space: nowrap; white-space: nowrap;
} }
/* titles */ /* titles */
abbr[title], acronym[title] { abbr[title],acronym[title] {
border-bottom: dotted 1px; border-bottom: dotted 1px;
} }
/* lists */ /* lists */
ul,menu,dir {
ul, menu, dir { display: block;
display: block; list-style-type: disc;
list-style-type: disc; margin: 1em 0;
margin: 1em 0;
} }
ol { ol {
display: block; display: block;
list-style-type: decimal; list-style-type: decimal;
margin: 1em 0; margin: 1em 0;
} }
li { li {
display: list-item; display: list-item;
} }
/* nested lists have no top/bottom margins */ /* nested lists have no top/bottom margins */
ul ul, ul ol, ul dir, ul menu, ul dl, ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl
ol ul, ol ol, ol dir, ol menu, ol dl, {
dir ul, dir ol, dir dir, dir menu, dir dl, margin-top: 0;
menu ul, menu ol, menu dir, menu menu, menu dl, margin-bottom: 0;
dl ul, dl ol, dl dir, dl menu, dl dl {
margin-top: 0;
margin-bottom: 0;
} }
/* 2 deep unordered lists use a circle */ /* 2 deep unordered lists use a circle */
ol ul, ul ul, menu ul, dir ul, ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir
ol menu, ul menu, menu menu, dir menu, {
ol dir, ul dir, menu dir, dir dir { list-style-type: circle;
list-style-type: circle;
} }
/* 3 deep (or more) unordered lists use a square */ /* 3 deep (or more) unordered lists use a square */
ol ol ul, ol ul ul, ol menu ul, ol dir ul, ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir
ol ol menu, ol ul menu, ol menu menu, ol dir menu, {
ol ol dir, ol ul dir, ol menu dir, ol dir dir, list-style-type: square;
ul ol ul, ul ul ul, ul menu ul, ul dir ul,
ul ol menu, ul ul menu, ul menu menu, ul dir menu,
ul ol dir, ul ul dir, ul menu dir, ul dir dir,
menu ol ul, menu ul ul, menu menu ul, menu dir ul,
menu ol menu, menu ul menu, menu menu menu, menu dir menu,
menu ol dir, menu ul dir, menu menu dir, menu dir dir,
dir ol ul, dir ul ul, dir menu ul, dir dir ul,
dir ol menu, dir ul menu, dir menu menu, dir dir menu,
dir ol dir, dir ul dir, dir menu dir, dir dir dir {
list-style-type: square;
} }
/* leafs */ /* leafs */
/* <hr> noshade and color attributes are handled completely by
/* <hr> noshade and color attributes are handled completely by
* the nsHTMLHRElement attribute mapping code * the nsHTMLHRElement attribute mapping code
*/ */
hr { hr {
display: block; display: block;
height: 2px; height: 2px;
border: 1px inset; border: 1px inset;
margin: 0.5em auto 0.5em auto; margin: 0.5em auto 0.5em auto;
color: gray; color: gray;
} }
hr[size="1"] { hr[size="1"] {
border-style: solid none none none; border-style: solid none none none;
} }
img[usemap], object[usemap] { img[usemap],object[usemap] {
color: blue; color: blue;
} }
frameset { frameset {
display: block ! important; display: block ! important;
position: static ! important; position: static ! important;
float: none ! important; float: none ! important;
border: none ! important; border: none ! important;
} }
frame { frame {
border: none ! important; border: none ! important;
} }
iframe { iframe {
border: 2px inset; border: 2px inset;
} }
noframes { noframes {
display: none; display: none;
} }
spacer { spacer {
position: static ! important; position: static ! important;
float: none ! important; float: none ! important;
} }
/* hidden elements */ /* hidden elements */
area, base, basefont, head, meta, script, style, title, area,base,basefont,head,meta,script,style,title,noembed,param,link {
noembed, param, link { display: none;
display: none;
} }
/* Page breaks at body tags, to help out with LIT-generation */ /* Page breaks at body tags, to help out with LIT-generation */
body { body {
page-break-before: always; page-break-before: always;
} }
/* Explicit line-breaks are blocks, sure... */ /* Explicit line-breaks are blocks, sure... */
br { br {
display: block; display: block;
} }
/* Images, embedded object, and SVG size defaults */ /* Images, embedded object, and SVG size defaults */
img, object, svg|svg { img,object,svg |svg {
width: auto; width: auto;
height: auto; height: auto;
} }
/* These are needed because ADE renders anchors the same as links */ /* These are needed because ADE renders anchors the same as links */
a {
text-decoration: inherit;
color: inherit;
cursor: inherit
}
a { text-decoration: inherit; color: inherit; cursor: inherit } a[href] {
a[href] { text-decoration: underline; color: blue; cursor: pointer } text-decoration: underline;
color: blue;
cursor: pointer
}

View File

@ -1,9 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization"> <WixLocalization Culture="en-us"
<String Id="AdvancedWelcomeEulaDlgDescriptionPerUser">If you are upgrading from a {app} version older than 0.6.17, please uninstall {app} first. Click Advanced to change installation settings.</String> xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="ProgressTextFileCost">Computing space requirements, this may take upto five minutes...</String> <String Id="AdvancedWelcomeEulaDlgDescriptionPerUser">If you are upgrading from a {app} version older than
<String Id="ProgressTextCostInitialize">Computing space requirements, this may take upto five minutes...</String> 0.6.17, please uninstall {app} first. Click Advanced to change
<String Id="ProgressTextCostFinalize">Computing space requirements, this may take upto five minutes...</String> installation settings.</String>
<String Id="WaitForCostingDlgText">Please wait while the installer finishes determining your disk space requirements, this may take upto five minutes...</String> <String Id="ProgressTextFileCost">Computing space requirements, this may take upto five
minutes...</String>
<String Id="ProgressTextCostInitialize">Computing space requirements, this may take upto five
minutes...</String>
<String Id="ProgressTextCostFinalize">Computing space requirements, this may take upto five
minutes...</String>
<String Id="WaitForCostingDlgText">Please wait while the installer finishes determining
your disk space requirements, this may take upto five minutes...</String>
</WixLocalization> </WixLocalization>

View File

@ -1,164 +1,157 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
>
<Product Name='{app}' Id='*' UpgradeCode='{upgrade_code}' <Product Name='{app}' Id='*' UpgradeCode='{upgrade_code}'
Language='1033' Codepage='1252' Version='{version}' Manufacturer='Kovid Goyal'> Language='1033' Codepage='1252' Version='{version}' Manufacturer='Kovid Goyal'>
<Package Id='*' Keywords='Installer' Description="{app} Installer" <Package Id='*' Keywords='Installer' Description="{app} Installer"
Comments='{app} is a registered trademark of Kovid Goyal' Manufacturer='Kovid Goyal' Comments='{app} is a registered trademark of Kovid Goyal'
InstallerVersion='300' Languages='1033' Compressed='yes' Manufacturer='Kovid Goyal' InstallerVersion='300' Languages='1033'
SummaryCodepage='1252' /> Compressed='yes' SummaryCodepage='1252' />
<Media Id="1" Cabinet="{app}.cab" CompressionLevel="{compression}" EmbedCab="yes" /> <Media Id="1" Cabinet="{app}.cab" CompressionLevel="{compression}"
EmbedCab="yes" />
<Upgrade Id="{upgrade_code}"> <Upgrade Id="{upgrade_code}">
<UpgradeVersion Maximum="{version}" <UpgradeVersion Maximum="{version}" IncludeMaximum="yes"
IncludeMaximum="yes" OnlyDetect="no" Language="1033" Property="OLDPRODUCTFOUND" />
OnlyDetect="no" <UpgradeVersion Minimum="{version}" IncludeMinimum="no"
Language="1033" OnlyDetect="yes" Language="1033" Property="NEWPRODUCTFOUND" />
Property="OLDPRODUCTFOUND"/> </Upgrade>
<UpgradeVersion Minimum="{version}" <CustomAction Id="PreventDowngrading" Error="Newer version already installed." />
IncludeMinimum="no"
OnlyDetect="yes"
Language="1033"
Property="NEWPRODUCTFOUND"/>
</Upgrade>
<CustomAction Id="PreventDowngrading" Error="Newer version already installed."/>
<Directory Id='TARGETDIR' Name='SourceDir'> <Directory Id='TARGETDIR' Name='SourceDir'>
<Merge Id="VCRedist" SourceFile="{crt_msm}" DiskId="1" Language="0"/> <Merge Id="VCRedist" SourceFile="{crt_msm}" DiskId="1"
<Directory Id='ProgramFilesFolder' Name='PFiles'> Language="0" />
<Directory Id='APPLICATIONFOLDER' Name='{app}' /> <Directory Id='ProgramFilesFolder' Name='PFiles'>
</Directory> <Directory Id='APPLICATIONFOLDER' Name='{app}' />
<Directory Id="ProgramMenuFolder"> </Directory>
<Directory Id="ApplicationProgramsFolder" Name="{app} - E-book Management"/> <Directory Id="ProgramMenuFolder">
</Directory> <Directory Id="ApplicationProgramsFolder" Name="{app} - E-book Management" />
<Directory Id="DesktopFolder" Name="Desktop"/> </Directory>
</Directory> <Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
<DirectoryRef Id="APPLICATIONFOLDER"> <DirectoryRef Id="APPLICATIONFOLDER">
{app_components} {app_components}
<Component Id="AddToPath" Guid="*"> <Component Id="AddToPath" Guid="*">
<Environment Id='UpdatePath' Name='PATH' Action='set' System='yes' Part='last' Value='[APPLICATIONFOLDER]' /> <Environment Id='UpdatePath' Name='PATH' Action='set'
<RegistryValue Root="HKCU" Key="Software\Microsoft\{app}" Name="system_path_updated" Type="integer" Value="1" KeyPath="yes"/> System='yes' Part='last' Value='[APPLICATIONFOLDER]' />
</Component> <RegistryValue Root="HKCU" Key="Software\Microsoft\{app}"
</DirectoryRef> Name="system_path_updated" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationProgramsFolder"> <DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="StartMenuShortcuts" Guid="*"> <Component Id="StartMenuShortcuts" Guid="*">
<Shortcut Id="s1" Name="{app} - E-book management" <Shortcut Id="s1" Name="{app} - E-book management"
Description="Manage your e-book collection and download news" Description="Manage your e-book collection and download news"
Target="[#{exe_map[calibre]}]" Target="[#{exe_map[calibre]}]" WorkingDirectory="APPLICATIONROOTDIRECTORY" />
WorkingDirectory="APPLICATIONROOTDIRECTORY" /> <Shortcut Id="s2" Name="E-book viewer"
<Shortcut Id="s2" Name="E-book viewer" Description="Viewer for all the major e-book formats" Target="[#{exe_map[ebook-viewer]}]"
Description="Viewer for all the major e-book formats" WorkingDirectory="APPLICATIONROOTDIRECTORY" />
Target="[#{exe_map[ebook-viewer]}]" <Shortcut Id="s3" Name="LRF viewer" Description="Viewer for LRF format e-books"
WorkingDirectory="APPLICATIONROOTDIRECTORY" /> Target="[#{exe_map[lrfviewer]}]" WorkingDirectory="APPLICATIONROOTDIRECTORY" />
<Shortcut Id="s3" Name="LRF viewer" <util:InternetShortcut Id="OnlineDocumentationShortcut"
Description="Viewer for LRF format e-books" Name="User Manual" Type="url" Target="http://calibre-ebook.com/user_manual" />
Target="[#{exe_map[lrfviewer]}]" <util:InternetShortcut Id="GetInvolvedS" Name="Get Involved"
WorkingDirectory="APPLICATIONROOTDIRECTORY" /> Type="url" Target="http://calibre-ebook.com/get-involved" />
<util:InternetShortcut Id="OnlineDocumentationShortcut"
Name="User Manual" Type="url"
Target="http://calibre-ebook.com/user_manual"/>
<util:InternetShortcut Id="GetInvolvedS"
Name="Get Involved" Type="url"
Target="http://calibre-ebook.com/get-involved"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\Microsoft\{app}" Name="start_menu_shortcuts_installed" Type="integer" Value="1" KeyPath="yes"/> <RegistryValue Root="HKCU" Key="Software\Microsoft\{app}"
</Component> Name="start_menu_shortcuts_installed" Type="integer" Value="1"
</DirectoryRef> KeyPath="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="DesktopFolder"> <DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="*"> <Component Id="DesktopShortcut" Guid="*">
<Shortcut Id="ds1" Name="{app} - E-book management" <Shortcut Id="ds1" Name="{app} - E-book management"
Description="Manage your e-book collection and download news" Description="Manage your e-book collection and download news"
Target="[#{exe_map[calibre]}]" Target="[#{exe_map[calibre]}]" WorkingDirectory="APPLICATIONROOTDIRECTORY" />
WorkingDirectory="APPLICATIONROOTDIRECTORY" /> <RegistryValue Root="HKCU" Key="Software\Microsoft\{app}"
<RegistryValue Root="HKCU" Key="Software\Microsoft\{app}" Name="desktop_shortcut_installed" Type="integer" Value="1" KeyPath="yes"/> Name="desktop_shortcut_installed" Type="integer" Value="1" KeyPath="yes" />
</Component> </Component>
</DirectoryRef> </DirectoryRef>
<Feature Id="Complete" Title="{app}" Display="expand" Level="1" <Feature Id="Complete" Title="{app}" Display="expand" Level="1"
ConfigurableDirectory="APPLICATIONFOLDER"> ConfigurableDirectory="APPLICATIONFOLDER">
<Feature Id="MainApplication" Title="Program Files" Level="1" <Feature Id="MainApplication" Title="Program Files" Level="1"
Description="All the files need to run {app}" Absent="disallow"> Description="All the files need to run {app}" Absent="disallow">
</Feature> </Feature>
<Feature Id="VCRedist" Title="Visual C++ 8.0 Runtime" AllowAdvertise="no" Display="hidden" Level="1"> <Feature Id="VCRedist" Title="Visual C++ 8.0 Runtime"
<MergeRef Id="VCRedist"/> AllowAdvertise="no" Display="hidden" Level="1">
</Feature> <MergeRef Id="VCRedist" />
</Feature>
<Feature Id="FSMS" Title="Start menu shortcuts" Level="1" <Feature Id="FSMS" Title="Start menu shortcuts" Level="1"
Description="Program shortcuts installed in the Start Menu"> Description="Program shortcuts installed in the Start Menu">
<ComponentRef Id="StartMenuShortcuts"/> <ComponentRef Id="StartMenuShortcuts" />
</Feature> </Feature>
<Feature Id="DS" Title="Shortcut on desktop" Level="1" <Feature Id="DS" Title="Shortcut on desktop" Level="1"
Description="Shortcut to {app} on your desktop"> Description="Shortcut to {app} on your desktop">
<ComponentRef Id="DesktopShortcut"/> <ComponentRef Id="DesktopShortcut" />
</Feature> </Feature>
<Feature Id="FAddToPath" Title="Add install directory to path" Level="1" <Feature Id="FAddToPath" Title="Add install directory to path"
Description="Add installation directory to PATH. Makes using command line tools easier"> Level="1"
<ComponentRef Id="AddToPath"/> Description="Add installation directory to PATH. Makes using command line tools easier">
</Feature> <ComponentRef Id="AddToPath" />
</Feature> </Feature>
</Feature>
<!-- Add icon to entry in Add/Remove programs --> <!-- Add icon to entry in Add/Remove programs -->
<Icon Id="main_icon" SourceFile="{main_icon}"/> <Icon Id="main_icon" SourceFile="{main_icon}" />
<Property Id="ARPPRODUCTICON" Value="main_icon" /> <Property Id="ARPPRODUCTICON" Value="main_icon" />
<Condition <Condition
Message="This application is only supported on Windows XP SP2, or higher."> Message="This application is only supported on Windows XP SP2, or higher.">
<![CDATA[Installed OR (VersionNT >= 501)]]> <![CDATA[Installed OR (VersionNT >= 501)]]>
</Condition> </Condition>
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom> <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
<RemoveExistingProducts After="InstallFinalize" /> <RemoveExistingProducts After="InstallFinalize" />
</InstallExecuteSequence> </InstallExecuteSequence>
<InstallUISequence> <InstallUISequence>
<Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom> <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
</InstallUISequence> </InstallUISequence>
<UI> <UI>
<UIRef Id="WixUI_Advanced" /> <UIRef Id="WixUI_Advanced" />
<Publish Dialog="ExitDialog" <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction"
Control="Finish" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI> </UI>
<!-- <!--
Set default folder name and allow only per machine installs. Set default folder name and allow only per machine installs. For a
For a per-machine installation, the default installation location per-machine installation, the default installation location will be
will be [ProgramFilesFolder][ApplicationFolderName] and the user [ProgramFilesFolder][ApplicationFolderName] and the user will be able
will be able to change it in the setup UI. This is because the installer to change it in the setup UI. This is because the installer has to
has to install the VC90 merge module into the system winsxs folder for python install the VC90 merge module into the system winsxs folder for
to work, so per user installs are impossible anyway. python to work, so per user installs are impossible anyway.
--> -->
<Property Id="ApplicationFolderName" Value="Calibre2" /> <Property Id="ApplicationFolderName" Value="Calibre2" />
<Property Id="WixAppFolder" Value="WixPerMachineFolder" /> <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<WixVariable Id="WixUISupportPerUser" Value="0" /> <WixVariable Id="WixUISupportPerUser" Value="0" />
<!-- Add option to launch calibre after install --> <!-- Add option to launch calibre after install -->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch {app}" /> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch {app}" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1"/> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<Property Id="WixShellExecTarget" Value="[#{exe_map[calibre]}]" /> <Property Id="WixShellExecTarget" Value="[#{exe_map[calibre]}]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" <CustomAction Id="LaunchApplication" BinaryKey="WixCA"
DllEntry="WixShellExec" Impersonate="yes"/> DllEntry="WixShellExec" Impersonate="yes" />
<InstallUISequence> <InstallUISequence>
<FileCost Suppress="yes" /> <FileCost Suppress="yes" />
</InstallUISequence> </InstallUISequence>
</Product> </Product>
</Wix> </Wix>

View File

@ -1,187 +1,279 @@
<html> <html>
<head> <head>
<style type='text/css'> <style type='text/css'>
.toc { page-break-after: always; text-indent: 0em; } .toc {
.tocpn {text-align: right; } page-break-after: always;
.tocchr {text-align: right;} text-indent: 0em;
.hanging_indent { padding-left:4em; text-indent:-4em } }
.drop { text-indent: 0pt}
.drop:first-letter { font-size:xx-large} .tocpn {
text-align: right;
}
.tocchr {
text-align: right;
}
.hanging_indent {
padding-left: 4em;
text-indent: -4em
}
.drop {
text-indent: 0pt
}
.drop:first-letter {
font-size: xx-large
}
</style> </style>
</head> </head>
<h1>Demo of <span style='font-family:monospace'>html2lrf</span></h1> <h1>Demo of <span style='font-family: monospace'>html2lrf</span></h1>
<p> <p>This document contains a demonstration of the capabilities of <span
This document contains a demonstration of the capabilities of <span style='font-family:monospace'>html2lrf</span>, the HTML to LRF converter from <em>calibre.</em> To obtain calibre visit<br/><span style='font:sans-serif'>http://calibre-ebook.com</span> style='font-family: monospace'>html2lrf</span>, the HTML to LRF
</p> converter from <em>calibre.</em> To obtain calibre visit<br />
<br/> <span style='font: sans-serif'>http://calibre-ebook.com</span></p>
<h2 id="toc">Table of Contents</h2> <br />
<ul style='page-break-after:always'> <h2 id="toc">Table of Contents</h2>
<li><a href='#lists'>Lists</a></li> <ul style='page-break-after: always'>
<li><a href='#tables'>Tables</a></li> <li><a href='#lists'>Lists</a></li>
<li><a href='#text'>Text formatting and ruled lines</a></li> <li><a href='#tables'>Tables</a></li>
<li><a href='#images'>Inline images</a></li> <li><a href='#text'>Text formatting and ruled lines</a></li>
<li><a href='#fonts'>Embedded Fonts</a></li> <li><a href='#images'>Inline images</a></li>
<li><a href='#dropcaps'>Paragraph Emphasis</a></li> <li><a href='#fonts'>Embedded Fonts</a></li>
<li><a href='#recursive'>Recursive link following</a></li> <li><a href='#dropcaps'>Paragraph Emphasis</a></li>
</ul> <li><a href='#recursive'>Recursive link following</a></li>
</ul>
<h2 id="lists">Lists</h2> <h2 id="lists">Lists</h2>
<h3>Nested lists</h3> <h3>Nested lists</h3>
<ol> <ol>
<li>Item 1</li> <li>Item 1</li>
<ul> <ul>
<li>Sub item 1</li> <li>Sub item 1</li>
<li>Sub item 2</li> <li>Sub item 2</li>
<ol> <ol>
<li>Sub sub item 1. This is a multiline item with <i>almost</i> correct blocking.</li> <li>Sub sub item 1. This is a multiline item with <i>almost</i>
<li>Sub sub item 2</li> correct blocking.</li>
</ol> <li>Sub sub item 2</li>
</ul> </ol>
<li>Item 2</li> </ul>
</ol> <li>Item 2</li>
<p></p> </ol>
<h3>Definition Lists</h3> <p></p>
<dl> <h3>Definition Lists</h3>
<dt>Term 1</dt> <dl>
<dd>Definition of Term 1. A multi line definition showing correct blocking.</dd> <dt>Term 1</dt>
<dt>Term 2</dt> <dd>Definition of Term 1. A multi line definition showing correct
<dd>Definition of Term 2</dd> blocking.</dd>
</dl> <dt>Term 2</dt>
<p class='toc'> <dd>Definition of Term 2</dd>
<hr /> </dl>
<a href='#toc'>Table of Contents</a>
</p>
<h2><a name='tables'>Tables</a></h2>
<table>
<tr><td colspan=4><h3 style="text-align:center">A matrix</h3></td></tr>
<tr><td></td><td style="text-align:center"><b>Column 1</b></td><td style="text-align:center"><b>Column 2</b></td><td style="text-align:center"><b>Column 3</b></td></tr>
<tr><td><b>Row 1</b></td><td><p style="text-align:center">(1, 1)</p></tr>
<tr><td><b>Row 2</b></td><td></td><td style="text-align:center"><p>(2, 2)</p></td><td></td></tr>
<tr><td><b>Row 3</b></td><td></td><td></td><td><p style="text-align:center">(3, 3)</p></td></tr>
</table>
<br/>
<p>
html2lrf supports both rowspan and colspan, but no other HTML table attributes, as it uses its own algorithm to determine optimal placement of cells.
</p>
<p>
Note that if you have custom fonts on your reader, the table may not be properly aligned. Also html2lrf does not support nested tables.
</p>
<p style="page-break-after:always">
On the next page you'll see a real life example taken from a Project Gutenberg text with no modifications. It shows off html2lrf's handling of rowspan and colspan.
</p>
<h3 align="center">Sample Complex Table of Contents</h3>
<table summary="TOC">
<tr><td colspan="3">&nbsp;</td><td align="right">PAGE</td></tr>
<tr><td class="tocch" colspan="3">Preface</td><td class="tocpn">v</td></tr>
<tr><td class="tocch" colspan="3">List of Works of Reference</td><td class="tocpn">vii</td></tr>
<tr><td class="tocch" colspan="3">List of Illustrations</td><td class="tocpn">xi</td></tr>
<tr><td class="tocch">Chapter</td><td class="tocchr">I.</td><td class="tocch">History of the Foundation</td><td class="tocpn">3</td></tr>
<tr><td class="tocchr" colspan="2">II.</td><td class="tocch">Exterior of the Church</td><td class="tocpn">25</td></tr>
<tr><td class="tocchr" colspan="2">III.</td><td class="tocch">Interior of the Church</td><td class="tocpn">33</td></tr>
<tr><td class="tocchr" colspan="2">IV.</td><td class="tocch">St. Bartholomew-the-Less and the Hospital</td><td class="tocpn">63</td></tr>
<tr><td class="tocch">Appendix</td><td class="tocchr">I.</td><td class="tocch">The Priory Seals</td><td class="tocpn">73</td></tr>
<tr><td class="tocchr" colspan="2">II.</td><td class="tocch">The Priors and Rectors</td><td class="tocpn">77</td></tr>
<tr><td class="tocchr" colspan="2">III.</td><td class="tocch">Inventory of Vestments, etc.</td><td class="tocpn">79</td></tr>
<tr><td class="tocchr" colspan="2">IV.</td><td class="tocch">The Organ</td><td class="tocpn">80</td></tr>
<tr><td class="tocch" colspan="3">Index</td><td class="tocpn">83</td></tr>
</table>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a>
</p>
<h2><a name='text'>Text formatting</a></h2>
<p>
A simple <i>paragraph</i> of <b>formatted
<i>text</i></b>, with a <u>ruled line</u> following it.
Super<sup>scripts</sup> and Sub<sub>scripts</sub>.
</p>
<hr/>
<br/>
<p> A
<span style='font-style:italic'>similar</span>
paragraph, but now <span style="text-decoration:overline">using</span>
<span style='font-weight:bold'><i>CSS</i></span>
to perform the text formatting.</p>
<hr/>
<center>A centered phrase</center>
<span style='text-align:right'>A right aligned phrase</span>
A normal phrase
<hr />
<p> A paragraph containing a <em>&lt;blockquote&gt;</em>
<blockquote>This is blockquoted text. It is rendered in a separate block with margins.</blockquote>The above text should be distinct from the rest of the paragraph.
</p>
<hr/>
<p style='text-indent:10em'>A very indented paragraph</p>
<p style='text-indent:0em'>An unindented paragraph</p>
<p>A default indented paragraph</p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a>
</p>
<h2><a name='images'>Inline images</a></h2>
<p>
Here I demonstrate the use of inline images in the midst of text. Here is a small image <img src='small.jpg' /> embedded in a sentence. Now we have a slightly larger image that is automatically put in its own block <img style="text-align:center" src='medium.jpg' /> and finally we have a large image which is put on a page by itself. Try changing sizes from S to M to L and see how the images behave. <img align='center' src='large.jpg' />
</p>
<p class='toc'> <p class='toc'>
<hr /> <hr />
<a href='#toc'>Table of Contents</a> <a href='#toc'>Table of Contents</a></p>
</p>
<h2><a name='fonts'>Embedded fonts</a></h2> <h2><a name='tables'>Tables</a></h2>
<p>This LRF file has been prepared by embedding Times New Roman and Andale Mono <table>
as the default serif and monospace fonts. This allows it to correctly display <tr>
non English characters such as: </p> <td colspan=4>
<ul> <h3 style="text-align: center">A matrix</h3>
<li>mouse in German: mūs</li> </td>
<li>mouse in Russian: мышь</li> </tr>
</ul> <tr>
<p> <td></td>
Note that embedding fonts in LRF files slows down page turns slightly. <td style="text-align: center"><b>Column 1</b></td>
<br /> <td style="text-align: center"><b>Column 2</b></td>
</p> <td style="text-align: center"><b>Column 3</b></td>
</tr>
<tr>
<td><b>Row 1</b></td>
<td>
<p style="text-align: center">(1, 1)</p>
</tr>
<tr>
<td><b>Row 2</b></td>
<td></td>
<td style="text-align: center">
<p>(2, 2)</p>
</td>
<td></td>
</tr>
<tr>
<td><b>Row 3</b></td>
<td></td>
<td></td>
<td>
<p style="text-align: center">(3, 3)</p>
</td>
</tr>
</table>
<br />
<p>html2lrf supports both rowspan and colspan, but no other HTML
table attributes, as it uses its own algorithm to determine optimal
placement of cells.</p>
<p>Note that if you have custom fonts on your reader, the table may
not be properly aligned. Also html2lrf does not support nested tables.</p>
<p style="page-break-after: always">On the next page you'll see a
real life example taken from a Project Gutenberg text with no
modifications. It shows off html2lrf's handling of rowspan and colspan.
</p>
<h3 align="center">Sample Complex Table of Contents</h3>
<table summary="TOC">
<tr>
<td colspan="3">&nbsp;</td>
<td align="right">PAGE</td>
</tr>
<tr>
<td class="tocch" colspan="3">Preface</td>
<td class="tocpn">v</td>
</tr>
<tr>
<td class="tocch" colspan="3">List of Works of Reference</td>
<td class="tocpn">vii</td>
</tr>
<tr>
<td class="tocch" colspan="3">List of Illustrations</td>
<td class="tocpn">xi</td>
</tr>
<tr>
<td class="tocch">Chapter</td>
<td class="tocchr">I.</td>
<td class="tocch">History of the Foundation</td>
<td class="tocpn">3</td>
</tr>
<tr>
<td class="tocchr" colspan="2">II.</td>
<td class="tocch">Exterior of the Church</td>
<td class="tocpn">25</td>
</tr>
<tr>
<td class="tocchr" colspan="2">III.</td>
<td class="tocch">Interior of the Church</td>
<td class="tocpn">33</td>
</tr>
<tr>
<td class="tocchr" colspan="2">IV.</td>
<td class="tocch">St. Bartholomew-the-Less and the Hospital</td>
<td class="tocpn">63</td>
</tr>
<tr>
<td class="tocch">Appendix</td>
<td class="tocchr">I.</td>
<td class="tocch">The Priory Seals</td>
<td class="tocpn">73</td>
</tr>
<tr>
<td class="tocchr" colspan="2">II.</td>
<td class="tocch">The Priors and Rectors</td>
<td class="tocpn">77</td>
</tr>
<tr>
<td class="tocchr" colspan="2">III.</td>
<td class="tocch">Inventory of Vestments, etc.</td>
<td class="tocpn">79</td>
</tr>
<tr>
<td class="tocchr" colspan="2">IV.</td>
<td class="tocch">The Organ</td>
<td class="tocpn">80</td>
</tr>
<tr>
<td class="tocch" colspan="3">Index</td>
<td class="tocpn">83</td>
</tr>
</table>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a>
</p>
<h2><a name='dropcaps'>Paragraph Emphasis</a></h2>
<br/>
<p><img class='libprs500_dropcaps' src='a.png' /> beautiful image based dropcaps to emphasize this
paragraph. Image based dropcaps are specified by adding the <code>class = 'libprs500_dropcaps'</code>
attribute to an <code>&lt;img&gt;</code> tag.<p/>
<br/>
<p class="drop">This is a plain text based dropcaps. It
is not nearly as dramatic, but easier to code ;-)
</p>
<br/>
<p><span style="font-variant: small-caps">This is an Example</span> of small-caps.
It can also be used to highlight the start of a paragraph very effectively.
</p>
<br/>
<p class='hanging_indent'>A paragraph with a hanging indent. This is especially
useful for highly structured text like verse, or dialogue.<br/></p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a>
</p>
<h2><a name='recursive'>Recursive link following</a></h2>
<p>
<span style='font:monospace'>html2lrf</span> follows links in HTML files that point to other files, recursively. Thus it can be used to convert a whole tree of HTML files into a single LRF file.
<br />
</p>
<p class='toc'> <p class='toc'>
<hr /> <hr />
<a href='#toc'>Table of Contents</a> <a href='#toc'>Table of Contents</a></p>
</p>
<h2><a name='text'>Text formatting</a></h2>
<p>A simple <i>paragraph</i> of <b>formatted <i>text</i></b>, with a
<u>ruled line</u> following it. Super<sup>scripts</sup> and Sub<sub>scripts</sub>.
</p>
<hr />
<br />
<p>A <span style='font-style: italic'>similar</span> paragraph, but
now <span style="text-decoration: overline">using</span> <span
style='font-weight: bold'><i>CSS</i></span> to perform the text
formatting.</p>
<hr />
<center>A centered phrase</center>
<span style='text-align: right'>A right aligned phrase</span>
A normal phrase
<hr />
<p>A paragraph containing a <em>&lt;blockquote&gt;</em>
<blockquote>This is blockquoted text. It is rendered in a
separate block with margins.</blockquote>
The above text should be distinct from the rest of the paragraph.</p>
<hr />
<p style='text-indent: 10em'>A very indented paragraph</p>
<p style='text-indent: 0em'>An unindented paragraph</p>
<p>A default indented paragraph</p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a></p>
<h2><a name='images'>Inline images</a></h2>
<p>Here I demonstrate the use of inline images in the midst of text.
Here is a small image <img src='small.jpg' /> embedded in a sentence.
Now we have a slightly larger image that is automatically put in its own
block <img style="text-align: center" src='medium.jpg' /> and finally
we have a large image which is put on a page by itself. Try changing
sizes from S to M to L and see how the images behave. <img
align='center' src='large.jpg' /></p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a></p>
<h2><a name='fonts'>Embedded fonts</a></h2>
<p>This LRF file has been prepared by embedding Times New Roman and
Andale Mono as the default serif and monospace fonts. This allows it to
correctly display non English characters such as:</p>
<ul>
<li>mouse in German: mūs</li>
<li>mouse in Russian: мышь</li>
</ul>
<p>Note that embedding fonts in LRF files slows down page turns
slightly. <br />
</p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a></p>
<h2><a name='dropcaps'>Paragraph Emphasis</a></h2>
<br />
<p><img class='libprs500_dropcaps' src='a.png' /> beautiful image
based dropcaps to emphasize this paragraph. Image based dropcaps are
specified by adding the <code>class = 'libprs500_dropcaps'</code>
attribute to an <code>&lt;img&gt;</code> tag.
<p /><br />
<p class="drop">This is a plain text based dropcaps. It is not
nearly as dramatic, but easier to code ;-)</p>
<br />
<p><span style="font-variant: small-caps">This is an Example</span>
of small-caps. It can also be used to highlight the start of a paragraph
very effectively.</p>
<br />
<p class='hanging_indent'>A paragraph with a hanging indent. This is
especially useful for highly structured text like verse, or dialogue.<br />
</p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a></p>
<h2><a name='recursive'>Recursive link following</a></h2>
<p><span style='font: monospace'>html2lrf</span> follows links in
HTML files that point to other files, recursively. Thus it can be used
to convert a whole tree of HTML files into a single LRF file. <br />
</p>
<p class='toc'>
<hr />
<a href='#toc'>Table of Contents</a></p>
</html> </html>

View File

@ -1,14 +1,14 @@
{% extends "!layout.html" %} {% extends "!layout.html" %} {% block sidebarlogo %}
{% block sidebarlogo %} <p class="logo"><a href="http://calibre-ebook.com"><img
<p class="logo"> class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo" /></a></p>
<a href="http://calibre-ebook.com"><img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/></a> <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
</p> <input type="hidden" name="cmd" value="_s-xclick" /> <input
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> type="hidden" name="hosted_button_id" value="3028915" /> <input
<input type="hidden" name="cmd" value="_s-xclick" /> type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif"
<input type="hidden" name="hosted_button_id" value="3028915" /> border="0" name="submit" alt="Donate to support calibre development"
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Donate to support calibre development" style="border:0pt" /> style="border: 0pt" /> <img alt="" border="0"
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"/> src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form> </form>
<hr/> <hr />
{% endblock %} {% endblock %}

View File

@ -1,19 +1,19 @@
<html> <html>
<head> <head>
<title>A very short ebook</title> <title>A very short ebook</title>
<meta name="charset" value="utf-8" /> <meta name="charset" value="utf-8" />
</head> </head>
<body> <body>
<h1 class="bookTitle">A very short ebook</h1> <h1 class="bookTitle">A very short ebook</h1>
<p style="text-align:right">Written by Kovid Goyal</p> <p style="text-align: right">Written by Kovid Goyal</p>
<div class="introduction"> <div class="introduction">
<p>A very short ebook to demonstrate the use of XPath.</p> <p>A very short ebook to demonstrate the use of XPath.</p>
</div> </div>
<h2 class="chapter">Chapter One</h2> <h2 class="chapter">Chapter One</h2>
<p>This is a truly fascinating chapter.</p> <p>This is a truly fascinating chapter.</p>
<h2 class="chapter">Chapter Two</h2> <h2 class="chapter">Chapter Two</h2>
<p>A worthy continuation of a fine tradition.</p> <p>A worthy continuation of a fine tradition.</p>
</body> </body>
</html> </html>