Comment minifier les fichiers html ou css pour améliorer la vitesse du site Web en utilisant python ?

Published: 25 novembre 2022

Tags: Python; HTML; CSS; Minify;

DMCA.com Protection Status

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.

Voir aussi