Crearea unui pachet TextMate pentru pachetul cu ușurință al proiectului dvs. WordPress

Dacă ați dezvoltat o temă WordPress sau un plugin, atunci știți cât de repede se poate dezvolta baza dvs. de cod în doar o scurtă perioadă de timp.

Începeți cu doar câteva fișiere PHP, JavaScript și CSS. Apoi, vă aflați în crearea de elemente de imagine și adăugarea acestora la codul dvs. de cod, împreună cu corespondenții lor de Photoshop. După un timp, veți include și alte biblioteci PHP de la terțe părți. Atunci când sunteți în sfârșit gata să livrați proiectul WordPress, veți ajunge să aveți o rețea de tipuri de fișiere multiple * .php, * .css, * .scss, * .js, * .min.js, * .png și * .psd, Poate că veți avea niște fișiere ascunse .DS_Store.

În cele din urmă, va trebui să vă curățați codul înainte de a le zipi pe toți pentru utilizatorii dvs. În mod normal, acest lucru înseamnă doar că vă duplicați fișierele, apoi scanați fiecare director ștergând toate fișierele nedorite. Apoi, ar fi arhivat proiectul dvs., apoi puteți folosi o aplicație terță parte pentru a elimina fișierele ascunse.

Acest articol vă va învăța cum să automatizați acest proces de ambalare prin construirea unui pachet TextMate care ar face totul pentru noi printr-o singură comandă rapidă.

Acest articol învață despre câteva sfaturi cu privire la TextMate, un editor de cod minunat pentru Mac-uri. Puteți găsi mai multe informații despre TextMate de pe site-ul MacroMate

Intră în pachetele TextMate

Bundle în TextMate sunt ca plugin-uri în WordPress. Pluginurile WordPress oferă funcționalitate suplimentară nucleului WordPress. În același mod, pachetele TextMate oferă funcționalități suplimentare pentru TextMate, cum ar fi colorarea părților codului pentru o experiență de codificare mai bună sau efectuarea unui anumit proces când este apăsată o tastă rapidă.

Un lucru bun despre TextMate Bundles este că puteți folosi orice limbaj de programare disponibil local pentru sistemul dvs. Unele limbi disponibile pentru Mac sunt Bash, Perl, Ruby și Python. În scopul acestui articol, voi folosi Python pentru a codifica Bundle-ul.


Ce vom construi?

Înainte de a începe codarea, mai întâi trebuie să finalizăm ceea ce ne dorim ca pachetul nostru să facă. Trebuie să putem:

  • pachet întregul nostru proiect într-un fișier zip,
  • specificați care fișiere nu ar trebui incluse,
  • specificați fișierele care trebuie incluse întotdeauna și
  • declanșați acest lucru cu ajutorul tastei de comandă rapidă opțiune + comanda + schimb + s

Crearea pachetului nostru

Acum hai să intrăm în crearea pachetului nostru. Deschideți editorul Bundle din bara de meniu a TextMate (Bundles> Editare pachete ... ). O fereastră ar trebui să apară cu faptul că arată astfel:

Cu fereastra Bundle deschisă și în prezent în vizualizarea dvs., creați un fișier nou din bara de meniu (Fișier> Nou) apoi selectați pentru a crea un nou Pachet:

Implicit Bundle dvs. va fi numit "Bundle YourUserName", poți să o schimbi în panoul din dreapta al paginii Editați Bundle fereastră.

Cu ajutorul pachetului dvs. selectat, reveniți din nou la bara de meniu, apoi creați un fișier nou (Fișier> Nou), dar de data aceasta selectați Comanda:

Schimbați numele dvs. „Fără titlu“ comanda în ceva mai descriptiv "Proiectul pachetului WP".

Versiunea pe care o folosesc este 2.0-alpha.9503, capturile de ecran aici ar putea diferi de ecranul dvs., dar conținutul ar trebui să fie același.

Codul de comandă

În momentul de față, avem un nou pachet cu o comandă care nu face nimic încă.

În Editați fereastra Bundle, faceți clic pe comanda pe care tocmai am creat-o. În panoul din partea de jos a ferestrei este codul care va fi executat atunci când comanda noastră este declanșată. Din moment ce comanda este nouă, TextMate a fost suficient de bun pentru a pune o mostră Salut Lume cod pentru noi:

 ! / System / Library / Frameworks / Ruby.framework / Versiuni / 1.8 / usr / bin / ruby-wKU plasează "Hello world"

Eliminați codul respectiv și începeți să ne scrieți propriul.


1. Shebang

În primul rând, trebuie să specificăm ce interpret să folosească pentru codul nostru. Codul nostru va fi în Python, așa că trebuie să punem acest lucru ca prima linie a codului nostru:

 #! / usr / bin / env Python

2. Unele Opțiuni

Funcția principală a comenzii noastre este ieșirea a curat pachetul nostru de proiect. Avem nevoie de o modalitate de a specifica care tipuri de fișiere ar trebui și nu ar trebui să fie incluse în fișierul nostru de ieșire zip.

 # Fișiere pentru a exclude excluseFile = ['. *', '* .Psd', 'limbi / * .mo', 'limbi / *. limbi / en_US.po ']

excludedFiles array specifică faptul că nu includ fișierele ascunse, activele Photoshop și fișierele de limbă din pachetul nostru. Am inclus fișiere de limbă aici, deoarece în timp ce testați proiectul dvs., este posibil să fi creat mai multe fișiere lingvistice pe care nu doriți să le includeți în pachetul final.

Pe de altă parte, includedFiles array forțează includerea numai a fișierelor lingvistice în limba engleză (US).

Puteți extinde aceste tablouri pentru a le adapta la nevoile dvs. De exemplu, dacă utilizați CodeKit în proiectul dvs., vă recomandăm să excludeți fișierele de setări CodeKit codekit-config.json și config.rb


3. Variabilele proiectului

Înainte de a putea arhiva oricare dintre fișierele de proiect, trebuie mai întâi să știm unde se află proiectul nostru TextMate. TextMate expune niște proprietăți esențiale care sunt accesibile cu Python os bibliotecă:

 importul os # directorul principal al proiectului nostru projDir = os.environ ['TM_PROJECT_DIRECTORY'] # Nume proiect projName = projDir [projDir.rindex ('/') + 1:] # Proiect director părinte projParentDir = projDir [: projDir.rindex (' / ')]

4. Creați pachetul Zip

Ultima parte a codului este de a efectua ambalajul. TextMate însăși nu are capacitatea de a arhiva directoare, dar din fericire pentru noi, Mac-urile au zip comanda de linie de comanda integrata.

Vom folosi acea comandă în scriptul nostru Python:

 # Fișierul format exclude / include pentru linia de comandă exclude = "pentru f în excludeFiles: exclude + =" "*" + f + "" exclude = exclude.strip () include = "pentru f în inclusFiles: '' / '+' + '' 'include = include.strip () # Schimba directorul os.chdir (projParentDir) # Sterge fișierul zip existent dacă os.path.exists (projDir + ".zip"): os.system ("zip -rq9" + projName + ".zip" + projName + "-x" + exclude) os.system ("zip -rq9" "+ projName +" .zip "+ projName +" -i "+ include)

Proprietățile comenzii

Am terminat cu codul care efectuează ambalarea proiectului nostru. Acum avem nevoie de o modalitate de a declanșa acest lucru din interior în fereastra proiectului. Panoul din dreapta al paginii Editați fereastra Bundle conține proprietățile comenzii noastre. Acolo putem atribui o cheie de comenzi rapide pentru această comandă, precum și modifica alte comportamente ale comenzii noastre. Setați aceste proprietăți în panoul din partea dreaptă:

  • Echivalent echivalent la opțiune + comanda + schimb + s
  • Intrare la Nimic
  • producție la Afișați în Sfat utilitar

Încearcă

Salvați modificările (Fișier> Salvare) și închideți Border editor fereastră.

Acum, ori de câte ori doriți să împachetați proiectul pentru implementare, puteți folosi doar tasta de comandă rapidă opțiune + comanda + schimb + s. De asemenea, puteți accesa comanda pachetului navigând la acesta din bara de meniu de sub Grupări.


Concluzie

În acest articol, am aflat de o modalitate mai rapidă de a crea un fișier zip final pentru proiectul dvs. WordPress, prin crearea propriului pachet TextMate. Sperăm că puteți folosi acest lucru în fluxul de lucru pentru dezvoltare pentru a vă economisi timp.

Sper că ți-a plăcut acest articol. Apreciez foarte mult orice feedback, comentarii și sugestii.

Veți folosi această metodă în fluxul de lucru de codare? Împărtășește-ți gândurile de mai jos!

Cod