Offusquer et nettoyer un code CSS

Contenu du snippet

     Normal   0   21         false   false   false                             MicrosoftInternetExplorer4             /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;}        ''' <summary>      ''' Offusque et nettoie le code      ''' </summary>      ''' <param name="CSSFile">Source CSS</param>      ''' <remarks></remarks>      Private Sub ObfuscateCSS(ByRef CSSFile As String)          'Suppression des retours à la ligne          CSSFile = CSSFile.Replace(ControlChars.NewLine, "")          'Suppression des commentaires          Dim CommentsRegEx As New Regex("/\*[\d\D]*?\*/")          CSSFile = CommentsRegEx.Replace(CSSFile, "")          'Remplacement des tabulations par des espaces          CSSFile = CSSFile.Replace(ControlChars.Tab, " ")          'Nettoyage complet du CSS          Dim NewCSS As String = Nothing          'On extrait un bloc (Nom de la classe + propriétés)          For Each Block As String In CSSFile.Split("}"c)              'On extrait les noms des classes concernées              If Block.Trim().Split("{"c).Length < 2 Then Exit For              Dim ClassesNames() As String = Block.Trim().Split("{"c)(0).Trim().Split(","c)              'Pour chaque nom de classe              For Each ClassName As String In ClassesNames                  If String.IsNullOrEmpty(ClassName) Then Exit For                  'On nettoie le nom de la classe                  For Each NamePart As String In ClassName.Trim().Split(" ")                      If Not String.IsNullOrEmpty(NamePart) Then NewCSS &= NamePart.Trim() & " "                  Next                  NewCSS = NewCSS.TrimEnd(" ") ' On supprime l'espace en trop                  NewCSS &= "," 'On ajoute une virgule              Next              NewCSS = NewCSS.TrimEnd(",") 'On supprime la virgule en trop              NewCSS &= "{" 'On ajoute la première accolade              'On extrait les couples propriétés-valeurs              Dim PropertiesValues() As String = Block.Trim().Split("{"c)(1).Trim().Split(";"c)              'Pour chaque couple              For Each PropertyValue As String In PropertiesValues                  If String.IsNullOrEmpty(PropertyValue.Trim()) Then Exit For                  'On ajoute la propriété et la valeur                  NewCSS &= PropertyValue.Split(":"c)(0).Trim() & ":" & PropertyValue.Split(":"c)(1).Trim() & ";"              Next              NewCSS &= "}" 'On ajoute la dernière accolade          Next          'On retourne le nouveau CSS          CSSFile = NewCSS      End Sub  

Compatibilité : VB 2005, VB 2008

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.