Scrivendo su di un blog tecnico capita spesso di aver codice da mostrare. In particolare, quando il suddetto codice proprio HTML bisogna provvedere a convertire alcuni caratteri perché altrimenti il browser, riconoscendolo, lo valuta.
In python sono sufficienti pochi comandi per effettuare la conversione:
# legge il file "from.txt" contenente il testo da convertiretext = file('from.txt', 'r').read() # converte il fileimport cgitext = cgi.escape(text) # converte i caratteritext = text.expandtabs(4) # trasforma i tab in spazi # salva il testo nel file "to.txt"file('to.txt', 'w').write(text)
Il testo ottenuto può essere così inserito nel proprio blog, o articolo, delimitandolo adeguatamente:
<pre class="code">...inserire il codice qui...</pre>
Per comodità ho già preparato un programma che effettua la conversione da un file all’altro. Le istruzioni possono essere ottenute digitando python html2html -h dalla console.
Il file è il seguente, da eseguire come qualsiasi altro script:
== FILE: html2html.py ==#! /usr/bin/python __version__ = "1.0"__author__ = "Davide Muzzarelli (info@dav-muz.net)"__copyright__ = "(C) 2006 Davide Muzzarelli. GNU GPL 2." import sys, cgi if '-h' in sys.argv or '--help' in sys.argv: print """Usage: html2html SOURCE DEST html2html.py --v1.0-- Convert a text in order to be used in a HTML page, useful for code postings. Copyright (c) Davide Muzzarelli, 2006""" sys.exit(0)else: try: from_file = sys.argv[1] to_file = sys.argv[2] except: print "Error: specify the source file and the destination file\nFor more informations please use the -h option." sys.exit(0) # load text = file(from_file, 'r').read() # conversion text = cgi.escape(text) text = text.expandtabs(4) # save file(to_file, 'w').write(text)
This is great! I reposted at http://pydanny.blogspot.com/2009/01/useful-python-code-for-blogspot-users.html and shared full credit.