Suggerimento rapido come estendere CodeKit con Hook

Il numero di strumenti di progettazione e sviluppo che abbiamo a nostra disposizione cresce con il passare dei mesi. Tuttavia, alcuni di noi sono abbastanza a proprio agio con i nostri strumenti attuali e un flusso di lavoro che potrebbe non essere più alla moda come una volta.

Ad esempio, mentre altri si immergono in PostCSS o Gulp, mi sto ancora divertendo con CodeKit come app per i progetti personali; progetti su cui lavoro senza altri sviluppatori coinvolti. CodeKit viene fornito con un numero di strumenti come JSHint, Uglify, Bower, Autoprefixer e i soliti compilatori di CSS-Processor. Tutto ciò è stato sufficiente e mi ha servito bene. Finché, cioè, avevo bisogno di usare RTLCSS, che non fa parte di CodeKit per impostazione predefinita.

In questo suggerimento rapido ti mostrerò come usare Hook CodeKit per estendere CodeKit e aggiungere strumenti extra al tuo flusso di lavoro.

RTLCSS

RTLCSS rende flipping CSS per un sistema di scrittura da destra a sinistra, come la scrittura araba, un gioco da ragazzi. È disponibile per Gulp, Grunt, PostCSS sotto forma di plug-in e CLI (Command Line Interface). L'ultima opzione ci dà la possibilità di integrarla con CodeKit attraverso ganci.

In alto vedrai un esempio di script arabo scritto da destra a sinistra con due tipi di carattere diversi da Google Web Fonts. Il merito va a Michael Jasper. 

Nota: Stiamo lavorando con RTLCSS in questo esempio, ma il principio può essere utilizzato per molti altri strumenti.

Hook CodeKit

ganci sono stati disponibili per l'uso da CodeKit 2, tuttavia molte persone non sono a conoscenza dell'esistenza di questa funzionalità, lasciandola sottoutilizzata in modo massivo. Gli hook ci consentono di eseguire script: script AppleScript o Shell (bash), ogni volta che CodeKit compila file in un progetto. CodeKit espone anche due variabili che possono essere utilizzate all'interno di tali script all'interno di Hooks. Daremo un'occhiata a questi in seguito.

  • CK_INPUT_PATHS: Elenco dei sorgenti del file compilato inclusi quelli importati.
  • CK_OUTPUT_PATHS: Elenco dei percorsi dei file compilati.

Usando i ganci

Per cominciare, avremo bisogno del rtlcss comando installato. Installa il comando attraverso npm a livello globale, quindi sarà accessibile ovunque sul nostro sistema.

npm install rtlcss -g

Non sei sicuro di cosa sta succedendo qui? Check-out:

Impostazioni del progetto CodeKit

Supponendo di aver aggiunto la cartella del progetto in CodeKit (in caso contrario, trascina la cartella nella finestra di CodeKit per iniziare), vai al Impostazioni del progetto e scorrere verso il basso ganci linguetta.

Fare clic sull'icona più per creare un nuovo Hook, rinominare il nome di Hook per chiarezza e selezionare Script di Shell dove vedi Esegui quanto segue.

Selezionare le condizioni per quando eseguire lo script Shell. In questo caso, vorremmo che venisse eseguito al termine dell'output .css quindi abbiamo impostato la condizione per: 

  • Qualunque di quanto segue sono vere 
  • Il percorso di output di qualsiasi file elaborato
  • finisce con
  • .css

Il copione

All'interno della casella vuota, aggiungi il seguente script.

$ CK_OUTPUT_PATHS: = "" CK_OUTPUT_PATHS = ($ CK_OUTPUT_PATHS //: /) per i in "$ CK_OUTPUT_PATHS [@]" do o = "$ i / .css / .rtl.css" rtlcss "$ i" "$ o" fatto 

La prima riga dello script inizializza il CK_OUTPUT_PATHS variabile come una stringa vuota. La seconda riga dividerà i percorsi in una matrice. Se guardiamo nella pagina di aiuto, possiamo vedere che CodeKit può passare i due punti separati di file nella variabile. Per esempio:

/Users/thoriq/Sites/www/wp/style.css:/Users/thoriq/Sites/www/wp/admin.css 

Questo può accadere se abbiamo importato un file all'interno di due o più file contemporaneamente, quindi l'array. Quindi saremo in grado di eseguire la riga di comando in ognuno dei file compilati attraverso il per ciclo.

Infine, il O = "$ i / css / .rtl.css" line imposta l'output dei nostri file elaborati con rtlcss comando. In questo caso, aggiungeremo i fogli di stile con .rtl.css.

Esegui i ganci

Aggiungi alcune modifiche ai fogli di stile SCSS, LESS o Stylus. Salva, una volta che questi file sono stati compilati, dovresti trovare un nuovo foglio di stile compilato con .rtl.css estensione.

Nel nostro caso, anche le regole di stile all'interno di questi file sono state convertite per soddisfare la direzione della scrittura RTL.

Esempio di codice di Mohammad Younes creatore di RTLCSS

Conclusione

Questo è stato solo un suggerimento per farti conoscere le possibilità che gli Hooks possono darci. Prova questo esempio e vedi come vai avanti, o magari prova un altro strumento come CSSNano. In quale altro modo sceglieresti di estendere CodeKit? Lascia i tuoi suggerimenti e idee nei commenti!

Ulteriori risorse

  • Pagina di aiuto di CodeKit Hooks
  • The Fundamental of Bash Scripting