Les Snippets

Connexion

Offusquer et nettoyer un code CSS

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 26/06/2008 23:00:40 et initié par anthonygego [Liste]
Vue : 2013
Catégorie(s) : Compression & Split, Web, Regex
Langages dispo pour ce code :
- VB 2005, VB 2008



Langage : VB 2005 , VB 2008
Date ajout : 26/06/2008
Posté par anthonygego [Liste]
    

    ''' <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

Remarque :
Offusque : affiche tout sur une même ligne
Nettoie : Supprime les espaces "parasites"
Cette fonction a été conçue à la base pour travailler le code plus facilement. Ne gère pas très bien les erreurs CSS...

Snippets en rapport avec : Espaces, Code, Css, Offusquer, Nettoyer



Codes sources en rapport avec : Espaces, Code, Css, Offusquer, Nettoyer

{Delphi} WEB-BUILDER
Voici mon debut de logiciel de creation de pages internet , il gere pour l'instant le html il reste ...

{PHP} CSS-GENERATOR
Version Beta Juin 2009 Nécessite les extensions apache : php_zip, GD2 Javascript DOIT être activ...

{Graphisme} MENU DEROULANT VERTICAL/HORIZONTAL EN CSS
comme le titre l'indique c'est un menu en CSS facile a modifier compatible tous navigateur, celui ci...

{Javascript / DHTML} CODE UTF-8
un petit programme qui affiche les caractères UTF-8 avec leurs codes associés. j'y ai aussi filtré ...

{Javascript / DHTML} MOT DE PASSE EN HTML
c'est une source sans grande prétention qui permet de demander un code sans passer par du php sa per...

{PHP} ORGANIGRAMME PHP DYNAMIQUE
PHPORG est un module PHP vous permettant de créer facilement un organigramme hiérarchique. PHPORG...

{Visual Basic, VB6, VB.NET, VB 2005} IMPRIMER CODE BARE
Le plus efficase rt le plus utilisable en création code bare .Il est trée facile . Simple et efficas...

{Javascript / DHTML} [MEC] MENUS EN CSS
uniquement en Html+Css, sans une ligne de javascript. Déroulant Horizontal,Déroulant Vertical, Ac...

{} CODE POSTAUX CANADIEN
Valide un code postal canadien... Je sais pas quoi dire de plus mais ma description doit faire 100 c...

{} TESTEUR ISBN
Cette regex permet de tester la validité d'une chaine de type ISBN (ex: identifiant pour les livres)...