<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* CSS preprocessor registration.
*
* To add a new preprocessor (or replace an existing one), hook into the
* jetpack_custom_css_preprocessors filter and add an entry to the array
* that is passed in.
*
* Format is:
* $preprocessors[ UNIQUE_KEY ] => array( 'name' => 'Processor name', 'callback' => [processing function] );
*
* The callback function accepts a single string argument (non-CSS markup) and returns a string (CSS).
*
* @param array $preprocessors The list of preprocessors added thus far.
* @return array
*/
function jetpack_register_css_preprocessors( $preprocessors ) {
$preprocessors['less'] = array(
'name' => 'LESS',
'callback' => 'jetpack_less_css_preprocess',
);
$preprocessors['sass'] = array(
'name' => 'Sass (SCSS Syntax)',
'callback' => 'jetpack_sass_css_preprocess',
);
return $preprocessors;
}
add_filter( 'jetpack_custom_css_preprocessors', 'jetpack_register_css_preprocessors' );
/**
* Compile less prepocessors?
*
* @param string $less - less.
*/
function jetpack_less_css_preprocess( $less ) {
require_once __DIR__ . '/preprocessors/lessc.inc.php';
$compiler = new lessc();
try {
return $compiler->compile( $less );
} catch ( Exception $e ) {
return $less;
}
}
/**
* Compile sass prepocessors?
*
* @param string $sass - sass.
*/
function jetpack_sass_css_preprocess( $sass ) {
require_once __DIR__ . '/preprocessors/scss.inc.php';
$compiler = new scssc();
$compiler->setFormatter( 'scss_formatter' );
try {
return $compiler->compile( $sass );
} catch ( Exception $e ) {
return $sass;
}
}