Discussioni aiuto:Epubgen

Da Wikisource.
Jump to navigation Jump to search

ti presento epubgen![modifica]

ho appena caricato su dropbox il malloppo!

Per non fare disordine, ho messo tutto in una cartella pyscripts/epubgen. Immagino che poi vorrai spostare il tutto nella stessa cartella in cui stanno gi altri script htmlgenX.py

Il contenuto è questo:

  • epubgen.py: questo è il mio script, ed è quello che va richiamato.
  • epub: qui dentro vengono messi i file epub generati. Probabilmente bisognerà svuotare la cartella periodicamente.
  • python-epub-builder: queste sono le librerie a cui mi sono appoggiato. Al loro interno, se vuoi dare un'occhiata, ci sono delle sottocartelle:
    • templates: template vari, tra cui di importante c'è epub.css, un foglio di stile aggiuntivo per nascondere alcuni elementi che nell'epub non hanno molto senso, tipo il link alla pagina proofread.
    • work: qui dentro ci sono i file .html che vengono generati dai testi e poi impacchettati per fare l'epub. Generando un nuovo epub i vecchi file si sovrascrivono, quindi non dovrebbe essere necessario svuotare la cartella periodicamente.

Quindi ora quello che ti chiederei di fare è una semplice paginetta come le altre, che estragga i metadati, chiami epubgen in questo modo:

import epubgen
epubgen("Africa orrenda", "Africa_orrenda", "http://it.wikisource.org/wiki/", "Mario Rapisardi", "1896")

cioè in ordine titolo, link relativo, url_sito, autore, anno (per il momento sono solo questi i metadati che ho messo); e poi permetta di aprire il file così creato. (Per vedere gli epub puoi installare ad esempio un plugin per firefox, o uno dei tanti programmi che ci sono, tipo Adobe Digital Editions)

Per il momento epubgen fa una chiamata http verso htmlgen1.py: ovviamente sarebbe buona cosa che lo chiamasse direttamente via python. Comunque direi intanto di provare se riesci a richiamare epubgen così com'è, poi queste migliorie le faremo un po' alla volta! :-) Fammi sapere se funzia! :-) Candalùa (disc.) 10:29, 10 giu 2011 (CEST)

Sorprendente solo a leggerlo. :)
  • "una paginetta" intendi una pagina web dinamica scatenata da un template "alla htmlgen1", o per ora una pagina esterna con un form?
  • il tutto è già più o meno pensato per correre su server o in locale?
  • hai visto che ti ho montato {{Htmlgen1}} anche in vec? Gli ha dato un colpetto in modo che "senta" il progetto (funziona anche su it.wikipedia, provato!); manca però il caricamento selettivo del Common.css specifico (ma mi pare che il Common.css di vec.source sia simile al nostro it.source)
  • combinazione vuole che lavorando su htmlgen2 ho ideato parecchi piccoli "ordegni" per l'estrazione di metadati e metodi di Page() quindi tutto dovrebbe ridursi alla chiamata della pura pagina, epubgen("Africa orrenda"). Nel caso del template, un solo click.
  • Altre domande verranno dopo installazione....--Alex brollo (disc.) 15:41, 10 giu 2011 (CEST)


  • la pagina dinamica alla htmlgen1 va benissimo! :-)
  • finora è pensato per funzionare in locale, e difatti lo script chiama htmlgen1.py "esternamente", mediante una chiamata http: "più o meno" dovrebbe funzionare anche sul server
  • ho visto; il caricamento del common.css specifico sarà da fare prima o poi, così se il tutto funziona lo possiamo esportare all'estero! :-) vec.source è ormai il mio parco giochi dove sperimentare le soluzioni da portare su it, quindi sentiti libero di farci anche tu i tuoi test, basta che me lo tratti bene... :-)
  • hai visto Discussioni_aiuto:Wiki2html#BUG?

Candalùa (disc.) 16:34, 10 giu 2011 (CEST)

(stress)
Sul mio pc non trova genshi nè lxml; su server non trova pyquery. Mi metteresti tutte le librerie in dropbox? --Alex brollo (disc.) 19:01, 10 giu 2011 (CEST)

Ce l'hai easy_install? se no, installati i setuptools da qui e dopo puoi installare qualunque libreria lanciando "easy_install genshi". Sul server, se per caso non si potesse usare easy_install, ci sono i sorgenti di PyQuery qui, è una cartella che va decompattata e dentro c'è un setup.py da lanciare. Candalùa (disc.) 19:52, 10 giu 2011 (CEST)

Quanto amo la zappa!!!
Allora.Prima di leggere il tuo messaggio ho faticosamente capito da me (quasi) la questione easy_install; solo che... problemi su problemi. Alla fine, dopo un numero indefinito di imprecazioni, sono riuscito a far correre "install epubgen" sotto python, in locale. Ma se lancio python dal prompt, inserendo le due righe:
import epubgen
 epubgen("Africa orrenda", "Africa_orrenda", "http://it.wikisource.org/wiki/", "Mario Rapisardi", "1896")

, ottengo l'errore

TypeError: 'module' object is not callable.

Allora lancio da Idle, che si autocarica, lancio la seconda riga, e ottengo (troppo rapidamente):

>>> epubgen("Africa orrenda", "Africa_orrenda", "it.wikisource.org", "Mario Rapisardi", "1896")
css_1 epub.css
html_1 section0.html
<__main__.epubgen instance at 0x011EED00>

e infatti ottengo gli epub che vedi in dropbox, in cui l'epub ha solo la prima pagina e non le altre. :-( --Alex brollo (disc.) 01:13, 11 giu 2011 (CEST)

ho fatto un ritocchino, riprova adesso Candalùa (disc.) 01:21, 11 giu 2011 (CEST)

Secapissi bene cosa si deve fare, riscriverei volentieri il tutto "a zappa e findstringa"... :-( ... a costodi stari una settimana. ODIO i programmi che non so cosa fanno. --Alex brollo (disc.) 01:28, 11 giu 2011 (CEST)

è che non avevo previsto che tu avresti cambiato il link da "http://it.wikisource.org/wiki/" a "it.wikisource.org"... :-) ma ora da me in locale funziona, chiamandolo con quest'ultimo... a te che problema dà? Candalùa (disc.) 01:37, 11 giu 2011 (CEST) (in effetti andava chiamato con epubgen.epubgen("Africa orrenda", "Africa_orrenda", "it.wikisource.org", "Mario Rapisardi", "1896")

Vedo la tua versione di Georgiche.... io non ci riesco. Immaginavo il problema /wiki/ ma non riesco a venirne fuori. Adesso sono troppo stanco e inkazzato.... buona notte. --Alex brollo (disc.) 01:54, 11 giu 2011 (CEST)

ma neanche chiamandolo come ho scritto qui appena sopra? boh vabbe' vado a letto anch'io... :-) Candalùa (disc.) 01:57, 11 giu 2011 (CEST)

Adesso sì. Era ora. :-) --Alex brollo (disc.) 02:14, 11 giu 2011 (CEST)

Strategia[modifica]

Io adesso manipolerei htmlgen1.py in modo da farlo lavorare anche in locale e da attivare una procedura alternativa se viene chiamato con parametri (se senza, si dovrebbe scatenare la routine cgi tal quale). Vediamo... per non fare eccessivo casino lo chiamo htmlgen3.py, lo metto nella cartella epubgen (l'idea è che si carichi lui e lanci epubgen) --Alex brollo (disc.) 12:27, 11 giu 2011 (CEST)

Prima fusione[modifica]

In dropbox, cartella epubgen, se esegui da un prompt di sistema:

python htmlgen3.py "La morte di Florigella" 

a me funzia, e si arrangia lui a trovare i dati mancanti per epubgen. --Alex brollo (disc.) 15:45, 11 giu 2011 (CEST)

E adesso gira anche su toolserver (non ancora collegato al template nè a un indirizzo dinamico) --Alex brollo (disc.) 18:46, 11 giu 2011 (CEST)

problemucci 12.06.11[modifica]

1. Sottopagine in ns0 (devono leggere l'area dati della pagina principale) --Alex brollo (disc.) 21:43, 11 giu 2011 (CEST)

il mio tool non funziona nelle sottopagine ma solo nelle pagine principali (vuole un'area dati). Me ne occupo io. --Alex brollo (disc.) 02:03, 12 giu 2011 (CEST)
in effetti l'idea era proprio quella... generare l'epub solo dalle pagine principali, non mi pare abbia molto senso farlo da una sottopagina Candalùa (disc.) 12:52, 12 giu 2011 (CEST)

2. Immagini (vanno scaricate per epub "portabili") --Alex brollo (disc.) 21:43, 11 giu 2011 (CEST)

stessa cosa per wiki.css Candalùa (disc.) 12:52, 12 giu 2011 (CEST)

3. Centratura immagini nella pagina --Alex brollo (disc.) 21:43, 11 giu 2011 (CEST)

Questo è un problema comune ad htmlgen. Andrebbe inserito nelle pagine il foglio di stile della skin vector (l'ho già salvato sotto pyscripts/vector.css) Candalùa (disc.) 12:52, 12 giu 2011 (CEST)

4. Link interni (quelli che puntano a capitoli devono essere convertiti in link interni: barre di navigazione, indici) --Alex brollo (disc.) 21:43, 11 giu 2011 (CEST)

5. epub degli Indici --Alex brollo (disc.) 21:43, 11 giu 2011 (CEST)

se chiamo la routine su una pagina Indice, già funziona? --Alex brollo (disc.) 02:03, 12 giu 2011 (CEST)
perché dovresti volerlo chiamare da una pagina Indice? Candalùa (disc.) 12:35, 12 giu 2011 (CEST)

6. ....

Template:Htmlgen3[modifica]

Il template htmlgen3, appiccicato a una pagina principale ns0, genera l'epub da server, che viene deposto in http://toolserver.org/~alebot/epub (directory con indice).

Purtroppo seguendo il link il browser non riconosce il tipo del file (ci sarà la questione mymetype dimezzo...)


Sì, però non mettiamo il template su tutte le pagine fintanto che non è tutto a posto... :-) E' possibile fare in modo che il template rimandi a una pagina che dica "Generazione ePub in corso..." e poi quando ha finito compaia il link per scaricarlo? Candalùa (disc.) 14:42, 12 giu 2011 (CEST)

Ok, il template è dentro Intestazione, provato: funzia. Adesso l'ho nascosto in un commento html.
pagina "che si aggiorna": sisi.... figuriamoci! Io so che tu sai che io non so quasi un bel niente .... Vado a tentoni. Comunque è mezza giornata che ci penso. ;-) Il problema è che non so da che parte cominciare a cercare...
pagine Indice: il mio, personale "epub wikisource perfetto" che mi piacerebbe realizzare è basato sulle pagine Pagina.

Il punto al 19.06.11[modifica]

Funziona in locale una routine di concezione diversa, epg.py.

Il lavoro di generazione dell'epub è stato spezzat in due parti distinte:

  1. scaricamento , memorizzazione e sistemazione dei link interni di tutti i file che costituiscono l'opera (file html e file immagine);
  2. montaggio dell'epub da questi files già sistemati.

Ad oggi, epg.py esegue brillantemente il punto 1; essendo i files belli e pronti, ed essendo disponibile un dizionario delle pagine html da montare, il lavoro di montaggio dell'epub dovrebbe essere facilissimo.

Il risultato inatteso è che questi files (sistemati in una cartella files (che contiene al suo interno una cartella images) funzionano perfettamente; tutti i link interni sono modificati epuntano su file locali, tutti i link esterni, compreso quello importantissimo verso la pagina File di ciascuna immagine, per rispettare il BY della licenza CC BY SA), puntano al target originale.