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 : 2739
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

{Graphisme} MENU DÉROULAN
menu déroulant qui ne fonctionne pas sous ie7 mais fonctionne sous modzila firefox ....................

{Javascript / DHTML} IMPLEMENTATION DE RANDOM PERSONNALISÉ
cette classe est une implementation de Random personnalisé trés sympa a vous de le développez et le ...

{C / C++ / C++.NET} QCSSCOMPRESSOR
C'est un exemple simple en Qt, obtenir une chaine, la traiter avec des regex, puis la redefinir dans...

{Javascript / DHTML} MODIFIER SES FEUILLES DE STYLES .CSS À LA VOLÉE AVEC JAVASCRIPT
Permet de modifier n'importe quel style CSS défini dans ses feuilles de style CSS à l'aide de la syn...

{Javascript / DHTML} DÉTECTER SI CSS EST ACTIVÉ
Bon, voilà encore un petit bout de code que j'ai construit pour résoudre un problème. De plus en ...

{C / C++ / C++.NET} BROUILLAGE DES FICHIERS JAVASCRIPT ET CSS(WIN32)
Voici un code source pour proteger les codes sources javascript de l'analyse. Il permet de supprimer...

{Visual Basic, VB6, VB.NET, VB 2005} DECODEUR DE CODE IMAGÉ DE MEGAUPLOAD
Avant toute chose, il doit être évident que ce projet n'a pas pour but de permettre l'automatisation...

{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...