public static function compile($source, $path, $todir, $importdirs) { // call Less to compile $parser = new lessc(); $parser->setImportDir(array_keys($importdirs)); $parser->setPreserveComments(true); $output = $parser->compile($source); // update url $arr = preg_split(CANVASLess::$rsplitbegin . CANVASLess::$kfilepath . CANVASLess::$rsplitend, $output, -1, PREG_SPLIT_DELIM_CAPTURE); $output = ''; $file = $relpath = ''; $isfile = false; foreach ($arr as $s) { if ($isfile) { $isfile = false; $file = $s; $relpath = CANVASLess::relativePath($todir, dirname($file)); $output .= "\n#" . CANVASLess::$kfilepath . "{content: \"{$file}\";}\n"; } else { $output .= ($file ? CANVASPath::updateUrl($s, $relpath) : $s) . "\n\n"; $isfile = true; } } return $output; }
public static function compile($source, $path, $todir, $importdirs) { $parser = new Less_Parser(); $parser->SetImportDirs($importdirs); $parser->parse($source, CANVASLess::relativePath($todir, dirname($path)) . basename($path)); $output = $parser->getCss(); return $output; }