<div dir="ltr">Siccome ho un po di tempo libero volevo provare a scrivere una libreria in Python che consenta di creare un file HTML scrivendo del codice. Allora ho creato un package con una classe che gestisce il documento HTML; a sua volta la classe richiama delle altre sottoclassi che gestiscono i vari elementi che possono essere inseriti in un documento HTML: i DIV, le immagini, e altre cose simili.<div><br></div><div>Qual'è il problema? Che per scrivere decentemente l'output su di un file di testo vorrei poter indentare per bene il codice HTML. Per farlo mi sono tenuto una variabile statica nella classe Documento che mi ricorda quanti spazi di tabulazione devo inserire prima di scrivere ogni riga del codice. Ogni sottoclasse (che gestisce i Div o le immagini) fa riferimento a questa variabile per sapere quante tabulazioni deve inserire prima di scrivere il testo.</div><div>Mi rendo conto che detto così non si capisce una fava, quindi provo a fare un'esempio pratico:</div><div><br></div><div>Se devo scrivere in un file questo codice HTML:</div><div><br></div><div><body><div>Ciao mondo</div></body></div><div><br></div><div>ho bisogno di indentare il codice così (a sinistra il numero di tabulazioni):</div><div><br></div><div>(0 TAB) <body></div><div>(1 TAB) <div></div><div>(2 TAB) Ciao mondo</div><div>(1 TAB) </div></div><div>(0) TAB) </body></div><div><br></div><div><br></div><div><br></div><div>Ad esempio questo è il codice che uso per la classe Documento. Quando voglio creare un documento HTML, creo un istanza della classe e gli passo il nome del file da creare (non ci sono controlli degli errori al momento)</div><div><br></div><div><a href="https://gist.github.com/fmaida/8c9707012d7b67296596">https://gist.github.com/fmaida/8c9707012d7b67296596</a><br></div><div><br></div><div>Ad esempio quando voglio creare un div nella classe documento, viene richiamata una classe come questa:</div><div><br></div><div><a href="https://gist.github.com/fmaida/256154d8d7d1ec053bff">https://gist.github.com/fmaida/256154d8d7d1ec053bff</a><br></div><div><br></div><div>Oppure questa:</div><div><br></div><div><a href="https://gist.github.com/fmaida/95f412d7cf96c4d79e53">https://gist.github.com/fmaida/95f412d7cf96c4d79e53</a><br></div><div><br></div><div><br></div><div><br></div><div>So di non essere bravo a spiegare le cose, ma spero che in un modo o nell'altro riuscirai a capire cosa intendo</div></div>