Update manual and accompanying CSS

This commit is contained in:
Alex Cabal 2020-03-14 14:04:25 -05:00
parent d2b80081de
commit 07bf6cf3ca
15 changed files with 143 additions and 149 deletions

View file

@ -945,7 +945,8 @@ h2{
h3,
h4,
h5{
h5,
h6{
font-size: 1rem;
font-family: 'League Spartan', sans-serif;
margin-top: 3rem;
@ -1088,6 +1089,7 @@ main.ebooks nav ol{
margin: 0 .5rem;
}
aside.warning,
aside.alert{
font-style: italic;
margin-top: 2rem;
@ -1099,10 +1101,17 @@ aside.alert{
box-sizing: border-box;
}
aside.warning{
font-style: normal;
hyphens: none;
}
aside.warning a:hover,
aside.alert a:hover{
color: var(--light-highlight);
}
aside.warning a:focus
aside.alert a:focus{
outline: 1px dashed var(--light-highlight);
}
@ -1170,13 +1179,14 @@ ul.tags li + li{
code.tag,
code.path,
code.program,
code.bash,
code.regex,
code.html,
code.ietf,
code.css,
code.marc{
border: 1px solid rgba(255,255,255,.25);
background: rgba(255,255,255,.25);
background: #333;
border-radius: .25rem;
white-space: pre-wrap;
padding: 0 .25rem;
@ -1425,18 +1435,12 @@ figure.corrected code{
}
.warning{
font-size: 3rem;
font-size: 2rem;
font-weight: bold;
text-align: center;
font-style: normal;
}
.warning + p{
font-style: normal;
font-variant: small-caps;
}
main.ebooks nav{
display: flex;
justify-content: center;

View file

@ -161,3 +161,22 @@
font-style: italic;
margin: 1rem;
}
.ws{
border: 1px solid #222;
padding: .1rem;
line-height: 1;
margin: 0 .1rem;
font-size: .5rem;
display: inline-block;
font-family: monospace;
vertical-align: middle;
margin-top: -3px; /* to match poor crimson alignment */
}
figure code.html .ws,
code.full .ws{
border-color: #fff;
margin-top: 0;
}

View file

@ -34,7 +34,7 @@ require_once('Core.php');
</ol>
</li>
<li>The only attributes on the <code class="html"><span class="p">&lt;</span><span class="nt">svg</span><span class="p">&gt;</span></code> root element are: <code class="html">xmlns</code>, <code class="html">version</code>, and <code class="html">viewBox</code>.</li>
<li>The contents of the SVGs <code class="html"><span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span></code> element matches the <code class="html">alt</code> attribut of its <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element in the text.</li>
<li>The contents of the SVGs <code class="html"><span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span></code> element matches the <code class="html">alt</code> attribute of its <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element in the text.</li>
<li>Grouping with <code class="html"><span class="p">&lt;</span><span class="nt">g</span><span class="p">&gt;</span></code> is avoided, unless it makes semantic sense. Groups whose sole purpose is to apply transforms should have those transforms applied to the children, and the group removed.</li>
<li>The use of fill color is avoided unless strictly necessary. Not defining a fill color allows for night mode compatibility.</li>
<li>The <code class="html">transform</code> attribute is illegal; transforms are applied to their elements directly.</li>
@ -230,4 +230,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -3,9 +3,10 @@ require_once('Core.php');
?><?= Template::Header(['title' => '1. XHTML, CSS, and SVG Code Style - The Standard Ebooks Manual', 'highlight' => 'contribute', 'manual' => true]) ?>
<main>
<article class="manual">
<section data-start-at="1" id="xhtml-css-and-svg-code-style">
<h1>XHTML, CSS, and SVG Code Style</h1>
<p>The <code class="bash">se clean</code> tool in the <a href="https://github.com/standardebooks/tools">Standard Ebooks toolset</a> formats XHTML code according to our style guidelines. The vast majority of the time its output is correct and no further modifications to code style are necessary.</p>
<p>The <code class="bash">se clean</code> tool in the <a href="https://github.com/standardebooks/tools">Standard Ebooks toolset</a> formats XHTML, CSS, and SVG code according to our style guidelines. The vast majority of the time its output is correct and no further modifications to code style are necessary.</p>
<section id="xhtml-formatting">
<h2>XHTML formatting</h2>
<ol type="1">
@ -27,7 +28,7 @@ require_once('Core.php');
<section id="br-elements">
<h3><code class="html"><span class="p">&lt;</span><span class="nt">br</span><span class="p">/&gt;</span></code> elements</h3>
<ol type="1">
<li><code class="html"><span class="p">&lt;</span><span class="nt">br</span><span class="p">/&gt;</span></code> elements within <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">phrasing content</a> are on the same line as the precediong phrasing content, and are followed by a newline.
<li><code class="html"><span class="p">&lt;</span><span class="nt">br</span><span class="p">/&gt;</span></code> elements within <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">phrasing content</a> are on the same line as the preceding phrasing content, and are followed by a newline.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>“Pray for the soul of the
<span class="p">&lt;</span><span class="nt">br</span><span class="p">/&gt;</span>
Demoiselle Jeanne DYs.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
@ -104,7 +105,7 @@ Demoiselle Jeanne DYs<span class="p">&lt;/</span><span class="nt">p</span><sp
<section id="selectors">
<h3>Selectors</h3>
<ol type="1">
<li>Selectors are each on their own line, directly followed by a comma or a brace with no whitespace inbetween.
<li>Selectors are each on their own line, directly followed by a comma or a brace with no whitespace in between.
<figure class="wrong"><code class="css full"><span class="nt">abbr</span><span class="p">.</span><span class="nc">era</span><span class="o">,</span> <span class="p">.</span><span class="nc">signature</span><span class="p">{</span>
<span class="k">font-variant</span><span class="p">:</span> <span class="kc">all-small-caps</span><span class="p">;</span>
<span class="p">}</span></code></figure>
@ -173,10 +174,10 @@ Demoiselle Jeanne DYs<span class="p">&lt;/</span><span class="nt">p</span><sp
<section id="svg-formatting">
<h2>SVG Formatting</h2>
<ol type="1">
<li>SVG formatting follows the same directives as <a href="/manual/1.0/code-style#1.1">XHTML formatting</a>.</li>
<li>SVG formatting follows the same directives as <a href="/manual/1.0.0/code-style#1.1">XHTML formatting</a>.</li>
</ol>
</section>
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -23,7 +23,7 @@ require_once('Core.php');
<li><code class="path">./src/images/titlepage.svg</code> is the editable titlepage file that is later compiled for distribution.</li>
<li><code class="path">./src/images/cover.svg</code> is the editable cover file that is later compiled for distribution.</li>
<li><code class="path">./src/images/cover.source.(jpg|png|bmp|tiff)</code> is the raw cover art file that may be cropped, resized, or otherwise edited to create <code class="path">./src/images/cover.jpg</code>.</li>
<li><code class="path">./src/images/cover.jpg</code> is the final edited cover art that will be compiled in to <code class="path">./src/epub/images/cover.svg</code> for distribution.</li>
<li><code class="path">./src/images/cover.jpg</code> is the final edited cover art that will be compiled into <code class="path">./src/epub/images/cover.svg</code> for distribution.</li>
</ol>
</li>
<li>Images compiled or derived from raw source images, that are then distributed with the ebook, are located in <code class="path">./src/epub/images/</code>.</li>
@ -32,7 +32,7 @@ require_once('Core.php');
<li>The ONIX metadata file is located in <code class="path">./src/epub/onix.xml</code>. This file is identical for all ebooks.</li>
<li>The ONIX metadata file is located in <code class="path">./src/epub/onix.xml</code>. This file is identical for all ebooks.</li>
<li>The <code class="path">./src/META-INF/</code> and <code class="path">./src/mimetype</code> directory and files are epub structural files that are identical for all ebooks.</li>
<li>The <code class="path">./LICENSE.md</code> contains th ebook license and is identical for all ebooks.</li>
<li>The <code class="path">./LICENSE.md</code> contains the ebook license and is identical for all ebooks.</li>
</ol>
</section>
<section id="xhtml-file-naming-conventions">
@ -228,4 +228,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -237,4 +237,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -12,11 +12,11 @@ require_once('Core.php');
<ol type="1">
<li>Major structural divisions of a larger work, like parts, volumes, books, chapters, or subchapters, are contained in a <code class="html"><span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span></code> element.</li>
<li>Individual items in a larger collection (like a poem in a poetry collection) are contained in a <code class="html"><span class="p">&lt;</span><span class="nt">article</span><span class="p">&gt;</span></code> element.</li>
<li>In <code class="html"><span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span></code> or <code class="html"><span class="p">&lt;</span><span class="nt">articles</span><span class="p">&gt;</span></code> elements that have titles, the first child element is an <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> element, or a <code class="html"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span></code> element containing the section's title.</li>
<li>In <code class="html"><span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span></code> or <code class="html"><span class="p">&lt;</span><span class="nt">articles</span><span class="p">&gt;</span></code> elements that have titles, the first child element is an <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> element, or a <code class="html"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span></code> element containing the sections title.</li>
</ol>
<section id="recomposability">
<h3>Recomposability</h3>
<p>“Recomposability” is the concept of generating a single structurally-correct HTML5 file out of an epub file. All SE ebooks are recomposable.</p>
<p>“Recomposability” is the concept of generating a single structurally-correct HTML5 file out of an epub file. All Standard Ebooks are recomposable.</p>
<ol type="1">
<li>XHTML files that contain <code class="html"><span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span></code> or <code class="html"><span class="p">&lt;</span><span class="nt">articles</span><span class="p">&gt;</span></code> elements that are semantic children of <code class="html"><span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span></code> or <code class="html"><span class="p">&lt;</span><span class="nt">articles</span><span class="p">&gt;</span></code> elements in other files, are wrapped in stubs of all parent <code class="html"><span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span></code> or <code class="html"><span class="p">&lt;</span><span class="nt">articles</span><span class="p">&gt;</span></code> elements, up to the root.</li>
<li>Each such included parent element has the identical <code class="html">id</code> and <code class="html">epub:type</code> attributes of its real counterpart.</li>
@ -50,10 +50,10 @@ require_once('Core.php');
<section id="headers">
<h2>Headers</h2>
<ol type="1">
<li><code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> elements are used for headers of sections that are structural divisions of a document, i.e., divisions that appear in the table of contents. <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> elements <em>are not</em> used for headers of components that are not in the table of contents. For example, they are not used to mark up the the title of a short poem in a chapter, where the poem itself is not a structural component of the larger ebook.</li>
<li><code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> elements are used for headers of sections that are structural divisions of a document, i.e., divisions that appear in the table of contents. <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> elements <em>are not</em> used for headers of components that are not in the table of contents. For example, they are not used to mark up the title of a short poem in a chapter, where the poem itself is not a structural component of the larger ebook.</li>
<li>A section containing an <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> appears in the table of contents.</li>
<li>The book's title is implicitly at the <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code> level, even if <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code> is not present in the ebook. Because of the implicit <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code>, all other sections begin at <code class="html"><span class="p">&lt;</span><span class="nt">h2</span><span class="p">&gt;</span></code>.</li>
<li>Each <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> element uses the correct number for the section's heading level in the overall book, <em>not</em> the section's heading level in the individual file. For example, given an ebook with a file named <code class="path">part-2.xhtml</code> containing:
<li>The books title is implicitly at the <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code> level, even if <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code> is not present in the ebook. Because of the implicit <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code>, all other sections begin at <code class="html"><span class="p">&lt;</span><span class="nt">h2</span><span class="p">&gt;</span></code>.</li>
<li>Each <code class="html"><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span></code><code class="html"><span class="p">&lt;</span><span class="nt">h6</span><span class="p">&gt;</span></code> element uses the correct number for the sections heading level in the overall book, <em>not</em> the sections heading level in the individual file. For example, given an ebook with a file named <code class="path">part-2.xhtml</code> containing:
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">section</span> <span class="na">id</span><span class="o">=</span><span class="s">&quot;part-2&quot;</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;part&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">h2</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;title&quot;</span><span class="p">&gt;</span>Part <span class="p">&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:roman&quot;</span><span class="p">&gt;</span>II<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;&lt;/</span><span class="nt">h2</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">section</span><span class="p">&gt;</span></code></figure>
@ -137,7 +137,7 @@ require_once('Core.php');
<span class="p">&lt;/</span><span class="nt">header</span><span class="p">&gt;</span></code></figure>
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">h2</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;title z3998:roman&quot;</span><span class="p">&gt;</span>X<span class="p">&lt;/</span><span class="nt">h2</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;bridgehead&quot;</span><span class="p">&gt;</span>Our first night—Under canvas—An appeal for help—Contrariness of teakettles, how to overcome—Supper—How to feel virtuous—Wanted! a comfortably-appointed, well-drained desert island, neighbourhood of South Pacific Ocean preferred—Funny thing that happened to Georges father—a restless night.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;bridgehead&quot;</span><span class="p">&gt;</span>Our first night<span class="ws">wj</span>—Under canvas<span class="ws">wj</span>—An appeal for help<span class="ws">wj</span>—Contrariness of teakettles, how to overcome<span class="ws">wj</span>—Supper<span class="ws">wj</span>—How to feel virtuous<span class="ws">wj</span>—Wanted! a comfortably-appointed, well-drained desert island, neighbourhood of South Pacific Ocean preferred<span class="ws">wj</span>—Funny thing that happened to Georges father<span class="ws">wj</span>—A restless night.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">header</span><span class="p">&gt;</span></code></figure>
</li>
</ol>
@ -192,7 +192,7 @@ require_once('Core.php');
<span class="p">&lt;/</span><span class="nt">blockquote</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">header</span><span class="p">&gt;</span></code></figure>
</li>
<li>In addition to the <a href="/manual/1.0/high-level-structural-patterns#6.3.1">CSS used for all epigraphs</a>, this additional CSS is included for epigraphs in section headers:
<li>In addition to the <a href="/manual/1.0.0/high-level-structural-patterns#6.3.1">CSS used for all epigraphs</a>, this additional CSS is included for epigraphs in section headers:
<figure><code class="css full"><span class="c">/* Epigraphs in section headers */</span>
<span class="nt">section</span> <span class="o">&gt;</span> <span class="nt">header</span> <span class="o">[</span><span class="nt">epub</span><span class="o">|</span><span class="nt">type</span><span class="o">~=</span><span class="s2">&quot;epigraph&quot;</span><span class="o">]</span><span class="p">{</span>
<span class="k">display</span><span class="p">:</span> <span class="kc">inline-block</span><span class="p">;</span>
@ -219,7 +219,7 @@ require_once('Core.php');
<ol type="1">
<li>In full-page epigraphs, the epigraph is centered on the page for ereaders that support advanced CSS. For all other ereaders, the epigraph is horizontally centered with a small margin above it.</li>
<li>Full-page epigraphs that contain multiple quotations are represented by multiple <code class="html"><span class="p">&lt;</span><span class="nt">blockquote</span><span class="p">&gt;</span></code> elements.</li>
<li>In addition to the <a href="/manual/1.0/high-level-structural-patterns#6.3.1">CSS used for all epigraphs</a>, this additional CSS is included for full-page epigraphs:
<li>In addition to the <a href="/manual/1.0.0/high-level-structural-patterns#6.3.1">CSS used for all epigraphs</a>, this additional CSS is included for full-page epigraphs:
<figure><code class="css full"><span class="c">/* Full-page epigraphs */</span>
<span class="nt">section</span><span class="o">[</span><span class="nt">epub</span><span class="o">|</span><span class="nt">type</span><span class="o">~=</span><span class="s2">&quot;epigraph&quot;</span><span class="o">]</span><span class="p">{</span>
<span class="k">text-align</span><span class="p">:</span> <span class="kc">center</span><span class="p">;</span>
@ -484,7 +484,7 @@ require_once('Core.php');
<span class="p">&lt;</span><span class="nt">td</span><span class="p">&gt;</span>I didnt think it polite to listen, sir.<span class="p">&lt;/</span><span class="nt">td</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span></code></figure>
</li>
<li>When several personas speak at once, or a group of personas ("The Actors") speaks at once, the containing <code class="html"><span class="p">&lt;</span><span class="nt">tr</span><span class="p">&gt;</span></code> element has the <code class="html">together</code> class, and the the first <code class="html"><span class="p">&lt;</span><span class="nt">td</span><span class="p">&gt;</span></code> child has a <code class="html">rowspan</code> attribute corresponding to the number of lines spoken together.
<li>When several personas speak at once, or a group of personas ("The Actors") speaks at once, the containing <code class="html"><span class="p">&lt;</span><span class="nt">tr</span><span class="p">&gt;</span></code> element has the <code class="html">together</code> class, and the first <code class="html"><span class="p">&lt;</span><span class="nt">td</span><span class="p">&gt;</span></code> child has a <code class="html">rowspan</code> attribute corresponding to the number of lines spoken together.
<figure><code class="css full"><span class="nt">tr</span><span class="p">.</span><span class="nc">together</span> <span class="nt">td</span><span class="p">{</span>
<span class="k">padding</span><span class="p">:</span> <span class="mi">0</span> <span class="mf">.5</span><span class="kt">em</span> <span class="mi">0</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">vertical-align</span><span class="p">:</span> <span class="kc">middle</span><span class="p">;</span>
@ -599,7 +599,7 @@ require_once('Core.php');
<h3>Letter headers</h3>
<ol type="1">
<li>Parts of a letter prior to the body of the letter, for example the location where it is written, the date, and the salutation, are wrapped in a <code class="html"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span></code> element.</li>
<li>If there is only a salutation and no other header content, the <code class="html"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span></code> element is ommitted.</li>
<li>If there is only a salutation and no other header content, the <code class="html"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span></code> element is omitted.</li>
<li>The location and date of a letter have the semantic inflection of <code class="html">se:letter.dateline</code>. Dates are in a <code class="html"><span class="p">&lt;</span><span class="nt">time</span><span class="p">&gt;</span></code> element with a computer-readable date.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;se:letter.dateline&quot;</span><span class="p">&gt;</span>Blarney Castle, <span class="p">&lt;</span><span class="nt">time</span> <span class="na">datetime</span><span class="o">=</span><span class="s">&quot;1863-10-11&quot;</span><span class="p">&gt;</span>11th of October, 1863<span class="p">&lt;/</span><span class="nt">time</span><span class="p">&gt;&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
@ -680,14 +680,14 @@ require_once('Core.php');
<span class="p">&lt;</span><span class="nt">footer</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:valediction&quot;</span><span class="p">&gt;</span>Your loving niece,<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">class</span><span class="o">=</span><span class="s">&quot;signature&quot;</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:sender&quot;</span><span class="p">&gt;</span>Mabel<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:postscript&quot;</span><span class="p">&gt;</span>P.S.—Lots, please, because some of us are very hungry.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:postscript&quot;</span><span class="p">&gt;&lt;</span><span class="nt">abbr</span><span class="p">&gt;</span>P.S.<span class="p">&lt;/</span><span class="nt">abbr</span><span class="p">&gt;</span><span class="ws">wj</span>—Lots, please, because some of us are very hungry.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">footer</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">blockquote</span><span class="p">&gt;</span></code></figure>
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">blockquote</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:letter&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">header</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;se:letter.dateline&quot;</span><span class="p">&gt;</span>Gracechurch-street, <span class="p">&lt;</span><span class="nt">time</span> <span class="na">datetime</span><span class="o">=</span><span class="s">&quot;08-02&quot;</span><span class="p">&gt;</span>August 2<span class="p">&lt;/</span><span class="nt">time</span><span class="p">&gt;</span>.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">header</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:salutation&quot;</span><span class="p">&gt;</span>My dear Brother<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>, At last I am able to send you some tidings of my niece, and such as, upon the whole, I hope will give you satisfaction. Soon after you left me on Saturday, I was fortunate enough to find out in what part of London they were. The particulars, I reserve till we meet. It is enough to know they are discovered, I have seen them both<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:salutation&quot;</span><span class="p">&gt;</span>My dear Brother<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>, At last I am able to send you some tidings of my niece, and such as, upon the whole, I hope will give you satisfaction. Soon after you left me on Saturday, I was fortunate enough to find out in what part of London they were. The particulars, I reserve till we meet. It is enough to know they are discovered, I have seen them both<span class="ws">wj</span><span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>I shall write again as soon as anything more is determined on.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">footer</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:valediction&quot;</span><span class="p">&gt;</span>Yours, etc.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
@ -703,7 +703,7 @@ require_once('Core.php');
<ol type="1">
<li>The <code class="html">alt</code> attribute describes the visual image itself in words, which is not the same as writing a caption or describing its place in the book.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">img</span> <span class="na">alt</span><span class="o">=</span><span class="s">&quot;The illustration for chapter 10&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;...&quot;</span> <span class="p">/&gt;</span></code></figure>
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">img</span> <span class="na">alt</span><span class="o">=</span><span class="s">&quot;Pierre&#39;s fruit-filled dinner&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;...&quot;</span> <span class="p">/&gt;</span></code></figure>
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">img</span> <span class="na">alt</span><span class="o">=</span><span class="s">&quot;Pierres fruit-filled dinner&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;...&quot;</span> <span class="p">/&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">img</span> <span class="na">alt</span><span class="o">=</span><span class="s">&quot;An apple and a pear inside a bowl, resting on a table.&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;...&quot;</span> <span class="p">/&gt;</span></code></figure>
</li>
<li>The <code class="html">alt</code> attribute is one or more complete sentences ended with periods or other appropriate punctuation. It is not composed of sentence fragments or complete sentences without ending punctuation.</li>
@ -714,8 +714,8 @@ require_once('Core.php');
<li><code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element whose image is black-on-white line art (i.e. exactly two colors, <strong>not</strong> grayscale!) are PNG files with a transparent background. They have the <code class="html">se:image.color-depth.black-on-transparent</code> semantic inflection.</li>
<li><code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> elements that are meant to be aligned on the block level or displayed as full-page images are contained in a parent <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element, with an optional <code class="html"><span class="p">&lt;</span><span class="nt">figcaption</span><span class="p">&gt;</span></code> sibling.
<ol type="1">
<li>when contained in a <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element, the <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element does not have an <code class="html">id</code> attribute; instead the <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element has the <code class="html">id</code> attribute.</li>
<li>An optional <code class="html"><span class="p">&lt;</span><span class="nt">figcaption</span><span class="p">&gt;</span></code> element containing a concise context-dependent caption may follow the <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element within a <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element. This caption depends on the surrounding context, and is not necessarily (or even ideally) identical to the <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element's <code class="html">alt</code> attribute.</li>
<li>When contained in a <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element, the <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element does not have an <code class="html">id</code> attribute; instead the <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element has the <code class="html">id</code> attribute.</li>
<li>An optional <code class="html"><span class="p">&lt;</span><span class="nt">figcaption</span><span class="p">&gt;</span></code> element containing a concise context-dependent caption may follow the <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> element within a <code class="html"><span class="p">&lt;</span><span class="nt">figure</span><span class="p">&gt;</span></code> element. This caption depends on the surrounding context, and is not necessarily (or even ideally) identical to the <code class="html"><span class="p">&lt;</span><span class="nt">img</span><span class="p">&gt;</span></code> elements <code class="html">alt</code> attribute.</li>
<li>All figure elements, regardless of positioning, have this CSS:
<figure><code class="css full"><span class="nt">figure</span> <span class="nt">img</span><span class="p">{</span>
<span class="k">display</span><span class="p">:</span> <span class="kc">block</span><span class="p">;</span>
@ -801,18 +801,19 @@ require_once('Core.php');
</section>
<section id="list-of-illustrations-the-loi">
<h2>List of Illustrations (the LoI)</h2>
<p>If an ebook has any illustrations that are <em>major structural components</em> of the work (even just one!), then the ebook includes an <code class="path">loi.xhtml</code> file at the end of the ebook. This file lists the illustrations in the ebook, along with a short caption or description. #. The LoI is an XHTML file located in <code class="path">./src/epub/text/loi.xhtml</code>.</p>
<p>If an ebook has any illustrations that are <em>major structural components</em> of the work (even just one!), then the ebook includes an <code class="path">loi.xhtml</code> file at the end of the ebook. This file lists the illustrations in the ebook, along with a short caption or description.</p>
<ol type="1">
<li>The LoI is an XHTML file located in <code class="path">./src/epub/text/loi.xhtml</code>.</li>
<li>The LoI file has the <code class="html">backmatter</code> semantic inflection.</li>
<li>The LoI only contains links to images that are major structural components of the work.
<ol type="1">
<li>An illustration is a major structural component if, for example: it is an illustration of events in the book, like a full-page drawing or end-of-chapter decoration; it is essential to the plot, like a diagram of a murder scene or a map; or it is a component of the text, like photographs in a documentary narrative.</li>
<li>An illustration is <em>not</em> a major structural components if, for example: it is a drawing used to represent a person's signature, like an X mark; it is an inline drawing representing text in alien languages; it is a drawing used as a layout element to illustrate forms, tables, or diagrams.</li>
<li>An illustration is <em>not</em> a major structural components if, for example: it is a drawing used to represent a persons signature, like an X mark; it is an inline drawing representing text in alien languages; it is a drawing used as a layout element to illustrate forms, tables, or diagrams.</li>
</ol>
</li>
<li>The LoI file contains a single <code class="html"><span class="p">&lt;</span><span class="nt">section</span> <span class="na">id</span><span class="o">=</span><span class="s">"loi"</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">"loi"</span><span class="p">&gt;</span></code> element, which in turn contains an <code class="html"><span class="p">&lt;</span><span class="nt">h2</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">"title"</span><span class="p">&gt;</span>List of Illustrations<span class="p">&lt;/</span><span class="nt">h2</span><span class="p">&gt;</span></code> element, followed by a <code class="html"><span class="p">&lt;</span><span class="nt">nav</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">"loi"</span><span class="p">&gt;</span></code> element containing an <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element, which in turn contains list items representing the images.</li>
<li>If an image listed in the LoI has a <code class="html"><span class="p">&lt;</span><span class="nt">figcaption</span><span class="p">&gt;</span></code> element, then that caption is used in the anchor text for that LoI entry. If not, the images <code class="html">alt</code> attribute is used. If the <code class="html"><span class="p">&lt;</span><span class="nt">figcaption</span><span class="p">&gt;</span></code> element is too long for a concise LoI entry, the <code class="html">alt</code> attribute is used instead.</li>
<li>Links to the images go directly to the image's corresponding <code class="html">id</code> hashes, not just the top of the containing file.</li>
<li>Links to the images go directly to the images corresponding <code class="html">id</code> hashes, not just the top of the containing file.</li>
</ol>
<section id="id5" class="no-numbering">
<h3>Examples</h3>
@ -924,4 +925,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -0,0 +1,25 @@
<?
require_once('Core.php');
?><?= Template::Header(['title' => 'The Standard Ebooks Manual', 'highlight' => 'contribute', 'manual' => true]) ?>
<main>
<article class="manual">
<section id="the-standard-ebooks-manual">
<h1>The Standard Ebooks Manual</h1>
<h2>Table of Contents</h2>
<ol type="1">
<li><a href="/manual/1.0.0/code-style">XHTML, CSS, and SVG Code Style</a></li>
<li><a href="/manual/1.0.0/filesystem">Filesystem Layout and File Naming Conventions</a></li>
<li><a href="/manual/1.0.0/the-structure-of-an-ebook">The Structure of an Ebook</a></li>
<li><a href="/manual/1.0.0/semantics">Semantics</a></li>
<li><a href="/manual/1.0.0/general-xhtml-patterns">General XHTML Patterns</a></li>
<li><a href="/manual/1.0.0/high-level-structural-patterns">High-Level Structural Patterns</a></li>
<li><a href="/manual/1.0.0/table-of-contents-patterns">Table of Contents Patterns</a></li>
<li><a href="/manual/1.0.0/typography">Typography</a></li>
<li><a href="/manual/1.0.0/metadata">Metadata</a></li>
<li><a href="/manual/1.0.0/art">Art</a></li>
</ol>
</section>
</article>
</main>
<?= Template::Footer() ?>

View file

@ -34,7 +34,7 @@ require_once('Core.php');
<li>Start with the URL-safe author of the work, as it appears on the titlepage. If there is more than one author, continue appending subsequent URL-safe authors, separated by an underscore. Do not alpha-sort the author name.</li>
<li>Append a forward slash, then the URL-safe title of the work. Do not alpha-sort the title.</li>
<li>If the work is translated, append a forward slash, then the URL-safe translator. If there is more than one translator, continue appending subsequent URL-safe translators, separated by an underscore. Do not alpha-sort translator names.</li>
<li>If the work is illustrated, append a foreward slash, then the URL-safe illustrator. If there is more than one illustrator, continue appending subsequent URL-safe illustrators, separated by an underscore. Do not alpha-sort illustrator names.</li>
<li>If the work is illustrated, append a forward slash, then the URL-safe illustrator. If there is more than one illustrator, continue appending subsequent URL-safe illustrators, separated by an underscore. Do not alpha-sort illustrator names.</li>
<li>Finally, <em>do not</em> append a trailing forward slash.</li>
</ul>
</section>
@ -128,7 +128,7 @@ require_once('Core.php');
</section>
<section id="se-subjects">
<h3>SE subjects</h3>
<p>Along with the Library of Congress categories, we include a custom list of SE subjects in the ebook metadata. Unlike Library of Congress categories, SE subjects are purposefully broad. Theyre more like the subject categories in a medium-sized bookstore, as opposed to the precise, detailed, heirarchal Library of Congress categories.</p>
<p>Along with the Library of Congress categories, we include a custom list of SE subjects in the ebook metadata. Unlike Library of Congress categories, SE subjects are purposefully broad. Theyre more like the subject categories in a medium-sized bookstore, as opposed to the precise, detailed, hierarchical Library of Congress categories.</p>
<p>Its the producers task to select appropriate SE subjects for the ebook. Usually just one or two of these categories will suffice.</p>
<section id="all-se-subjects">
<h4>All SE subjects</h4>
@ -170,7 +170,7 @@ require_once('Core.php');
<h3>The short description</h3>
<p>The <code class="html"><span class="p">&lt;</span><span class="nt">dc:description</span><span class="p">&gt;</span></code> element contains a short, single-sentence summary of the ebook.</p>
<ol type="1">
<li>The description is a single complete sentence ending in a period, not a sentence fragment or restatment of the title.</li>
<li>The description is a single complete sentence ending in a period, not a sentence fragment or restatement of the title.</li>
<li>The description is typogrified, i.e. it contains Unicode curly quotes, em-dashes, and the like.</li>
</ol>
</section>
@ -183,7 +183,7 @@ require_once('Core.php');
<li>The long description is in <em>escaped</em> HTML, with the HTML beginning on its own line after the <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"se:long-description"</span><span class="p">&gt;</span></code> element.
<aside class="tip">An easy way to escape HTML is to compose the long description in regular HTML, then insert it into the <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"se:long-description"</span><span class="p">&gt;</span></code> element surrounded by a <code class="html"><span class="cp">&lt;![CDATA[ ... ]]&gt;</span></code> element. Then, run the <code class="bash">se clean</code> tool, which will remove the <code class="html"><span class="cp">&lt;![CDATA[ ... ]]&gt;</span></code> element and escape the contained HTML.</aside>
</li>
<li>Long description HTML follows the <a href="/manual/1.0/code-style">code style conventions of this manual</a>.</li>
<li>Long description HTML follows the <a href="/manual/1.0.0/code-style">code style conventions of this manual</a>.</li>
<li>The long description element is directly followed by: <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"meta-auth"</span> <span class="na">refines</span><span class="o">=</span><span class="s">"#long-description"</span><span class="p">&gt;</span>https://standardebooks.org<span class="p">&lt;/</span><span class="nt">meta</span><span class="p">&gt;</span></code></li>
</ol>
</section>
@ -228,7 +228,7 @@ require_once('Core.php');
<h2>General contributor rules</h2>
<p>The following apply to all contributors, including the author(s), translator(s), and illustrator(s).</p>
<ol type="1">
<li>If there is exactly one contributor in a set (for example, only one author, or only one translator) then the <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"display-seq"</span><span class="p">&gt;</span></code> element is ommitted for that contributor.</li>
<li>If there is exactly one contributor in a set (for example, only one author, or only one translator) then the <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"display-seq"</span><span class="p">&gt;</span></code> element is omitted for that contributor.</li>
<li>If there is more than one contributor in a set (for example, multiple authors, or translators) then the <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"display-seq"</span><span class="p">&gt;</span></code> element is specified for each contributor, with a value equal to their position in the SE identifier.</li>
<li>The epub standard specifies that in a set of contributors, if at least one has the <code class="html">display-seq</code> attribute, then other contributors in the set without the <code class="html">display-seq</code> attribute are ignored. For SE purposes, this also means they will be excluded from the SE identifier.</li>
<li>By SE convention, contributors with <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"display-seq"</span><span class="p">&gt;</span>0<span class="p">&lt;/</span><span class="nt">meta</span><span class="p">&gt;</span></code> are excluded from the SE identifier.</li>
@ -266,7 +266,7 @@ require_once('Core.php');
<h2>The translator metadata block</h2>
<ol type="1">
<li>If the work is translated, the <code class="html"><span class="p">&lt;</span><span class="nt">dc:contributor</span> <span class="na">id</span><span class="o">=</span><span class="s">"translator"</span><span class="p">&gt;</span></code> metadata block follows the author metadata block.</li>
<li>If there is more than one translator, then the first translator's <code class="html">id</code> is <code class="html">translator-1</code>, the second <code class="html">translator-2</code>, and so on.</li>
<li>If there is more than one translator, then the first translators <code class="html">id</code> is <code class="html">translator-1</code>, the second <code class="html">translator-2</code>, and so on.</li>
<li>Each block is identical to the author metadata block, but with <code class="html"><span class="p">&lt;</span><span class="nt">dc:contributor</span> <span class="na">id</span><span class="o">=</span><span class="s">"translator"</span><span class="p">&gt;</span></code> instead of <code class="html"><span class="p">&lt;</span><span class="nt">dc:creator</span> <span class="na">id</span><span class="o">=</span><span class="s">"author"</span><span class="p">&gt;</span></code>.</li>
<li>The <a href="http://www.loc.gov/marc/relators/relacode.html">MARC relator tag</a> is <code class="html">trl</code>: <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"role"</span> <span class="na">refines</span><span class="o">=</span><span class="s">"#translator"</span> <span class="na">scheme</span><span class="o">=</span><span class="s">"marc:relators"</span><span class="p">&gt;</span>trl<span class="p">&lt;/</span><span class="nt">meta</span><span class="p">&gt;</span></code>.</li>
<li>Translators often annotate the work; if this is the case, the additional <a href="http://www.loc.gov/marc/relators/relacode.html">MARC relator tag</a> <code class="html">ann</code> is included in a separate <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"role"</span> <span class="na">refines</span><span class="o">=</span><span class="s">"#translator"</span> <span class="na">scheme</span><span class="o">=</span><span class="s">"marc:relators"</span><span class="p">&gt;</span></code> element.</li>
@ -276,7 +276,7 @@ require_once('Core.php');
<h2>The illustrator metadata block</h2>
<ol type="1">
<li>If the work is illustrated by a person who is not the author, the illustrator metadata block follows.</li>
<li>If there is more than one illustrator, the first illustrator's <code class="html">id</code> is <code class="html">illustrator-1</code>, the second <code class="html">illustrator-2</code>, and so on.</li>
<li>If there is more than one illustrator, the first illustrators <code class="html">id</code> is <code class="html">illustrator-1</code>, the second <code class="html">illustrator-2</code>, and so on.</li>
<li>Each block is identical to the author metadata block, but with <code class="html"><span class="p">&lt;</span><span class="nt">dc:contributor</span> <span class="na">id</span><span class="o">=</span><span class="s">"illustrator"</span><span class="p">&gt;</span></code> instead of <code class="html"><span class="p">&lt;</span><span class="nt">dc:creator</span> <span class="na">id</span><span class="o">=</span><span class="s">"author"</span><span class="p">&gt;</span></code>.</li>
<li>The <a href="http://www.loc.gov/marc/relators/relacode.html">MARC relator tag</a> is <code class="html">ill</code>: <code class="html"><span class="p">&lt;</span><span class="nt">meta</span> <span class="na">property</span><span class="o">=</span><span class="s">"role"</span> <span class="na">refines</span><span class="o">=</span><span class="s">"#illustrator"</span> <span class="na">scheme</span><span class="o">=</span><span class="s">"marc:relators"</span><span class="p">&gt;</span>ill<span class="p">&lt;/</span><span class="nt">meta</span><span class="p">&gt;</span></code>.</li>
</ol>
@ -347,4 +347,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -16,7 +16,7 @@ require_once('Core.php');
That demmed, elusive Pimpernel?<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span></code></figure>
<p>While that snipped might <em>visually</em> present the text as a paragraph followed by a quotation of verse, the actual HTML tells us nothing about <em>what these lines of text actually are</em>.</p>
<p>Compare the above snippet to this next snippet, which renders almost identically but uses semantically-correct tags and epub's semantic inflection to tell us <em>what the text is</em>:</p>
<p>Compare the above snippet to this next snippet, which renders almost identically but uses semantically-correct tags and epubs semantic inflection to tell us <em>what the text is</em>:</p>
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>“All done in the tying of a cravat, Sir Percy had declared to his clique of admirers.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">blockquote</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:poem&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>
@ -71,7 +71,7 @@ require_once('Core.php');
<li><code class="html"><span class="p">&lt;</span><span class="nt">i</span><span class="p">&gt;</span></code>: Text rendered in italics, without any explicit semantic meaning. Because <code class="html"><span class="p">&lt;</span><span class="nt">i</span><span class="p">&gt;</span></code> lacks semantic meaning, the <code class="html">epub:type</code> attribute is added with appropriate semantic inflection to describe the contents of the tag.
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>The <span class="p">&lt;</span><span class="nt">abbr</span> <span class="na">class</span><span class="o">=</span><span class="s">&quot;initialism&quot;</span><span class="p">&gt;</span>HMS<span class="p">&lt;/</span><span class="nt">abbr</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">i</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;se:name.vessel.ship&quot;</span><span class="p">&gt;</span>Bounty<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span>.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li><code class="html"><span class="p">&lt;</span><span class="nt">b</span><span class="p">&gt;</span></code>: Text rendered in small caps, without any explicit semantic meaning. Because <code class="html"><span class="p">&lt;</span><span class="nt">i</span><span class="p">&gt;</span></code> lacks semantic meaning, the <code class="html">epub:type</code> attribute is added with appropriate semantic inflection to describe the contents of the tag.</li>
<li><code class="html"><span class="p">&lt;</span><span class="nt">b</span><span class="p">&gt;</span></code>: Text rendered in small caps, without any explicit semantic meaning. Because <code class="html"><span class="p">&lt;</span><span class="nt">b</span><span class="p">&gt;</span></code> lacks semantic meaning, the <code class="html">epub:type</code> attribute is added with appropriate semantic inflection to describe the contents of the tag.</li>
<li><code class="html"><span class="p">&lt;</span><span class="nt">span</span><span class="p">&gt;</span></code>: Plain inline text that requires specific styling or semantic meaning that cannot be achieved with any other semantically meaningful inline tag. Typically used in conjunction with a <code class="html">class</code> or <code class="html">epub:type</code> attribute.</li>
</ol>
</section>
@ -90,7 +90,7 @@ require_once('Core.php');
<li>If the z3998 vocabulary doesnt have an appropriate keyword, the <a href="/vocab/1.0">Standard Ebooks vocabulary</a> is consulted next.
<p>Keywords using this vocabulary are preceded by the <code class="html">se</code> namespace.</p>
<p>Unlike other vocabularies, the Standard Ebooks vocabulary is organized hierarchically. A complete vocabulary entry begins with the root vocabulary entry, with subsequent children separated by <code class="html">.</code>.</p>
<figure><code class="html full">The <span class="p">&lt;</span><span class="nt">i</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;se:name.vessel.ship&quot;</span><span class="p">&gt;&lt;</span><span class="nt">abbr</span> <span class="na">class</span><span class="o">=</span><span class="s">&quot;initialism&quot;</span><span class="p">&gt;</span>HMS<span class="p">&lt;/</span><span class="nt">abbr</span><span class="p">&gt;</span> Bounty<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span>.</code></figure>
<figure><code class="html full">The <span class="p">&lt;</span><span class="nt">abbr</span> <span class="na">class</span><span class="o">=</span><span class="s">&quot;initialism&quot;</span><span class="p">&gt;</span>HMS<span class="p">&lt;/</span><span class="nt">abbr</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">i</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;se:name.vessel.ship&quot;</span><span class="p">&gt;</span>Bounty<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span>.</code></figure>
</li>
<li>The <code class="html">epub:type</code> attribute can have multiple keywords separated by spaces, even if the vocabularies are different.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">section</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;chapter z3998:letter&quot;</span><span class="p">&gt;</span>...<span class="p">&lt;/</span><span class="nt">section</span><span class="p">&gt;</span></code></figure>
@ -113,4 +113,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -6,18 +6,18 @@ require_once('Core.php');
<section data-start-at="7" id="table-of-contents-patterns">
<h1>Table of Contents Patterns</h1>
<p>The table of contents (the ToC) is not viewable as a page in the ebook's reading order. Instead, the reader's ereading system displays the ToC as part of its reading interface.</p>
<p>The table of contents (the ToC) is not viewable as a page in the ebooks reading order. Instead, the readers ereading system displays the ToC as part of its reading interface.</p>
<p>These rules outline how to structure the ToC. Typically, the output of <code class="bash">se print-toc</code> constructs ToCs according to these rules, without further changes being necessary.</p>
<section id="the-toc-nav-element">
<h2>The ToC <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> element</h2>
<ol type="1">
<li>The first child of the Toc's <code class="html"><span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;</span></code> tag is a <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> element with the semantic inflection <cite>toc</cite>.</li>
<li>The first child of the Tocs <code class="html"><span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;</span></code> tag is a <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> element with the semantic inflection <cite>toc</cite>.</li>
<li>The first child of the <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> element is a <code class="html"><span class="p">&lt;</span><span class="nt">h2</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">"title"</span><span class="p">&gt;</span>Table of Contents<span class="p">&lt;/</span><span class="nt">h2</span><span class="p">&gt;</span></code> element.</li>
<li>The second child of the <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> element is an <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element representing the items in the Table of Contents.</li>
</ol>
<section id="the-top-level-ol-element">
<h3>The top-level <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element</h3>
<p>The <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> element's top-level <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element contains a list of items in the Table of Contents.</p>
<p>The <code class="html"><span class="p">&lt;</span><span class="nt">nav</span><span class="p">&gt;</span></code> elements top-level <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element contains a list of items in the Table of Contents.</p>
<ol type="1">
<li>The first child is a link to the titlepage.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>
@ -39,7 +39,7 @@ require_once('Core.php');
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/uncopyright.xhtml&quot;</span><span class="p">&gt;</span>Uncopyright<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span></code></figure>
</li>
<li>In books with half title pages, the half title page is listed in the ToC and the next sibling is an <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element containing the book's contents.
<li>In books with half title pages, the half title page is listed in the ToC and the next sibling is an <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element containing the books contents.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/halftitle.xhtml&quot;</span><span class="p">&gt;</span>The Moon Pool<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span>
@ -56,7 +56,7 @@ require_once('Core.php');
<h3><code class="html"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span></code> descendents</h3>
<ol type="1">
<li>Each <code class="html"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span></code> contains an <code class="html"><span class="p">&lt;</span><span class="nt">a</span><span class="p">&gt;</span></code> tag pointing to a file or hash, and optionally also contains an <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element representing a nested series of ToC items.</li>
<li>If an <code class="html"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span></code> element contains a nested <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element, that <code class="html"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span></code>'s first child is an <code class="html"><span class="p">&lt;</span><span class="nt">a</span><span class="p">&gt;</span></code> element that points to the beginning of that section.
<li>If an <code class="html"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span></code> element contains a nested <code class="html"><span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span></code> element, that <code class="html"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span></code>s first child is an <code class="html"><span class="p">&lt;</span><span class="nt">a</span><span class="p">&gt;</span></code> element that points to the beginning of that section.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/halftitle.xhtml&quot;</span><span class="p">&gt;</span>Sybil<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span>
@ -89,29 +89,29 @@ require_once('Core.php');
<section id="a-descendents">
<h3><code class="html"><span class="p">&lt;</span><span class="nt">a</span><span class="p">&gt;</span></code> descendents</h3>
<ol type="1">
<li>Chapters without titles are represented by their Roman ordinal, without the word <code class="html">Chapter</code>:
<li>Chapters without titles are represented by their Roman ordinal, without the word <code class="html">Chapter</code>.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;title z3998:roman&quot;</span><span class="p">&gt;</span>XI<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>Chapters with titles are represented by their Roman ordinal, followed by a colon and a space, followed by the chapter title:
<li>Chapters with titles are represented by their Roman ordinal, followed by a colon and a space, followed by the chapter title.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/chapter-3.xhtml&quot;</span><span class="p">&gt;&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:roman&quot;</span><span class="p">&gt;</span>III<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>: The Moon Rock<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>Chapters with unique identifiers (i.e. not <code class="html">Chapter</code>, but something unique to the style of the book, like <code class="html">Book</code> or <code class="html">Stave</code>), include that unique identifier in the <code class="html"><span class="p">&lt;</span><span class="nt">a</span><span class="p">&gt;</span></code> element:
<li>Chapters with unique identifiers (i.e. not <code class="html">Chapter</code>, but something unique to the style of the book, like <code class="html">Book</code> or <code class="html">Stave</code>), include that unique identifier in the <code class="html"><span class="p">&lt;</span><span class="nt">a</span><span class="p">&gt;</span></code> element.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/chapter-1.xhtml&quot;</span><span class="p">&gt;</span>Stave <span class="p">&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:roman&quot;</span><span class="p">&gt;</span>I<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>: Marleys Ghost<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>High-level sections (like parts or divisions) without titles are represented by their identifier (like <code class="html">Book</code> or <code class="html">Part</code>), followed by their Roman ordinal:
<li>High-level sections (like parts or divisions) without titles are represented by their identifier (like <code class="html">Book</code> or <code class="html">Part</code>), followed by their Roman ordinal.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/book-1.xhtml&quot;</span><span class="p">&gt;</span>Book <span class="p">&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:roman&quot;</span><span class="p">&gt;</span>I<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>High-level sections (like parts or divisions) with titles include the title:
<li>High-level sections (like parts or divisions) with titles include the title.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/book-10.xhtml&quot;</span><span class="p">&gt;</span>Book <span class="p">&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:roman&quot;</span><span class="p">&gt;</span>X<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>: The Boys<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>Sections that are not chapters do not include their subtitles in the ToC:
<li>Sections that are not chapters do not include their subtitles in the ToC.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/epilogue.xhtml&quot;</span><span class="p">&gt;</span>Epilogue: A Morning Call<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/epilogue.xhtml&quot;</span><span class="p">&gt;</span>Epilogue<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>High-level sections (like parts or divisions) with titles include the title:
<li>High-level sections (like parts or divisions) with titles include the title.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/book-10.xhtml&quot;</span><span class="p">&gt;</span>Book <span class="p">&lt;</span><span class="nt">span</span> <span class="na">epub:type</span><span class="o">=</span><span class="s">&quot;z3998:roman&quot;</span><span class="p">&gt;</span>X<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>: The Boys<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></code></figure>
</li>
<li>Entries for half title pages do not include the subtitle:
<li>Entries for half title pages do not include the subtitle.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;text/halftitle.xhtml&quot;</span><span class="p">&gt;</span>His Last Bow<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">ol</span><span class="p">&gt;</span>
@ -155,4 +155,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -8,10 +8,10 @@ require_once('Core.php');
<h1>The Structure of an Ebook</h1>
<!-- An introduction is required for the data-start-at class to take effect. -->
<p>Books consist of three major partitions: Front Matter, Body Matter, and Back Matter.</p>
<p>These terms become important when building the Table of Contents (ToC). The Landmarks section of the ToC requires items to be labeled with the appropriate partition identifier. See <a href="/manual/1.0/table-of-contents-patterns.html">ToC Patterns</a> for more information about the ToC.</p>
<p>These terms become important when building the Table of Contents (ToC). The Landmarks section of the ToC requires items to be labeled with the appropriate partition identifier. See <a href="/manual/1.0.0/table-of-contents-patterns.html">ToC Patterns</a> for more information about the ToC.</p>
<section id="front-matter">
<h2>Front matter</h2>
<p>Front matter is material that appears before to the main content of the work. It includes such items as a dedication, an epigraph, an introduction, and so on.</p>
<p>Front matter is material that appears before the main content of the work. It includes such items as a dedication, an epigraph, an introduction, and so on.</p>
<section id="cover">
<h3>Cover</h3>
<p>The cover presents the outer appearance of the book, usually consisting of an image, the title of the book and the authors name. For Standard Ebooks productions, the cover is an SVG image generated from template that combines the book title and author, and a background image. The <code class="path">se build-images</code> tool generates the cover image used for distribution.</p>
@ -31,7 +31,7 @@ require_once('Core.php');
<section id="epigraph">
<h3>Epigraph</h3>
<p>A quotation or poem at the start of a book which may set the mood or inspire thoughts about the work to come.</p>
<p>If the epigraph is a poem or quotation from poetry, it must follow the standards for verse described in <a href="/manual/1.0/high-level-structural-patterns.html">High-Level Structural Patterns</a></p>
<p>If the epigraph is a poem or quotation from poetry, it must follow the standards for verse described in <a href="/manual/1.0.0/high-level-structural-patterns.html">High-Level Structural Patterns</a></p>
</section>
<section id="acknowledgements">
<h3>Acknowledgements</h3>
@ -59,9 +59,9 @@ require_once('Core.php');
</section>
<section id="table-of-contents">
<h3>Table of Contents</h3>
<p>Also known as the ToC. The Table of Contents lists the main headings in the book. In traditionally printed books, the table of contents is part of the front matter of the book.</p>
<p>Also known as the ToC. The Table of Contents lists the main headings in the book. In traditionally printed books, the table of contents is part of the front matter of the book.</p>
<ol type="1">
<li>In Standard Ebooks productions, the table of contents is ommitted from the ebook's spine and is instead presented to the reader via their ereaders ToC feature.</li>
<li>In Standard Ebooks productions, the table of contents is omitted from the ebooks spine and is instead presented to the reader via their ereaders ToC feature.</li>
</ol>
</section>
</section>
@ -106,4 +106,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -10,7 +10,7 @@ require_once('Core.php');
<h2>Section titles and ordinals</h2>
<ol type="1">
<li>Section ordinals in the body text are set in Roman numerals.</li>
<li>Section ordinals in a file's <code class="html"><span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span></code> element are set in Arabic numerals.
<li>Section ordinals in a files <code class="html"><span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span></code> element are set in Arabic numerals.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Chapter VII<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Chapter 7<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;</span></code></figure>
</li>
@ -39,8 +39,8 @@ require_once('Core.php');
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>“Look at <span class="p">&lt;</span><span class="nt">em</span><span class="p">&gt;</span>that<span class="p">&lt;/</span><span class="nt">em</span><span class="p">&gt;</span>! she shouted.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>When an entire clause is italicized, trailing punctuation <em>is</em> italicized, <em>unless</em> that trailing punctuation is a comma at the end of dialog.
<p class="html">&lt;p&gt;&lt;em&gt;Charge!&lt;/em&gt; she shouted.&lt;/p&gt;</p>
<p class="html">&lt;p&gt;&lt;em&gt;But I want to&lt;/em&gt;, she said.&lt;/p&gt;</p>
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span><span class="p">&lt;</span><span class="nt">em</span><span class="p">&gt;</span>Charge!<span class="p">&lt;/</span><span class="nt">em</span><span class="p">&gt;</span> she shouted.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span><span class="p">&lt;</span><span class="nt">em</span><span class="p">&gt;</span>But I want to<span class="p">&lt;/</span><span class="nt">em</span><span class="p">&gt;</span>, she said.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>Words written to be read as sounds are italicized with <code class="html"><span class="p">&lt;</span><span class="nt">i</span><span class="p">&gt;</span></code>.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>He could hear the dog barking: <span class="p">&lt;</span><span class="nt">i</span><span class="p">&gt;</span>Ruff, ruff, ruff!<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
@ -72,7 +72,7 @@ require_once('Core.php');
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>The <span class="p">&lt;</span><span class="nt">i</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>corps de ballet<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span> was flung into consternation.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>Foreign words that are proper names, or are in proper names, are not italicized, unless the name itself would be italicized according to the rules for italicizing or quoting names and titles. Such words are wrapped in a <code class="html"><span class="p">&lt;</span><span class="nt">span</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">"LANGUAGE"</span><span class="p">&gt;</span></code> element, to assist screen readers with pronunciation.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>She got off the metro at the <span class="p">&lt;</span><span class="nt">i</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>Place de Clichy<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span> stop, next to the <span class="p">&lt;</span><span class="nt">i</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>PLe Bon Petit Déjeuner restaurant<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span>.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>She got off the metro at the <span class="p">&lt;</span><span class="nt">i</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>Place de Clichy<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span> stop, next to the <span class="p">&lt;</span><span class="nt">i</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>Le Bon Petit Déjeuner restaurant<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span>.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span><span class="p">&lt;</span><span class="nt">i</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span> est le métro?<span class="p">&lt;/</span><span class="nt">i</span><span class="p">&gt;</span> he asked, and she pointed to <span class="p">&lt;</span><span class="nt">span</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>Place de Clichy<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>, next to the <span class="p">&lt;</span><span class="nt">span</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">&quot;fr&quot;</span><span class="p">&gt;</span>Le Bon Petit Déjeuner<span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span> restaurant.</code></figure>
</li>
<li>If certain foreign words are used so frequently in the text that italicizing them at each instance would be distracting to the reader, then only the first instance is italicized. Subsequent instances are wrapped in a <code class="html"><span class="p">&lt;</span><span class="nt">span</span> <span class="na">xml:lang</span><span class="o">=</span><span class="s">"LANGUAGE"</span><span class="p">&gt;</span></code> element.</li>
@ -118,7 +118,7 @@ require_once('Core.php');
<ul>
<li>Periodicals like magazines, newspapers, and journals.</li>
<li>Publications like books, novels, plays, and pamphlets, <em>except</em> “holy texts, like the Bible or books within the Bible.</li>
<li>Long poems and ballads, like the Iliad, that are book-length.</li>
<li>Long poems and ballads, like the <a href="/ebooks/homer/the-iliad/william-cullen-bryant">Iliad</a>, that are book-length.</li>
<li>Long musical compositions or audio, like operas, music albums, or radio shows.</li>
<li>Long visual art, like films or a TV show series.</li>
<li>Visual art, like paintings or sculptures.</li>
@ -165,7 +165,7 @@ require_once('Core.php');
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>The sign read <span class="p">&lt;</span><span class="nt">b</span><span class="p">&gt;</span>Bobs Restaurant<span class="p">&lt;/</span><span class="nt">b</span><span class="p">&gt;</span>.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span><span class="p">&lt;</span><span class="nt">strong</span><span class="p">&gt;</span>Charge!<span class="p">&lt;/</span><span class="nt">strong</span><span class="p">&gt;</span> he cried.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>When something is addressed as an <cite>apostrophe &lt;https://www.merriam-webster.com/dictionary/apostrophe#dictionary-entry-2&gt;</cite>.., <code class="html">O</code> is capitalized.
<li>When something is addressed as an <a href="https://www.merriam-webster.com/dictionary/apostrophe#dictionary-entry-2">apostrophe</a>, <code class="html">O</code> is capitalized.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>I carried the bodies into the sea, O walker in the sea!<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>Titlecasing follows the formula used in the <code class="bash">se build-images</code> tool.</li>
@ -221,7 +221,7 @@ require_once('Core.php');
<li>Ampersands in names of things, like firms, are surrounded by no-break spaces.
<figure><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>The firm of Hawkins<span class="ws">nbsp</span><span class="ni">&amp;amp;</span><span class="ws">nbsp</span>Harker.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>Some older works include spaces in common contrations; these spaces are removed.
<li>Some older works include spaces in common contractions; these spaces are removed.
<!-- See https://english.stackexchange.com/questions/217821/space-before-apostrophe -->
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Would nt it be nice to go out? It s such a nice day.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Wouldnt it be nice to go out? Its such a nice day.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
@ -245,7 +245,7 @@ require_once('Core.php');
<h3>Ellipses</h3>
<ol type="1">
<li>The ellipses glyph (<code class="utf"></code> or u+2026) is used for ellipses, instead of consecutive or spaced periods.</li>
<li>When ellipses are used as suspension points (for example, to indicate dialog that pauses or trails off), the ellipses is not preceded by a comma.
<li>When ellipses are used as suspension points (for example, to indicate dialog that pauses or trails off), the ellipses are not preceded by a comma.
<p>Ellipses used to indicate missing words in a quotation require keeping surrounding punctuation, including commas, as that punctuation is in the original quotation.</p>
</li>
<li>A hair space (u+200A) glyph is located <em>before</em> all ellipses that are not directly preceded by punctuation, or that are directly preceded by an em-dash or a two- or three-em-dash.</li>
@ -339,7 +339,7 @@ require_once('Core.php');
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>I need 1/4 cup of sugar.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>I need ¼ cup of sugar.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>If a fraction doesn't have a corresponding Unicode glyph, it is composed using the fraction slash Unicode glyph (<code class="utf"></code> or u+2044) and superscript/subscript Unicode numbers. See <a href="https://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts">this Wikipedia entry for more details</a>.
<li>If a fraction doesnt have a corresponding Unicode glyph, it is composed using the fraction slash Unicode glyph (<code class="utf"></code> or u+2044) and superscript/subscript Unicode numbers. See <a href="https://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts">this Wikipedia entry for more details</a>.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Roughly 6/10 of a mile.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Roughly ⁶⁄₁₀ of a mile.<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
@ -367,7 +367,7 @@ require_once('Core.php');
<section id="math">
<h3>Math</h3>
<ol type="1">
<li>In works that are not math-oriented or that dont't have a significant amount of mathematical equations, equations are set using regular HTML and Unicode.
<li>In works that are not math-oriented or that dontt have a significant amount of mathematical equations, equations are set using regular HTML and Unicode.
<ol type="1">
<li>Operators and operands in mathematical equations are separated by a space.
<figure class="wrong"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>62+2=6<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
@ -509,7 +509,7 @@ require_once('Core.php');
<span class="p">&lt;/</span><span class="nt">m:math</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></code></figure>
</li>
<li>If a MathML variable includes an overline, it is set by combining the variable's normal Unicode glyph and the Unicode overline glyph (<code class="utf"></code> or u+203E) in a <code class="html"><span class="p">&lt;</span><span class="nt">m:mover</span><span class="p">&gt;</span></code> element. However in the <code class="html">alttext</code> attribute, the Unicode overline combining mark (u+0305) is used to represent the overline in Unicode.
<li>If a MathML variable includes an overline, it is set by combining the variables normal Unicode glyph and the Unicode overline glyph (<code class="utf"></code> or u+203E) in a <code class="html"><span class="p">&lt;</span><span class="nt">m:mover</span><span class="p">&gt;</span></code> element. However in the <code class="html">alttext</code> attribute, the Unicode overline combining mark (u+0305) is used to represent the overline in Unicode.
<figure class="corrected"><code class="html full"><span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">m:math</span> <span class="na">alttext</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">m:mover</span><span class="p">&gt;</span>
@ -527,13 +527,13 @@ require_once('Core.php');
<section id="latinisms">
<h2>Latinisms</h2>
<ul>
<li><a href="/manual/1.0/typography#8.11">See here for times</a>.</li>
<li><a href="/manual/1.0.0/typography#8.11">See here for times</a>.</li>
</ul>
<ol type="1">
<li>Latinisms (except sic) that can be found in a modern dictionary are not italicized. Examples include e.g., i.e., ad hoc, viz., ibid., etc.. The exception is sic, which is always italicized.</li>
<li>Whole passages of Latin language and Latinisms that arent found in a modern dictionary are italicized.</li>
<li>&amp;c; is not used, and is replaced with “etc.</li>
<li>For “Ibid., <a href="/manual/1.0/high-level-structural-patterns#6.9">see Endnotes</a>.</li>
<li>For “Ibid., <a href="/manual/1.0.0/high-level-structural-patterns#6.9">see Endnotes</a>.</li>
<li>Latinisms that are abbreviations are set in lowercase with periods between words and no spaces between them, except BC, AD, BCE, and CE, which are set without periods, in small caps, and wrapped with <code class="html"><span class="p">&lt;</span><span class="nt">abbr</span> <span class="na">class</span><span class="o">=</span><span class="s">"era"</span><span class="p">&gt;</span></code>:
<figure><code class="css full"><span class="nt">abbr</span><span class="p">.</span><span class="nc">era</span><span class="p">{</span>
<span class="k">font-variant</span><span class="p">:</span> <span class="kc">all-small-caps</span><span class="p">;</span>
@ -545,9 +545,9 @@ require_once('Core.php');
<section id="initials-and-abbreviations">
<h2>Initials and abbreviations</h2>
<ul>
<li><a href="/manual/1.0/typography#8.13">See here for temperatures</a>.</li>
<li><a href="/manual/1.0/typography#8.11">See here for times</a>.</li>
<li><a href="/manual/1.0/typography#8.9">See here for Latinisms including BC and AD</a>.</li>
<li><a href="/manual/1.0.0/typography#8.13">See here for temperatures</a>.</li>
<li><a href="/manual/1.0.0/typography#8.11">See here for times</a>.</li>
<li><a href="/manual/1.0.0/typography#8.9">See here for Latinisms including BC and AD</a>.</li>
</ul>
<ol type="1">
<li>“OK” is set without periods or spaces. It is not an abbreviation.</li>
@ -672,7 +672,7 @@ require_once('Core.php');
</section>
<section id="morse-code">
<h2>Morse Code</h2>
<p>Any Morse code that appears in a book will have to be changed to fit SE's format.</p>
<p>Any Morse code that appears in a book will have to be changed to fit Standard Ebooks format.</p>
<section id="american-morse-code">
<h3>American Morse Code</h3>
<ol type="1">
@ -694,4 +694,4 @@ require_once('Core.php');
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -1,37 +1,6 @@
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<title>Style Manual | Standard Ebooks</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/core.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/manual.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/monokai.css" type="text/css" media="screen">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#394451">
<meta name="theme-color" content="#394451">
<meta property="og:title" content="The Standard Ebooks Structure and Semantics Manual" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://standardebooks.org" />
<meta property="og:image" content="https://standardebooks.org/images/logo.png" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@standardebooks">
<meta name="twitter:creator" content="@standardebooks">
</head>
<body>
<header>
<a href="/">Standard Ebooks</a>
<nav>
<ul>
<li><a href="/ebooks/">Ebooks</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/contribute/" class="highlighted">Get Involved</a></li>
</ul>
</nav>
</header>
<?
require_once('Core.php');
?><?= Template::Header(['title' => '. Uncategorized art books - The Standard Ebooks Manual', 'highlight' => 'contribute', 'manual' => true]) ?>
<main>
<article class="manual">
@ -118,4 +87,4 @@
</section>
</article>
</main>
<?= Template::Footer() ?>
<?= Template::Footer() ?>

View file

@ -1,25 +0,0 @@
<?
require_once('Core.php');
?><?= Template::Header(['title' => 'The Standard Ebooks Manual', 'highlight' => 'contribute']) ?>
<main>
<article class="manual">
<section id="the-standard-ebooks-manual">
<h1>The Standard Ebooks Manual</h1>
<h2>Table of Contents</h2>
<ol type="1">
<li><a href="/manual/1.0/code-style">XHTML, CSS, and SVG Code Style</a></li>
<li><a href="/manual/1.0/filesystem">Filesystem Layout and File Naming Conventions</a></li>
<li><a href="/manual/1.0/the-structure-of-an-ebook">The Structure of an Ebook</a></li>
<li><a href="/manual/1.0/semantics">Semantics</a></li>
<li><a href="/manual/1.0/general-xhtml-patterns">General XHTML Patterns</a></li>
<li><a href="/manual/1.0/high-level-structural-patterns">High-Level Structural Patterns</a></li>
<li><a href="/manual/1.0/table-of-contents-patterns">Table of Contents Patterns</a></li>
<li><a href="/manual/1.0/typography">Typography</a></li>
<li><a href="/manual/1.0/metadata">Metadata</a></li>
<li><a href="/manual/1.0/art">Art</a></li>
</ol>
</section>
</article>
</main>
<?= Template::Footer() ?>