Outils pour utilisateurs

Outils du site


public:analyse_format_epub_vingt_mille

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

public:analyse_format_epub_vingt_mille [2016/02/21 19:43] (Version actuelle)
slh@ens-lyon.fr créée
Ligne 1: Ligne 1:
 +Un fichier epub est une archive ZIP qui contient un répertoire OPS qui contient :
 +  * un fichier XML '​toc.ncx'​ qui encode la navigation dans le livre et donc son ordre des chapitres
 +  * un fichier XML '​content.opf'​ qui renseigne sur le contenu du livre
 +[en fait le fichier '​content.opf'​ est déclaré dans le fichier '​META-INF/​container.xml'​ :\\ <​code>​
 +<​container version="​1.0"​
 + xmlns="​urn:​oasis:​names:​tc:​opendocument:​xmlns:​container">​
 + <​rootfiles>​
 + <​rootfile full-path="​OPS/​content.opf"​ media-type="​application/​oebps-package+xml"​ />
 + </​rootfiles>​
 +</​container>​
 +</​code>​
 +]
 +  * les fichiers XHTML de l'​édition du texte :\\ Par exemple "​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml"​ contient le XHTML du premier chapitre.
 +  * un répertoire '​images'​ contenant les images utilisées par les fichiers XHTML
 +
 +Le fichier '​toc.ncx'​ contient les chemins uniques suivants :\\ <​code>​
 +xmlstarlet el < toc.ncx | awk '​!seen[$0]++'​
 +</​code>​
 +
 +<​code>​
 +ncx/head
 +ncx/​head/​meta
 +ncx/​docTitle
 +ncx/​docTitle/​text
 +ncx/​docAuthor
 +ncx/​docAuthor/​text
 +ncx/navMap
 +ncx/​navMap/​navPoint
 +ncx/​navMap/​navPoint/​navLabel
 +ncx/​navMap/​navPoint/​navLabel/​text
 +ncx/​navMap/​navPoint/​content
 +</​code>​
 +
 +Le fichier encode les entrées de la table des matières à plat :\\ <​code>​ <​navMap>​
 + <​navPoint id="​title"​ playOrder="​1">​
 + <​navLabel>​
 + <​text>​Titre</​text>​
 + </​navLabel>​
 + <​content src="​title.xhtml"​ />
 + </​navPoint>​
 + <​navPoint id="​c0_Vingt_mille_lieues_sous_les_mers"​ playOrder="​2">​
 + <​navLabel>​
 + <​text>​Vingt mille lieues sous les mers</​text>​
 + </​navLabel>​
 + <​content src="​c0_Vingt_mille_lieues_sous_les_mers.xhtml"​ />
 + </​navPoint>​
 + <​navPoint id="​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1"​
 + playOrder="​3">​
 + <​navLabel>​
 + <​text>​Chapitre I.</​text>​
 + </​navLabel>​
 + <​content
 + src="​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml"​ />
 + </​navPoint>​
 +</​code>​
 +
 +Ce qui correspond à :
 +  * page de titre
 +  * table des matières
 +  * premier chapitre
 +
 +Le fichier '​content.opf'​ contient les chemins uniques suivants :\\ <​code>​
 +xmlstarlet el < content.opf | cat -n | sort --key=2.1 -b -u | sort -n | cut -c8-
 +</​code>​
 +ou
 +<​code>​
 +xmlstarlet el < content.opf | awk '​!seen[$0]++'​
 +</​code>​
 +
 +<​code>​
 +package
 +package/​metadata
 +package/​metadata/​dc:​identifier
 +package/​metadata/​dc:​language
 +package/​metadata/​dc:​title
 +package/​metadata/​dc:​source
 +package/​metadata/​dc:​date
 +package/​metadata/​dc:​rights
 +package/​metadata/​dc:​contributor
 +package/​metadata/​dc:​creator
 +package/​metadata/​dc:​publisher
 +package/​metadata/​meta
 +package/​manifest
 +package/​manifest/​item
 +package/​spine
 +package/​spine/​itemref
 +package/​guide
 +package/​guide/​reference
 +</​code>​
 +
 +=== Synthèse des éléments du fichier content.opf ===
 +
 +  * %%/​package/​metadata%% contient les métadonnées du texte au format Dublin Core
 + Example : %%<​dc:​title>​Vingt mille lieues sous les mers</​dc:​title>​%%
 +  * chaque %%/​package/​manifest/​item%% déclare un fichier de données\\ (comme une page de titre, une page HTML contenant un chapitre, une image d'​illustration,​ etc.)
 +  * %%/​package/​spine%% encode l'​ordre du contenu du texte : chaque %%/​package/​spine/​itemref%% y désigne
 +  un fichier de données participant à l'​affichage du texte (la page de titre, la table des matières puis chaque chapitre)\\ Exemples :
 + * %%/​package/​spine/​itemref@href="​c0_Vingt_mille_lieues_sous_les_mers.xhtml"​%% la page de la table des matières
 + * %%/​package/​spine/​itemref@href="​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml"​%% la page du premier chapitre
 +
 +  * %%/​package/​guide%% encode l'​ordre des éléments du livre : chaque %%/​package/​guide/​reference%% y désigne
 +  un élément du livre (la couverture, la page de titre, le texte = la page de la table des matières, la page de copyright)
 +
 +Bref, bien que toc.ncx soit la référence pour l'​ordre des éléments du texte
 +(à l'​origine de la construction de la table des matières par les outils de visualisation),​
 +le fichier content.opf contient également des informations cocnernant l'​ordre du contenu du texte.
 +
 +=== fichiers XHTML de l'​édition d'un texte ===
 +
 +Le répertoire OPS contient également les fichiers XHTML de l'​édition du texte.
 +
 +Les chemins uniques du fichier "​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml"​ sont :
 +<​code>​
 +xmlstarlet el < c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml | awk '​!seen[$0]++'​
 +</​code>​
 +
 +<​code>​
 +html
 +html/head
 +html/​head/​meta
 +html/​head/​link
 +html/​head/​title
 +html/body
 +html/body/p
 +html/​body/​div
 +html/​body/​div/​span
 +html/​body/​div/​span/​span
 +html/​body/​div/​div
 +html/​body/​div/​div/​div
 +html/​body/​div/​div/​div/​img
 +html/​body/​div/​p
 +html/​body/​div/​p/​br
 +html/​body/​div/​h3
 +html/​body/​div/​h3/​span
 +html/​body/​div/​h3/​span/​br
 +html/​body/​div/​h3/​span/​span
 +html/​body/​div/​br
 +html/​body/​div/​p/​span
 +html/​body/​div/​p/​span/​span
 +html/​body/​div/​p/​a
 +html/​body/​div/​p/​i
 +html/​body/​div/​p/​sup
 +html/​body/​div/​p/​sup/​a
 +html/​body/​div/​p/​span/​i
 +html/​body/​div/​div/​div/​div
 +html/​body/​div/​div/​div/​div/​img
 +html/​body/​div/​div/​div/​div/​div
 +html/​body/​div/​div/​div/​div/​div/​i
 +html/​body/​hr
 +html/​body/​ol
 +html/​body/​ol/​li
 +html/​body/​ol/​li/​span
 +html/​body/​ol/​li/​span/​a
 +</​code>​
 +
 +=== Synthèse du XHTML d'un chapitre ===
 +
 +  * l'​entête encode le titre de la page et l'​utilisation de la CSS "​main.css"​ :
 +<​code>​
 + <​head>​
 + <meta content="​application/​xhtml+xml;​charset=UTF-8"​ http-equiv="​content-type"​ />
 + <link type="​text/​css"​ rel="​stylesheet"​ href="​main.css"​ />
 + <​title>​Chapitre I.</​title>​
 + </​head>​
 +</​code>​
 +  * le titre du chapitre est encodé par :
 +<​code>​
 + <h3 style="​font-weight:​ normal; text-align: center; line-height:​ 1.5em;">​
 + <​span class="​mw-headline"​ id="​CHAPITRE_PREMIER_un_.C3.A9cueil_fuyant.">​
 + CHAPITRE PREMIER
 + <br />
 + <br />
 + <​span style="​font-variant:​ small-caps">​un écueil fuyant.</​span>​
 + </​span>​
 + </​h3>​
 +</​code>​
 +  * le contenu est encodé par des %%<​p>​%% et quelques %%<​br/>​%% :
 +<​code>​
 + <br />
 + <​p>​L’année 1866 fut marquée par un événement bizarre, un phénomène
 + inexpliqué et inexplicable que personne n’a sans doute oublié. Sans
 + parler des rumeurs qui agitaient les populations des ports et
 + surexcitaient l’esprit public à l’intérieur des continents, les gens
 + de mer furent particulièrement émus. Les négociants,​ armateurs,
 + capitaines de navires, skippers et masters de l’Europe et de
 + l’Amérique,​ officiers des marines militaires de tous pays, et, après
 + eux, les gouvernements des divers États des deux continents, se
 + préoccupèrent de ce fait au plus haut point.</​p>​
 +</​code>​
 +  * il y a des mises en évidence par %%<​i>​%% :
 +<​code>​
 + En effet, le 20 juillet 1866, le steamer
 + <​i>​Governor-Higginson</​i>​
 + , de
 + <​i>​Calcutta and Burnach steam navigation Company</​i>​
 + , avait rencontré cette masse mouvante à cinq milles dans l’est des
 +</​code>​
 +  * il y a des appels de note :
 +<​code>​
 + et 60° 35′ de longitude à l’ouest du méridien de Greenwich. Dans
 + cette observation simultanée,​ on crut pouvoir évaluer la longueur
 + minimum du mammifère à plus de trois cent cinquante pieds anglais ​
 + <sup id="​cite_ref-1"​ class="​reference">​
 + <a href="#​cite_note-1">​[1]</​a>​
 + </​sup>​
 + , puisque le
 +</​code>​
 +  * puis les notes sont encodées en bas de page :
 +<​code>​
 + <hr />
 + <ol class="​references">​
 + <li id="​cite_note-1">​
 + <​span class="​mw-cite-backlink">​
 + <a href="#​cite_ref-1">​↑</​a>​
 + </​span>​
 + <​span class="​reference-text">​Environ 106 mètres. Le pied anglais n’est que de
 + 30,40 centimètres.</​span>​
 + </​li>​
 + </​ol>​
 +</​code>​
 +  * les liens hypertexte sont encodés par des %%<​a>​%% :
 +<​code>​
 + Lacépède,​ ni
 + <a href="​http://​fr.wikipedia.org/​wiki/​Auguste_Dum%C3%A9ril"​ class="​extiw"​
 + title="​w:​Auguste Duméril">​M. Dumeril</​a>​
 + , ni
 +</​code>​
 +  * les sauts de page sont encodés par :
 +<​code>​
 + <​span>​
 + <​span class="​pagenum ws-pagenum"​ id="​_2"​
 + title="​Page:​Verne - Vingt mille lieues sous les mers.djvu/​12"​ />
 + </​span>​
 +</​code>​
 +  * les illustrations sont encodées par des %%<​img>​%% :
 +<​code>​
 + <div class="​center">​
 + <div class="​floatnone">​
 + <​img
 + alt="//​upload.wikimedia.org/​wikipedia/​commons/​thumb/​6/​66/​Vingtmillelieue00vern_orig_0011_1.jpg/​420px-Vingtmillelieue00vern_orig_0011_1.jpg"​
 + src="​images/​c48_commons_thumb_6_66_Vingtmillelieue00vern_orig_0011_1.jpg_420px_Vingtmillelieue00vern_orig_0011_1.jpg"​
 + style="​width:​420;​ height:543; " />
 + </​div>​
 + </​div>​
 +</​code>​
 +ou encore :
 +<​code>​
 + <div class="​center">​
 + <div class="​thumb tnone">​
 + <​div class="​thumbinner"​ style="​width:​422px;">​
 + <​img
 + alt="//​upload.wikimedia.org/​wikipedia/​commons/​thumb/​8/​84/​Vingtmillelieue00vern_orig_0018_1.jpg/​420px-Vingtmillelieue00vern_orig_0018_1.jpg"​
 + src="​images/​c49_commons_thumb_8_84_Vingtmillelieue00vern_orig_0018_1.jpg_420px_Vingtmillelieue00vern_orig_0018_1.jpg"​
 + class="​thumbimage"​ style="​width:​420;​ height:618; " />
 + <​div class="​thumbcaption">​
 +
 + Les ingénieurs procédèrent à la visite du
 + <​i>​Scotia</​i>​
 + </​div>​
 + </​div>​
 + </​div>​
 + </​div>​
 +</​code>​
 +  * la langue peut être encodée par des %%xml:​lang%% :
 +<​code>​
 + , tous navires de première marche, et les plus vastes qui, après le
 + <​span class="​lang-en"​ xml:​lang="​en">​
 + <​i>​Great-Eastern</​i>​
 + </​span>​
 + , eussent jamais sillonné les mers. Ainsi donc, en 1867, la
 +</​code>​
 +
 +==== Synthèse de la structure d'un texte ====
 +
 +Un fichier XHTML de chapitre ne fait pas référence à la partie dans laquelle il se trouve.
 +
 +Aucun des fichiers de structuration '​toc.ncx'​ ou '​content.opf'​ ne mentionne les parties du livre
 +(si ce n'est dans les noms de fichiers et les identifiants de chapitre) :
 +  * toc.ncx :\\ <​code>​
 + <​navPoint id="​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1"​
 + playOrder="​3">​
 + <​navLabel>​
 + <​text>​Chapitre I.</​text>​
 + </​navLabel>​
 + <​content
 + src="​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml"​ />
 + </​navPoint>​
 +</​code>​
 +  * content.opf :\\ <​code>​
 + <item id="​c0_Vingt_mille_lieues_sous_les_mers"​ href="​c0_Vingt_mille_lieues_sous_les_mers.xhtml"​ media-type="​application/​xhtml+xml"​ />
 +</​code>​
 +
 +Le fichier XHTML de la table des matières (c0_Vingt_mille_lieues_sous_les_mers.xhtml)
 +mentionne les parties mais sans structuration XML :
 +<​code>​
 + <​body>​
 + <p />
 + <​div>​
 + <div id="​ws-summary"​ style="​margin-top:​1em">​
 + <div style="​text-align:​center;​clear:​both;">​
 + <​p>​TABLE DES MATIÈRES</​p>​
 + <hr
 + style="​margin-top:​ 2em; margin-bottom:​ 2em; auto;​border:​none;​background:​black;​width:​1em;​height:​1px;​margin-left:​auto;​margin-right:​auto;"​ />
 + <​p>​PREMIÈRE PARTIE.</​p>​
 + </​div>​
 + <div class="​tableItem"​
 + style="​position:​relative;​margin:​.125em auto;​background:#​FFFFFF;​color:#​000000;​line-height:​normal;​zoom:​1">​
 + <​div style="​margin-right:​0px">​
 + <​div style="​float:​left;​width:​100%">​
 + <​div
 + style="​float:​left;​z-index:​2;​min-width:​45px;​text-indent:​0;​text-align:​right;​white-space:​nowrap">​
 + <​span style="​background:#​FFFFFF">​
 + <​a
 + href="​c1_Vingt_mille_lieues_sous_les_mers_Partie_1_Chapitre_1.xhtml"​
 + title="​Vingt mille lieues sous les mers/Partie 1/Chapitre 1">
 + <​span style="​font-variant:​ small-caps">​Chapitre</​span>​
 + I.
 + </​a>​
 +  ​
 + </​span>​
 + </​div>​
 + <​div style="​position:​relative;​margin-left:​45px">​
 + <​div style="​position:​relative;​z-index:​2;​text-align:​justify;">​
 + <​span style="​background:#​FFFFFF">​Un écueil fuyant </​span>​
 + </​div>​
 +
 + </​div>​
 +
 + </​div>​
 +
 +
 + </​div>​
 + </​div>​
 +</​code>​
 +
 +Bref, il faut encoder la structuration du texte en parties à la main.
  
public/analyse_format_epub_vingt_mille.txt · Dernière modification: 2016/02/21 19:43 par slh@ens-lyon.fr