Creare un pacchetto TextMate per impacchettare facilmente il tuo progetto WordPress

Se hai sviluppato un tema o un plugin per WordPress, sai quanto velocemente il tuo codebase può crescere in un breve lasso di tempo.

Si inizia con pochi file PHP, JavaScript e CSS. Quindi ti ritrovi a creare risorse immagine e ad aggiungerle al tuo codice base insieme alle loro controparti di file Photoshop. Dopo un po 'includerai anche altre librerie PHP di terze parti. Poi, quando sarai finalmente pronto per spedire il tuo progetto WordPress, finirai per avere una rete di più tipi di file come * .php, * .css, * .scss, * .js, * .min.js, * .png e * .psd, forse avrai alcuni file nascosti come .DS_Store.

Alla fine dovresti pulire la base di codici prima di zipparli tutti per i tuoi utenti. Normalmente, questo significa semplicemente che si duplicano i file, quindi si esegue la scansione di ogni singola directory eliminando tutti i file indesiderati. Dovresti quindi archiviare il tuo progetto, quindi forse usare un'app di terze parti per rimuovere i file nascosti.

Questo articolo ti insegnerà come automatizzare questo processo di confezionamento creando un pacchetto TextMate che farebbe tutto per noi con un unico tasto di scelta rapida.

Questo articolo contiene alcuni suggerimenti su TextMate, un editor di codice per Mac. È possibile trovare ulteriori informazioni su TextMate dal sito Web di MacroMate

Introduzione ai bundle di TextMate

I bundle in TextMate sono come plugin in WordPress. I plugin WordPress forniscono funzionalità aggiuntive al core di WordPress. Allo stesso modo, i bundle di TextMate forniscono funzionalità aggiuntive a TextMate, come ad esempio la colorazione di parti del codice per una migliore esperienza di codifica o l'esecuzione di un determinato processo quando viene premuto un tasto di scelta rapida.

Una cosa buona di TextMate Bundles è che puoi usare qualsiasi linguaggio di programmazione disponibile localmente sul tuo sistema. Alcune lingue disponibili nativamente per Mac sono Bash, Perl, Ruby e Python. Ai fini di questo articolo, userò Python per la codifica del pacchetto.


Cosa stiamo andando a costruire?

Prima di iniziare la codifica, per prima cosa dobbiamo finalizzare ciò che vogliamo che il nostro bundle faccia. Dobbiamo essere in grado di:

  • pacchetto tutto il nostro progetto in un file zip,
  • specificare quali file non devono essere inclusi,
  • specificare quali file devono sempre essere inclusi e
  • attivarlo con il tasto di scelta rapida opzione + comando + cambio + S

Creare il nostro pacchetto

Ora passiamo alla creazione del nostro pacchetto. Apri l'editor Bundle dalla barra dei menu di TextMate (Pacchetti> Modifica pacchetti ... ). Una finestra dovrebbe apparire con il seguente aspetto:

Con la finestra Bundle aperta e attualmente nella tua vista, crea un nuovo file dalla barra dei menu (File> Nuovo) quindi selezionare per creare un nuovo impacchettare:

Di default il tuo Bundle sta per essere nominato "YourUserName's Bundle", puoi cambiarlo nel pannello di destra del Modifica pacchetto finestra.

Con il tuo pacchetto selezionato, vai di nuovo alla barra dei menu, quindi crea un nuovo file (File> Nuovo) ma questa volta selezionare Comando:

Cambia il nome del tuo "Senza titolo" comando in qualcosa di più descrittivo come "Pacchetto WP Project".

La versione che sto usando è 2.0-alpha.9503, le schermate qui potrebbero differire dallo schermo, ma i contenuti dovrebbero essere gli stessi.

Il codice di comando

Al momento, abbiamo un nuovo pacchetto con un comando che non fa ancora nulla.

Nel Modifica la finestra del pacchetto, clicca sul comando che abbiamo appena creato. Nel riquadro inferiore della finestra c'è il codice che verrà eseguito quando viene attivato il nostro comando. Dal momento che il comando è nuovo, TextMate è stato abbastanza gentile da inserire un campione Ciao mondo codice per noi:

 #! / System / Library / Frameworks / Ruby.framework / Versions / 1.8 / usr / bin / ruby ​​-wKU mette 'Hello world'

Rimuovi quel codice e iniziamo a scrivere da soli.


1. Shebang

Prima di tutto, dobbiamo specificare quale interprete utilizzare per il nostro codice. Il nostro codice sarà in Python, quindi dobbiamo metterlo come prima linea del nostro codice:

 #! / usr / bin / env python

2. Alcune opzioni

La funzione principale del nostro comando è l'output a pulito pacchetto il nostro progetto. Abbiamo bisogno di un modo per specificare quali tipi di file dovrebbero e non dovrebbero essere inclusi nel nostro file zip di output.

 # File da escludere excludedFiles = ['. *', '* .Psd', 'languages ​​/ *. Mo', 'languages ​​/ *. Po'] # File da includere includedFiles = ['languages ​​/ en_US.mo', ' lingue / en_US.po ']

Il excludedFiles array specifica di non includere file nascosti, risorse di Photoshop e file di lingua dal nostro pacchetto. Abbiamo incluso i file di lingua qui poiché durante il test del tuo progetto, potresti aver creato più file di lingua che non vuoi includere nel pacchetto finale.

D'altra parte, il includedFiles l'array forza l'inclusione di file di lingua solo inglese (USA).

È possibile estendere questi array per adattarlo alle proprie esigenze. Ad esempio, se stai usando CodeKit nel tuo progetto, potresti voler escludere i file delle impostazioni di CodeKit codekit-config.json e config.rb


3. Variabili di progetto

Prima di poter archiviare qualsiasi file di progetto, è necessario prima sapere dove si trova il nostro progetto TextMate. TextMate ci mostra alcune proprietà essenziali che sono accessibili con Python os biblioteca:

 import os # La directory principale del nostro progetto projDir = os.environ ['TM_PROJECT_DIRECTORY'] # Nome del progetto projName = projDir [projDir.rindex ('/') + 1:] # Directory padre del progetto projParentDir = projDir [: projDir.rindex (' / ')]

4. Creare il pacchetto Zip

L'ultimo pezzo del codice è eseguire la confezione. TextMate non ha la capacità di archiviare le directory, ma fortunatamente per noi, i Mac hanno il cerniera lampo utility da riga di comando integrata.

Useremo questo comando all'interno del nostro script Python:

 # Formato file exclude / includes per la riga di comando exclude = "per f in excludedFiles: exclude + = '" * /' + f + '"' exclude = exclude.strip () include =" per f in includedFiles: include + = '"* /' + f + '"' include = include.strip () # Cambia directory os.chdir (projParentDir) # Elimina file zip esistente se os.path.exists (projDir + ".zip"): os.system ("rm" + projName + ".zip") # Zip it su os.system ("zip -rq9" + projName + ".zip" + projName + "-x" + exclude) os.system ("zip -rq9 "+ projName +" .zip "+ projName +" -i "+ include)

Le proprietà del comando

Abbiamo finito con il codice che esegue la confezione del nostro progetto. Ora abbiamo bisogno di un modo per attivarlo dall'interno nella finestra del progetto. Il riquadro destro del Modifica la finestra del pacchetto contiene le proprietà del nostro comando. Lì possiamo assegnare un tasto di scelta rapida per questo comando e modificare alcuni altri comportamenti del nostro comando. Imposta queste proprietà nel riquadro di destra:

  • Equivalente chiave a opzione + comando + cambio + S
  • Ingresso a Niente
  • Produzione a Mostra in punta di comando

Provalo

Salva le tue modifiche (File> Salva) e chiudere il Finestra dell'editor di pacchetti.

Ora ogni volta che si desidera impacchettare il progetto per la distribuzione, è sufficiente utilizzare il tasto di scelta rapida opzione + comando + cambio + S. Puoi anche accedere al comando del pacchetto navigando ad esso dalla barra dei menu sotto gruppi.


Conclusione

In questo articolo abbiamo appreso un modo più veloce per creare un file zip finale per il tuo progetto WordPress creando il tuo bundle TextMate. Si spera che tu possa usarlo nel tuo flusso di lavoro di sviluppo per farti risparmiare tempo.

Spero che questo articolo ti sia piaciuto. Apprezzo molto qualsiasi commento, commento e suggerimento.

Utilizzerai questo metodo nel tuo flusso di lavoro di codifica? Condividi i tuoi pensieri qui sotto!