Exemples de comment minifier les fichiers html ou css pour améliorer la vitesse du site Web en utilisant python:
Minifier du code html en utilisant htmlmin
Une solution consiste à utiliser le module python htmlmin qui peut être installé en utilisant pip :
pip install htmlmin
ou conda-forge
conda install -c conda-forge htmlmin
Puis pour minifier un texte html :
import htmlmin
html_txt = '''<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>'''
et
html_minified = htmlmin.minify(html_txt)
print(html_minified)
donne ici
<!DOCTYPE html><html> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> </body> </html>
Notez qu'il peut également être utilisé avec un fichier CSS :
css_txt = '''body {
color: blue;
}
h1 {
color: green;
}'''
Minify css_txt
css_minified = htmlmin.minify(css_txt)
print(css_minified)
donne
body { color: blue; } h1 { color: green; }
Écrivez votre propre code python
Une autre solution est d'essayer de créer votre propre code pour minifier vos fichiers css ou html. Par exemple en faisant
css_txt = '''body {
color: blue;
}
h1 {
color: green;
}'''
css_minified = ''.join( [line.strip() for line in css_txt] )
css_minified
donne
body{color:blue;}h1{color:green;}
Créer un fichier min css ou html
Pour ouvrir et réduire le contenu d'un fichier html
import htmlmin
f = open("test.html", "r")
html_minified = htmlmin.minify(f.read())
print(html_minified)
f.close()
Cependant, notez qu'ici la chaîne html_minified contient des caractères de contrôle (\n \t \r) :
<!DOCTYPE html><html> <head><style>
body{color:blue;}h1{color:green;}
</style></head> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> </body> </html>
Pour les supprimer, une solution est de faire
import htmlmin
import re
f = open("test.html", "r")
html_minified = htmlmin.minify(f.read())
print(html_minified)
regex = re.compile(r'[\n\r\t]')
html_minified = regex.sub(" ", html_minified)
print(html_minified)
f.close()
donne
<!DOCTYPE html><html> <head><style> body{color:blue;}h1{color:green;} </style></head> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> </body> </html>
Créez un nouveau fichier html (appelé "test.min.html")
f = open("test.min.html", "x")
f.write(html_minified)
f.close()
Outils en ligne
Il existe plusieurs outils en ligne pour minifier les fichiers html ou css qui peuvent être utilisés à des fins de comparaison. J'ai utilisé par exemple : Outil et compresseur CSS Minifier en ligne, avec accès API rapide et simple
Autres outils en ligne : HTML Minifier ou CSS Minify
Déminifier
Remarque : Pour déminifier css ou html, il existe également des outils en ligne tels que unminify ou css-html-prettify 2.5.5.