{"id":63,"date":"2014-12-03T13:30:08","date_gmt":"2014-12-03T12:30:08","guid":{"rendered":"http:\/\/www.quintadicopertina.com\/fabriziovenerandi\/?p=63"},"modified":"2015-05-26T08:55:03","modified_gmt":"2015-05-26T06:55:03","slug":"navigando-nellepub-cfi","status":"publish","type":"post","link":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/?p=63","title":{"rendered":"Navigando nell&#8217;EPUB CFI"},"content":{"rendered":"<a href=\"http:\/\/www.quintadicopertina.com\/fabriziovenerandi\/?p=21\">Avevo promesso<\/a> di dare qualche feedback sugli EPUB CFI. \r\nLe specifiche degli <a href=\"http:\/\/www.idpf.org\/epub\/linking\/cfi\/epub-cfi.html\">EPUB Canonical Fragment Identifier<\/a> non brillano per chiarezza, e <a href=\"http:\/\/www.idpf.org\/epub\/linking\/cfi\/epub-cfi.html\">parrebbe<\/a> che nemmeno in IDPF siano particolarmente felici per questa particolare specifica di EPUB3.\r\n\r\n<h3>Cosa dovrebbero permettere di fare i CFI in pratica?<\/h3>\r\n\r\nSi tratta di una specifica che dovrebbe permettere di identificare una precisa zona testuale (e non) di un ePub. Non un link a un file o a un id, ma il puntamento o la selezione di una parte di un paragrafo o altro. \r\nIl puntamento pu\u00f2 essere effettuato dall&#8217;interno dell&#8217;ePub, o dall&#8217;esterno: \u00e8 quindi in teoria possibile per un software\/biblioteca di ePub andare a prelevare, leggere, confrontare brani di diversi ePub, cos\u00ec come fornire all&#8217;esterno riferimenti precisi ai contenuti di pi\u00f9 ePub, magari gestiti in rete. \r\nNon mi pare invece ancora possibile interrogare un ePub a partire da un altro ePub.\r\n\r\nLa sintassi \u00e8 complessa e parte dalla <code>spine<\/code> dell&#8217;ePub. Si lavora a saltelli. Ogni elemento della DOM viene numerato in maniera crescente, secondo alcune regole che <a href=\"http:\/\/matt.garrish.ca\/2013\/03\/navigating-cfis-part-1\/\">riassume bene Matt Garrish nel suo blog<\/a>, dopo di che si saltella tra gli elementi del <code>package<\/code> fino alla <code>spine<\/code>, e poi all&#8217;interno di questi fino al file nel quale \u00e8 contenuto il testo che ci interessa selezionare. \r\nLa sintassi \u00e8 qualcosa del tipo: <code>content.opf#epubcfi(\/6\/4!)<\/code>\r\n\r\nOvvero: vai al quarto elemento figlio del sesto elemento contenuto nel file content.opf (il quarto elemento corrisponde in realt\u00e0 al secondo tag figlio, e il sesto elemento al terzo tag figlio: lo schema del surriportato link di Matt chiarisce bene le regole per un buon conteggio).\r\n\r\nIl punto esclamativo significa, <em>e poi fai un salto <strong>grosso<\/strong><\/em>. Dove? Dentro al file selezionato nella spine dell&#8217;ePub.\r\nA questo punto il gioco dei saltelli continua, e si inseriscono dopo il punto esclamativo i successivi salti nella dom, fino al punto esatto che si vuole individuale, o &#8211; se si usa un range &#8211; alla porzione testuale che si vuole selezionare. Un esempio di CFI corretto potrebbe essere: <code>content.opf#epubcfi(\/6\/4!\/4\/4\/2\/1:5)<\/code>. I saltelli prima del punto esclamativo ci portano fino alla <code>spine<\/code>, in corrispondenza del capitolo in cui vogliamo andare. Quelli successivi al punto esclamativo iniziano a saltellare dentro il capitolo in questione, andando esattamente nel punto desiderato.\r\n\r\n<h3>Il supporto<\/h3>\r\n\r\nHo provato a creare un CFI per un semplice link. Testato con Adobe 4, Ibooks, Azardi e Readium, il link ha dato qualche segno di vita solo con quest&#8217;ultimo. Il supporto, insomma, sembra ad oggi molto timido, tenendo anche conto che il link non \u00e8 certo l&#8217;utilizzo pi\u00f9 significativo dei CFI che dovrebbero e potrebbero avere uno sviluppo molto pi\u00f9 interessante per tutto ci\u00f2 che riguarda la visione, selezione, spostamento di porzioni di testo scelte in maniera omogenea dal lettore\/editore.\r\n\r\nVedremo se i CFI fioriranno, come certe rose, o se finiranno nel mare morto delle specifiche deprecate, assieme alle XML island. \r\n\r\n<h4>UPDATE<\/h4>\r\n\r\nPer completezza <a href=\"http:\/\/futurepress.github.io\/epub.js\/reader\/#epubcfi(\/6\/12[xepigraph_001]!4\/2\/2\/2\/1:34)\">riporto anche il link<\/a> a un progetto di motore lettura EPUB on line che parrebbe usare proprio gli EPUB CFI per l&#8217;accesso e il puntamento alle pagine. Per leggerli guardate la barra degli indirizzi.\r\n","protected":false},"excerpt":{"rendered":"Avevo promesso di dare qualche feedback sugli EPUB CFI. Le specifiche degli EPUB Canonical Fragment Identifier non brillano per chiarezza, e parrebbe che nemmeno in IDPF siano particolarmente felici per questa particolare specifica di EPUB3. Cosa dovrebbero permettere di fare i CFI in pratica? Si tratta di una specifica che dovrebbe permettere di identificare una [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,5],"tags":[],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-ebook-concetti-generali","category-epub3"],"_links":{"self":[{"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=63"}],"version-history":[{"count":6,"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions\/235"}],"wp:attachment":[{"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quintadicopertina.com\/fabriziovenerandi\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}