E-books erstellen: Noch mehr aufräumen, sections.
This commit is contained in:
parent
4ca6275948
commit
bf7aee663a
@ -11,11 +11,6 @@ tags:
|
|||||||
toc: true
|
toc: true
|
||||||
---
|
---
|
||||||
|
|
||||||
:source-highlighter: pygments
|
|
||||||
:idprefix:
|
|
||||||
:experimental: true
|
|
||||||
:toc:
|
|
||||||
:toclevels: 2
|
|
||||||
:note-caption: pass:[<abbr title="Anmerkung">Anm.</abbr>]
|
:note-caption: pass:[<abbr title="Anmerkung">Anm.</abbr>]
|
||||||
:tip-caption: Tipp
|
:tip-caption: Tipp
|
||||||
:important-caption: Wichtig
|
:important-caption: Wichtig
|
||||||
@ -35,6 +30,13 @@ toc: true
|
|||||||
:url-pandoc: https://pandoc.org/
|
:url-pandoc: https://pandoc.org/
|
||||||
:url-libreoffice-handbuch: https://de.libreoffice.org/get-help/documentation/
|
:url-libreoffice-handbuch: https://de.libreoffice.org/get-help/documentation/
|
||||||
:url-regex: https://www.keycdn.com/support/regex-cheatsheet
|
:url-regex: https://www.keycdn.com/support/regex-cheatsheet
|
||||||
|
:url-epub-structure: https://idpf.github.io/epub-vocabs/structure/
|
||||||
|
:url-aria-roles: https://www.accessiblepublishing.ca/epub-semantic-aria-roles/#ARIA
|
||||||
|
:url-epub-aria: https://idpf.github.io/epub-guides/epub-aria-authoring/
|
||||||
|
|
||||||
|
// Die suchen/ersetzen liste sieht sonst scheußlich aus.
|
||||||
|
[pass]
|
||||||
|
<style>li {text-align: left; }</style>
|
||||||
|
|
||||||
Als ich anfing, e-books zu bauen, fand ich leider keine guten anleitungen, die
|
Als ich anfing, e-books zu bauen, fand ich leider keine guten anleitungen, die
|
||||||
mir schritt für schritt erklären, was ich tun soll. Ich musste mir alles mühsam
|
mir schritt für schritt erklären, was ich tun soll. Ich musste mir alles mühsam
|
||||||
@ -51,10 +53,11 @@ textverabeitungsprogramm deiner wahl (zum beispiel
|
|||||||
link:{url-libreoffice}[LibreOffice], link:{url-gedit}[gedit] oder
|
link:{url-libreoffice}[LibreOffice], link:{url-gedit}[gedit] oder
|
||||||
link:{url-kate}[Kate]) und entweder link:{url-calibre}[Calibre] oder
|
link:{url-kate}[Kate]) und entweder link:{url-calibre}[Calibre] oder
|
||||||
link:{url-sigil}[Sigil]. Alle diese programme sollten über die paketverwaltung
|
link:{url-sigil}[Sigil]. Alle diese programme sollten über die paketverwaltung
|
||||||
deiner Linux-distribution verfügbar sein.
|
deiner Linux-distribution verfügbar sein. Englischkenntnisse sind von vorteil,
|
||||||
|
da es weitergehende informationen häufig nur auf englisch gibt.
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
Ich konzentriere mich hier auf LibreOffice und Calibre, andere programme und
|
Ich konzentriere mich hier auf *LibreOffice* und *Calibre*, andere programme und
|
||||||
methoden behandle ich nur am rande. Auf Desktop-Publishing programme kann ich
|
methoden behandle ich nur am rande. Auf Desktop-Publishing programme kann ich
|
||||||
leider nicht eingehen, weil ich da noch keine ahnung von habe. LaTeX muss auch
|
leider nicht eingehen, weil ich da noch keine ahnung von habe. LaTeX muss auch
|
||||||
außen vor bleiben, um den rahmen nicht zu sprengen.
|
außen vor bleiben, um den rahmen nicht zu sprengen.
|
||||||
@ -66,10 +69,11 @@ dateiformat nachzudenken. Unterschiedliche dateiformate lassen sich
|
|||||||
unterschiedlich gut in e-books umzuwandeln. link:{url-odt}[ODT]-dateien (Wie sie
|
unterschiedlich gut in e-books umzuwandeln. link:{url-odt}[ODT]-dateien (Wie sie
|
||||||
LibreOffice schreibt) eignen sich gut. Aber auch reine textformate wie
|
LibreOffice schreibt) eignen sich gut. Aber auch reine textformate wie
|
||||||
AsciiDocfootnote:[Um AsciiDoc in ein e-book umzuwandeln, wird
|
AsciiDocfootnote:[Um AsciiDoc in ein e-book umzuwandeln, wird
|
||||||
link:{url-asciidoctor-epub3}[asciidoctor-epub3] benötigt.], Org oder MarkDown
|
link:{url-asciidoctor-epub3}[asciidoctor-epub3] benötigt.], Org oder
|
||||||
sind geeignetfootnote:[Um Org oder MarkDown in ein e-book zu verwandeln, wird
|
MarkDownfootnote:[Um Org oder MarkDown in ein e-book zu verwandeln, wird
|
||||||
link:{url-pandoc}[pandoc] benötigt.]. Beispieldateien für LibreOffice, AsciiDoc,
|
link:{url-pandoc}[pandoc] benötigt.] sind geeignet. Beispieldateien für
|
||||||
Org und MarkDown finden sich link:#beispieldateien[am ende des posts].
|
LibreOffice, AsciiDoc, Org und MarkDown finden sich link:#beispieldateien[am
|
||||||
|
ende des posts].
|
||||||
|
|
||||||
Achte darauf, die elemente des texts semantisch zu gestalten, also sie mit
|
Achte darauf, die elemente des texts semantisch zu gestalten, also sie mit
|
||||||
maschinenlesbarer bedeutung zu verknüpfen. Das heißt, wenn du eine überschrift
|
maschinenlesbarer bedeutung zu verknüpfen. Das heißt, wenn du eine überschrift
|
||||||
@ -109,14 +113,109 @@ __Ersetzen__-feld leer. Stelle den _Modus_ auf „Regex“ und wähle rechts dan
|
|||||||
„Alle Textdateien“ aus. Nun klicke auf btn:[Alle ersetzen]. Wiederhole das ganze
|
„Alle Textdateien“ aus. Nun klicke auf btn:[Alle ersetzen]. Wiederhole das ganze
|
||||||
mit folgenden werten im „Suchen“-feld:
|
mit folgenden werten im „Suchen“-feld:
|
||||||
|
|
||||||
* ` class="calibre[0-9]*"`
|
- ` class="calibre[0-9]*"`
|
||||||
* ` class="p-[^"]+"`
|
- ` class="p-[^"]+"`
|
||||||
* `<a id="anchor[0-9]+"></a>`
|
- `<a id="anchor[0-9]+"></a>`
|
||||||
|
|
||||||
[TIP]
|
[TIP]
|
||||||
Wenn du mehr über reguläre ausdrücke (auch „regex“ genannt) erfahren möchtest,
|
Wenn du mehr über reguläre ausdrücke (auch „regex“ genannt) erfahren möchtest,
|
||||||
schaue mal bei link:{url-regex}[] (englisch) vorbei.
|
schaue mal bei link:{url-regex}[] (englisch) vorbei.
|
||||||
|
|
||||||
|
Nun ersetzen wir alle vorkommen von:
|
||||||
|
|
||||||
|
- `xmlns:epub="http://www.idpf.org/2007/ops">` mit +
|
||||||
|
`xmlns:epub="http://www.idpf.org/2007/ops" lang="de" xml:lang="de">`
|
||||||
|
- `<title>Unbekannt</title>` mit +
|
||||||
|
`<title>Dein Titel</title>`
|
||||||
|
- `+<sup><a href="([^"]+)#[^"]+" class="citation" id="[^"]+">([0-9]+)</a></sup>+`
|
||||||
|
mit +
|
||||||
|
`<sup id="fn\2-backlink"><a epub:type="noteref" role="doc-noteref" href="\1#fn\2">\2</a></sup>`
|
||||||
|
- `+<dt id="footnote-([0-9]+)">\[<a href="([^"]+)#[^"]+">←1</a>\]</dt>\s+<dd>(.+)</dd>+` mit +
|
||||||
|
`+<li epub:type="endnote" id="fn\1">\3<a href="\2#fn\1-backlink">←</a></li>+`
|
||||||
|
- `<dl class="notes">` mit +
|
||||||
|
`<section epub:type="endnotes" role="doc-endnotes" class="fussnoten">\n<ol>`
|
||||||
|
|
||||||
|
Und dann in der datei mit den „Anmerkungen“ (normalerweise die letzte) das
|
||||||
|
`</dl>` ganz unten mit `<ol></section>` ersetzen.
|
||||||
|
|
||||||
|
// TODO: Erklärungen für ersetzungen.
|
||||||
|
|
||||||
|
=== Um handarbeit kommen wir nicht herum
|
||||||
|
|
||||||
|
Wir öffnen jetzt die titelseite (üblicherweise `index_split_000.xhtml`) und
|
||||||
|
geben dem titel und untertitel IDs, damit wir sie per CSS stylen
|
||||||
|
können. Anschließend packen wir beide in eine _section_ mit
|
||||||
|
`epub:type="titlepage"` ein.
|
||||||
|
|
||||||
|
.Das ganze sollte dann ungefähr so aussehen:
|
||||||
|
[source,html]
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="de" xml:lang="de">
|
||||||
|
<head>
|
||||||
|
<title>Das Testbuch</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<section epub:type="titlepage" aria-label="Titel">
|
||||||
|
<p id="titel" epub:type="title">Das Testbuch</p>
|
||||||
|
<p id="untertitel" epub:type="subtitle">Ein Beispieldokument für eine E-book-Anleitung</p>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Die möglichen werte für `epub:type` kannst du in link:{url-epub-structure}[EPUB
|
||||||
|
3 Structural Semantics Vocabulary] (englisch) nachlesen. Was es mit `aria-label`
|
||||||
|
auf sich hat, erfährst du in link:{url-aria-roles}[EPUB Semantics, ARIA Roles, &
|
||||||
|
Metadata] (englisch).
|
||||||
|
|
||||||
|
Gehe nun alle dateien nacheinander durch, und gebe jeder überschrift eine
|
||||||
|
eindeutige ID. Zum beispiel „kapitel1“ für das erste kapitel und „kapitel1_1“
|
||||||
|
für das erste unterkapitel des ersten kapitels. Nun packe jedes kapitel in eine
|
||||||
|
_section_ mit `epub:type="chapter"` und `role="doc-chapter"` ein. Das attribut
|
||||||
|
`aria-labelledby` setzen wir auf die ID der kapitelüberschrift. Das machen wir,
|
||||||
|
damit assistenztechnologien einen besseren überblick anbieten
|
||||||
|
könnenfootnote:[link:{url-epub-aria}#sec-hd[EPUB Type to ARIA Role Authoring
|
||||||
|
Guide, sektion „Supply Labels“ (englisch)]].
|
||||||
|
|
||||||
|
.Beispieldatei mit den richtigen _section_-attributen:
|
||||||
|
[source,html]
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="de" xml:lang="de">
|
||||||
|
<head>
|
||||||
|
<title>Das Testbuch</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<section epub:type="chapter" role="doc-chapter" aria-labelledby="kapitel2">
|
||||||
|
<h1 id="kapitel2">Zweites Kapitel</h1>
|
||||||
|
|
||||||
|
<section epub:type="chapter" role="doc-chapter" aria-labelledby="kapitel2_1">
|
||||||
|
<h2 id="kapitel2_1">Unterkapitel des zweiten Kapitels</h2>
|
||||||
|
<p>Lorem ipsum dolor sit amet, […]</p>
|
||||||
|
|
||||||
|
<section epub:type="chapter" role="doc-chapter" aria-labelledby="kapitel2_1_1">
|
||||||
|
<h3 id="kapitel2_1_1">Unterkapitel des Unterkapitels des zweiten Kapitels</h3>
|
||||||
|
<p>Lorem ipsum dolor sit amet, […]</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[TIP]
|
||||||
|
Für manche elemente gibt es besser passende ``epub:type``s und/oder
|
||||||
|
``role``s. Zum beispiel könnte eine einleitung mit „introduction“ und
|
||||||
|
„doc-introduction“ markiert werden. Siehe die
|
||||||
|
link:{url-epub-aria}#sec-mappings[EPUB Type to ARIA Role Authoring Guide]
|
||||||
|
(englisch) für weitergehende informationen.
|
||||||
|
|
||||||
|
=== Neues CSS schreiben
|
||||||
|
|
||||||
== Beispieldateien
|
== Beispieldateien
|
||||||
|
|
||||||
- LibreOffice: buch.odt
|
- LibreOffice: buch.odt
|
||||||
|
Loading…
x
Reference in New Issue
Block a user