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

{Visual Basic, VB6, VB.NET, VB 2005} VBA NETTOYER UNE LISTE DE NOMS PROPRES
Je souhaitais analyser des données saisies dans un fichier excel en utilisant un tableau croisé dyna...

{Delphi} CLEANER NETTOYEUR DE RÉPERTOIRE
Cleaner est un utilitaire pour nettoyer un répertoire de fichier indésirable - Supprimer par sele...

{Python} TPYCODE, TRADUCTEUR DE CODE
Bonjour à tous, Ce programme ne sert pas à grand chose mais c'est mon premier donc pour un début, ç...

{PHP} PAGINATION + FICHIER CSS
// Pagination style : () // () // ...

{Javascript / DHTML} UN MENU EN CSS
Ceci est un menu réalisé entièrement à l'aide d'une feuille de style css. Vous pouvez l'utiliser lib...

{Javascript / DHTML} PRÉSENTOIR PAGE/SUJET
c'est un ensemble de javascript et de html permettant de faire une présentation succincte de 4 sujet...

{Visual Basic, VB6, VB.NET, VB 2005} PENDU EN VB NET
Voici un petit pendu créer par moi , Il y a même un formulaire de connexion (pour l'instant il ne s...

{PHP} FONCTION ENVOI DE MAIL PHP QUI PERMET DE PASSER LE FILTRE ANTI SPAM
Tout est dans le titre :) C'est une fonction qui vous permettra de passer outre les filtres antis...

{Javascript / DHTML} DICOFOU DICTIONNAIRE FANTAISISTE EN JAVASCRIPT
Dicofou est l'adaptation en Javascript d'un gadget que j'ai fait il y a une quinzaine d'années en VB...

{PHP} TRANSFORMER DU PBB CODE EN CODE HTML
ce code crée une fonction qui retourne le code HTML correspondant au pbb-code passer en paramètre. ...