Création d'un ensemble TextMate pour créer facilement un package pour votre projet WordPress

Si vous avez développé un thème ou un plugin WordPress, vous savez à quelle vitesse votre base de code peut croître en très peu de temps..

Vous commencez avec seulement quelques fichiers PHP, JavaScript et CSS. Ensuite, vous créez des ressources d’image et les ajoutez à votre base de code avec leurs équivalents de fichier Photoshop. Après un certain temps, vous allez également inclure d'autres bibliothèques PHP tierces. Ensuite, lorsque vous êtes enfin prêt à expédier votre projet WordPress, vous obtenez un site Web contenant plusieurs types de fichiers, tels que * .php, * .css, * .scss, * .js, * .min.js, * .png et * .psd, peut-être aurez-vous des fichiers cachés comme .DS_Store.

Vous devrez éventuellement nettoyer votre base de code avant de les compresser pour vos utilisateurs. Normalement, cela signifie simplement que vous dupliquez vos fichiers, puis que vous analysez chaque répertoire en supprimant tous les fichiers indésirables. Vous voudriez alors archiver votre projet, puis peut-être utiliser une application tierce pour supprimer les fichiers cachés.

Cet article vous apprendra comment automatiser ce processus d’emballage en créant un ensemble TextMate qui ferait tout pour nous avec une seule touche de raccourci..

Cet article explique quelques astuces concernant TextMate, un éditeur de code génial pour Mac. Vous pouvez trouver plus d'informations sur TextMate sur le site web de MacroMate

Intro aux Bundles TextMate

Les bundles dans TextMate sont comme des plugins dans WordPress. Les plugins WordPress fournissent des fonctionnalités supplémentaires au noyau WordPress. De la même manière, les bundles TextMate fournissent des fonctionnalités supplémentaires à TextMate, telles que la colorisation de parties du code pour une meilleure expérience de codage ou l'exécution d'un processus donné lorsqu'une touche de raccourci est enfoncée..

L'un des avantages de TextMate Bundles est que vous pouvez utiliser n'importe quel langage de programmation disponible localement sur votre système. Certaines langues disponibles nativement sur les Mac sont Bash, Perl, Ruby et Python. Pour les besoins de cet article, j'utiliserai Python pour coder le Bundle..


Qu'allons-nous construire??

Avant de commencer à coder, nous devons d’abord finaliser ce que nous voulons que notre groupe fasse. Nous devons pouvoir:

  • emballer tout notre projet dans un fichier zip,
  • spécifier quels fichiers ne doivent pas être inclus,
  • spécifier quels fichiers doivent toujours être inclus, et
  • déclencher cela avec la touche de raccourci option + commander + décalage + s

Créer notre paquet

Passons maintenant à la création de notre forfait. Ouvrez l'éditeur de bundles à partir de la barre de menus de TextMate (Bundles> Editer les Bundles… ). Une fenêtre devrait ressembler à ceci:

Avec la fenêtre Bundle ouverte et actuellement dans votre vue, créez un nouveau fichier à partir de la barre de menus (Fichier> Nouveau) puis sélectionnez pour créer un nouveau Paquet:

Par défaut, votre paquet va être nommé "Bundle de YourUserName", vous pouvez changer cela sur le volet de droite de la Editer Bundle la fenêtre.

Lorsque votre forfait est sélectionné, allez à nouveau dans la barre de menus, puis créez un nouveau fichier (Fichier> Nouveau) mais cette fois sélectionnez Commander:

Changer le nom de votre "sans titre" commande en quelque chose de plus descriptif comme "Package WP Project".

La version que j'utilise est 2.0-alpha.9503, les captures d'écran ici peuvent différer de votre écran, mais le contenu doit être identique.

Le code de commande

Pour le moment, nous avons un nouveau paquet avec une commande qui ne fait rien encore.

dans le Fenêtre Edit Bundle, cliquez sur la commande que nous venons de créer. Dans le volet inférieur de la fenêtre se trouve le code qui sera exécuté lorsque notre commande sera déclenchée. Comme la commande est nouvelle, TextMate a eu la gentillesse de mettre quelques exemples. Bonjour le monde code pour nous:

 #! / Système / Bibliothèque / Frameworks / Ruby.framework / Versions / 1.8 / usr / bin / ruby ​​-wKU met "Bonjour tout le monde"

Supprimez ce code et commençons à écrire notre propre.


1. Shebang

Tout d'abord, nous devons spécifier quel interpréteur utiliser pour notre code. Notre code sera en Python, nous devons donc le mettre comme première ligne de notre code:

 #! / usr / bin / env python

2. Quelques options

La fonction principale de notre commande est sortie un nettoyer emballer notre projet. Nous avons besoin d’un moyen de spécifier les types de fichiers qui doivent et ne doivent pas être inclus dans notre fichier zip de sortie..

 # Fichiers à exclure exclusFichiers = ['. *', '* .Psd', 'langues / *. Mo', 'langues / *. Po'] # Fichiers à inclure includedFiles = ['langues / en_US.mo', ' languages ​​/ en_US.po ']

le exclusFichiers array spécifie de ne pas inclure les fichiers cachés, les ressources Photoshop et les fichiers de langue de notre package. Nous avons inclus les fichiers de langue ici car lors du test de votre projet, vous avez peut-être créé plusieurs fichiers de langue que vous ne souhaitez pas inclure dans votre package final..

D'autre part, le fichiers inclus array force l'inclusion de fichiers de langue en anglais uniquement.

Vous pouvez étendre ces tableaux pour l’adapter à vos propres besoins. Par exemple, si vous utilisez CodeKit dans votre projet, vous souhaiterez peut-être exclure les fichiers de paramètres de CodeKit. codekit-config.json et config.rb


3. Variables du projet

Avant de pouvoir archiver les fichiers de projet, nous devons d'abord savoir où se trouve notre projet TextMate. TextMate nous expose des propriétés essentielles accessibles avec Python. os bibliothèque:

 import os # Répertoire principal de notre projet projDir = os.environ ['TM_PROJECT_DIRECTORY'] # Nom du projet projName = projDir [projDir.rindex ('/') + 1:] # Répertoire parent du projet projParentDir = projDir [: projDir.rindex (' / ')]

4. Créez le package Zip

La dernière partie du code consiste à effectuer l’emballage. TextMate n’est pas capable d’archiver des répertoires, mais heureusement pour nous, les Mac ont le Zip *: français utilitaire de ligne de commande intégré.

Nous allons utiliser cette commande dans notre script Python:

 # Le fichier de format exclure / inclut pour la ligne de commande exclude = "for f dans excludedFiles: exclude + = '" * /' + f + '"' exclude = exclude.strip () include =" pour f dans includedFiles: include + = '"* /' + f +" "'include = include.strip () # Changer de répertoire os.chdir (projParentDir) # Supprimer le fichier zip existant si os.path.exists (projDir +" .zip "): os.system ("rm" + nom_projet + ".zip") # Compressez le fichier os.system ("zip -rq9" + nom_proj + ".zip" + nom_proj + "-x" + exclus) os.system ("zip -rq9 "+ projName +" .zip "+ projName +" -i "+ include)

Les propriétés de la commande

Nous en avons tous terminé avec le code qui encapsule notre projet. Nous avons maintenant besoin d'un moyen de déclencher cela de l'intérieur dans la fenêtre du projet. Le volet de droite de la Fenêtre Edit Bundle contient les propriétés de notre commande. Nous pouvons y assigner une touche de raccourci pour cette commande, ainsi que modifier certains comportements de notre commande. Définissez ces propriétés dans le volet de droite:

  • Clé équivalente à option + commander + décalage + s
  • Contribution à Rien
  • Sortie à Afficher dans l'infobulle

Essaye le

Enregistrez vos modifications (Fichier> Enregistrer) et fermez le Fenêtre de l'éditeur de paquet.

Maintenant, chaque fois que vous souhaitez configurer votre projet pour le déploiement, vous pouvez simplement utiliser le raccourci clavier option + commander + décalage + s. Vous pouvez également accéder à la commande de package en y accédant depuis la barre de menus située sous Liasses.


Conclusion

Dans cet article, nous avons découvert un moyen plus rapide de créer un fichier zip final pour votre projet WordPress en créant votre propre ensemble TextMate. J'espère que vous pourrez l'utiliser dans votre flux de travail de développement pour gagner du temps..

J'espère que vous avez apprécié cet article. J'apprécie hautement vos commentaires, commentaires et suggestions.

Utiliserez-vous cette méthode dans votre flux de travail de codage? Partagez vos pensées ci-dessous!