Opprette en TextMate Bundle for å enkelt pakke ditt WordPress Project

Hvis du har utviklet et WordPress-tema eller et plugin, vet du hvor raskt kodebase kan vokse på bare kort tid.

Du starter med bare noen få PHP-, JavaScript- og CSS-filer. Deretter finner du deg selv å skape bildeegenskaper og legge dem til kodebase sammen med deres Photoshop-filmodeller. Etter en stund vil du også inkludere andre tredjeparts PHP biblioteker. Så når du endelig er klar til å sende ditt WordPress-prosjekt, vil du ende opp med å ha en web av flere filtyper som * .php, * Css, * .scss, * JS, * .min.js, * .png og * .psd, kanskje du vil ha noen skjulte filer som .DS_Store.

Du vil til slutt trenge å rense kodebasen din før du zipper dem helt opp for brukerne dine. Normalt betyr dette bare at du dupliserer filene dine, og deretter skann hver katalog hvor du sletter alle uønskede filer. Du vil da arkivere prosjektet ditt og kanskje bruke en tredjepartsprogram for å fjerne de skjulte filene.

Denne artikkelen vil lære deg hvordan du automatiserer denne emballasjonsprosessen ved å bygge en TextMate Bundle som ville gjøre alt for oss med en enkelt snarveisnøkkel.

Denne artikkelen lærer om noen tips angående TextMate, en fantastisk kodeditor for Mac. Du finner mer informasjon om TextMate fra MacroMates nettsted

Intro til TextMate Bundles

Bundler i TextMate er som plugins i WordPress. WordPress-plugins gir ekstra funksjonalitet til WordPress-kjerne. På samme måte gir TextMate-pakker tilleggsfunksjonalitet til TextMate, for eksempel fargelegging av deler din kode for en bedre kodingserfaring, eller å utføre en viss prosess når du trykker på en hurtigtast..

En god ting om TextMate Bundles er at du kan bruke hvilket som helst programmeringsspråk som er lokalt tilgjengelig for systemet ditt. Noen språk som er tilgjengelige for Mac er Bash, Perl, Ruby og Python. I denne artikkelen skal jeg bruke Python for koding av pakken.


Hva skal vi bygge?

Før vi begynner koding, må vi først ferdigstille det vi ønsker at vårt bunt skal gjøre. Vi må kunne:

  • pakke hele prosjektet vårt i en zip-fil,
  • spesifiser hvilke filer som ikke skal inkluderes,
  • spesifiser hvilke filer som alltid skal inkluderes, og
  • utløs dette med snarveien alternativ + kommando + skifte + s

Opprette vår pakke

La oss nå hoppe inn i å lage vårt bunt. Åpne Bundle-editoren fra TextMates menylinje (Bundler> Rediger pakker ... ). Et vindu bør komme opp med det som ser slik ut:

Med Bundle-vinduet åpent og for øyeblikket i ditt syn, opprett en ny fil fra menylinjen (Fil> Ny) velg deretter for å opprette en ny Bunt:

Som standard vil bundlen din bli navngitt "YourUserName's Bundle", Du kan endre det i høyre rute av Rediger pakke vindu.

Når du har valgt Bundle, skal du gå tilbake til menylinjen, og deretter opprette en ny fil (Fil> Ny), men denne gangen velg Kommando:

Endre navnet til din "uten navn" kommandoen til noe mer beskrivende som "Package WP Project".

Den versjonen jeg bruker er 2,0-alpha.9503, Skjermbildene her kan variere fra skjermen, men innholdet skal være det samme.

Kommandokoden

Fra øyeblikket har vi en ny pakke med en kommando som ikke gjør noe enda.

I Rediger Bundle-vinduet, klikk på kommandoen som vi nettopp har opprettet. I nederste rute i vinduet er koden som vil bli utført når vår kommando utløses. Siden kommandoen er ny, var TextMate hyggelig nok til å sette inn noen eksempler Hei Verden kode for oss:

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

Fjern koden og la oss begynne å skrive vår egen.


1. Shebang

Først må vi spesifisere hvilken tolk som skal brukes til koden vår. Vår kode vil være i Python, så vi må sette dette som første linje i koden vår:

 #! / usr / bin / env python

2. Noen alternativer

Hovedfunksjonen til vår kommando er utgang a ren pakke vårt prosjekt. Vi trenger en måte å spesifisere hvilke typer filer skal og ikke skal inkluderes i vår zip-fil.

 # Filer som skal utelukkes ekskludertFiles = ['. *', '* .Psd', 'languages ​​/ *. Mo', 'languages ​​/ *. Po'] # Filer som skal inkluderes includedFiles = ['languages ​​/ en_US.mo' språk / en_US.po ']

De excludedFiles array angir ikke å inneholde skjulte filer, Photoshop-ressurser og språkfiler fra pakken. Vi har tatt med språkfiler her siden du testet prosjektet ditt, kan det hende du har opprettet flere språkfiler som du ikke vil bli med i den endelige pakken.

På den annen side, includedFiles array krever inkludering av engelsk (USA) bare språkfiler.

Du kan utvide disse arrays for å skreddersy det til dine egne behov. Hvis du for eksempel bruker CodeKit i prosjektet ditt, kan du utelukke CodeKits innstillingsfiler codekit-config.json og config.rb


3. Prosjektvariabler

Før vi kan arkivere noen av prosjektfilene, må vi først vite hvor vårt TextMate-prosjekt ligger. TextMate avslører noen viktige egenskaper for oss som er tilgjengelige med Python os bibliotek:

 import os # Prosjektets hovedkatalog projDir = os.environ ['TM_PROJECT_DIRECTORY'] # Prosjektnavn projName = projDir [projDir.rindex ('/') + 1:] # Prosjektforeldrekatalog projParentDir = projDir [: projDir.rindex / ')]

4. Opprett Zip-pakken

Det siste stykket av koden er å utføre emballasjen. TextMate selv har ikke muligheten til å arkivere kataloger, men heldigvis for oss har Macs den glidelås kommandolinjeverktøy bygget inn.

Vi skal bruke den kommandoen i Python-skriptet vårt:

 # Formatfil ekskluder / inkluderer for kommandolinjen ekskluder = "for f i ekskludertFiler: ekskluder + = '" * /' + f + '"' ekskluder = ekskluder.strip () include =" for f i includedFiles: include + = '' / '+ f +' "'include = include.strip () # Endre katalog os.chdir (projParentDir) # Slett eksisterende zip-fil hvis os.path.exists (projDir +" .zip "): os.system ("rm" + projName + ".zip") # Zip det opp os.system ("zip -rq9" + projName + ".zip" + projName + "-x" + ekskluder) os.system ("zip -rq9 "+ projName +" .zip "+ projName +" -i "+ inkluderer)

Kommandoegenskapene

Vi er alle ferdige med koden som utfører emballasjen til prosjektet vårt. Nå trenger vi en måte å utløse dette fra innsiden i prosjektvinduet. Den høyre ruten i Rediger Bundle-vinduet inneholder egenskapene til vår kommando. Der kan vi tilordne en snarvei til denne kommandoen, samt endre noen andre oppføringer av vår kommando. Sett disse egenskapene i den høyre ruten:

  • Nøkkelekvivalent til alternativ + kommando + skifte + s
  • Input til Ingenting
  • Produksjon til Vis i Verktøy Tips

Prøv det

Lagre endringene dine (Fil> Lagre) og lukk Bundle editor-vinduet.

Nå når du vil pakke prosjektet ditt for distribusjon, kan du bare bruke snarveien alternativ + kommando + skifte + s. Du kan også få tilgang til pakkekommandoen ved å navigere til den fra menylinjen under pakker.


Konklusjon

I denne artikkelen lærte vi om en raskere måte å opprette en endelig zip-fil for WordPress-prosjektet ved å lage din egen TextMate-pakke. Forhåpentligvis kan du bruke dette i din arbeidsflyt for å spare tid.

Jeg håper du likte denne artikkelen. Jeg setter stor pris på tilbakemeldinger, kommentarer og forslag.

Vil du bruke denne metoden i den kodende arbeidsflyten din? Del dine tanker nedenfor!