primo commit
This commit is contained in:
189
libraries/f0f/less/formatter/classic.php
Normal file
189
libraries/f0f/less/formatter/classic.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?php
|
||||
/**
|
||||
* @package FrameworkOnFramework
|
||||
* @subpackage less
|
||||
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
// Protect from unauthorized access
|
||||
defined('F0F_INCLUDED') or die;
|
||||
|
||||
/**
|
||||
* This class is taken verbatim from:
|
||||
*
|
||||
* lessphp v0.3.9
|
||||
* http://leafo.net/lessphp
|
||||
*
|
||||
* LESS css compiler, adapted from http://lesscss.org
|
||||
*
|
||||
* Copyright 2012, Leaf Corcoran <leafot@gmail.com>
|
||||
* Licensed under MIT or GPLv3, see LICENSE
|
||||
*
|
||||
* @package FrameworkOnFramework
|
||||
* @since 2.0
|
||||
*/
|
||||
class F0FLessFormatterClassic
|
||||
{
|
||||
public $indentChar = " ";
|
||||
|
||||
public $break = "\n";
|
||||
|
||||
public $open = " {";
|
||||
|
||||
public $close = "}";
|
||||
|
||||
public $selectorSeparator = ", ";
|
||||
|
||||
public $assignSeparator = ":";
|
||||
|
||||
public $openSingle = " { ";
|
||||
|
||||
public $closeSingle = " }";
|
||||
|
||||
public $disableSingle = false;
|
||||
|
||||
public $breakSelectors = false;
|
||||
|
||||
public $compressColors = false;
|
||||
|
||||
/**
|
||||
* Public constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->indentLevel = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indent a string by $n positions
|
||||
*
|
||||
* @param integer $n How many positions to indent
|
||||
*
|
||||
* @return string The indented string
|
||||
*/
|
||||
public function indentStr($n = 0)
|
||||
{
|
||||
return str_repeat($this->indentChar, max($this->indentLevel + $n, 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the code for a property
|
||||
*
|
||||
* @param string $name The name of the porperty
|
||||
* @param string $value The value of the porperty
|
||||
*
|
||||
* @return string The CSS code
|
||||
*/
|
||||
public function property($name, $value)
|
||||
{
|
||||
return $name . $this->assignSeparator . $value . ";";
|
||||
}
|
||||
|
||||
/**
|
||||
* Is a block empty?
|
||||
*
|
||||
* @param stdClass $block The block to check
|
||||
*
|
||||
* @return boolean True if the block has no lines or children
|
||||
*/
|
||||
protected function isEmpty($block)
|
||||
{
|
||||
if (empty($block->lines))
|
||||
{
|
||||
foreach ($block->children as $child)
|
||||
{
|
||||
if (!$this->isEmpty($child))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a CSS block
|
||||
*
|
||||
* @param stdClass $block The block definition to output
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function block($block)
|
||||
{
|
||||
if ($this->isEmpty($block))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$inner = $pre = $this->indentStr();
|
||||
|
||||
$isSingle = !$this->disableSingle &&
|
||||
is_null($block->type) && count($block->lines) == 1;
|
||||
|
||||
if (!empty($block->selectors))
|
||||
{
|
||||
$this->indentLevel++;
|
||||
|
||||
if ($this->breakSelectors)
|
||||
{
|
||||
$selectorSeparator = $this->selectorSeparator . $this->break . $pre;
|
||||
}
|
||||
else
|
||||
{
|
||||
$selectorSeparator = $this->selectorSeparator;
|
||||
}
|
||||
|
||||
echo $pre .
|
||||
implode($selectorSeparator, $block->selectors);
|
||||
|
||||
if ($isSingle)
|
||||
{
|
||||
echo $this->openSingle;
|
||||
$inner = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $this->open . $this->break;
|
||||
$inner = $this->indentStr();
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($block->lines))
|
||||
{
|
||||
$glue = $this->break . $inner;
|
||||
echo $inner . implode($glue, $block->lines);
|
||||
|
||||
if (!$isSingle && !empty($block->children))
|
||||
{
|
||||
echo $this->break;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($block->children as $child)
|
||||
{
|
||||
$this->block($child);
|
||||
}
|
||||
|
||||
if (!empty($block->selectors))
|
||||
{
|
||||
if (!$isSingle && empty($block->children))
|
||||
{
|
||||
echo $this->break;
|
||||
}
|
||||
|
||||
if ($isSingle)
|
||||
{
|
||||
echo $this->closeSingle . $this->break;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $pre . $this->close . $this->break;
|
||||
}
|
||||
|
||||
$this->indentLevel--;
|
||||
}
|
||||
}
|
||||
}
|
||||
50
libraries/f0f/less/formatter/compressed.php
Normal file
50
libraries/f0f/less/formatter/compressed.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/**
|
||||
* @package FrameworkOnFramework
|
||||
* @subpackage less
|
||||
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
// Protect from unauthorized access
|
||||
defined('F0F_INCLUDED') or die;
|
||||
|
||||
/**
|
||||
* This class is taken verbatim from:
|
||||
*
|
||||
* lessphp v0.3.9
|
||||
* http://leafo.net/lessphp
|
||||
*
|
||||
* LESS css compiler, adapted from http://lesscss.org
|
||||
*
|
||||
* Copyright 2012, Leaf Corcoran <leafot@gmail.com>
|
||||
* Licensed under MIT or GPLv3, see LICENSE
|
||||
*
|
||||
* @package FrameworkOnFramework
|
||||
* @since 2.0
|
||||
*/
|
||||
class F0FLessFormatterCompressed extends F0FLessFormatterClassic
|
||||
{
|
||||
public $disableSingle = true;
|
||||
|
||||
public $open = "{";
|
||||
|
||||
public $selectorSeparator = ",";
|
||||
|
||||
public $assignSeparator = ":";
|
||||
|
||||
public $break = "";
|
||||
|
||||
public $compressColors = true;
|
||||
|
||||
/**
|
||||
* Indent a string by $n positions
|
||||
*
|
||||
* @param integer $n How many positions to indent
|
||||
*
|
||||
* @return string The indented string
|
||||
*/
|
||||
public function indentStr($n = 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
36
libraries/f0f/less/formatter/joomla.php
Normal file
36
libraries/f0f/less/formatter/joomla.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* @package FrameworkOnFramework
|
||||
* @subpackage less
|
||||
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
// Protect from unauthorized access
|
||||
defined('F0F_INCLUDED') or die;
|
||||
|
||||
/**
|
||||
* This class is taken verbatim from:
|
||||
*
|
||||
* lessphp v0.3.9
|
||||
* http://leafo.net/lessphp
|
||||
*
|
||||
* LESS css compiler, adapted from http://lesscss.org
|
||||
*
|
||||
* Copyright 2012, Leaf Corcoran <leafot@gmail.com>
|
||||
* Licensed under MIT or GPLv3, see LICENSE
|
||||
*
|
||||
* @package FrameworkOnFramework
|
||||
* @since 2.1
|
||||
*/
|
||||
class F0FLessFormatterJoomla extends F0FLessFormatterClassic
|
||||
{
|
||||
public $disableSingle = true;
|
||||
|
||||
public $breakSelectors = true;
|
||||
|
||||
public $assignSeparator = ": ";
|
||||
|
||||
public $selectorSeparator = ",";
|
||||
|
||||
public $indentChar = "\t";
|
||||
}
|
||||
34
libraries/f0f/less/formatter/lessjs.php
Normal file
34
libraries/f0f/less/formatter/lessjs.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* @package FrameworkOnFramework
|
||||
* @subpackage less
|
||||
* @copyright Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
// Protect from unauthorized access
|
||||
defined('F0F_INCLUDED') or die;
|
||||
|
||||
/**
|
||||
* This class is taken verbatim from:
|
||||
*
|
||||
* lessphp v0.3.9
|
||||
* http://leafo.net/lessphp
|
||||
*
|
||||
* LESS css compiler, adapted from http://lesscss.org
|
||||
*
|
||||
* Copyright 2012, Leaf Corcoran <leafot@gmail.com>
|
||||
* Licensed under MIT or GPLv3, see LICENSE
|
||||
*
|
||||
* @package FrameworkOnFramework
|
||||
* @since 2.0
|
||||
*/
|
||||
class F0FLessFormatterLessjs extends F0FLessFormatterClassic
|
||||
{
|
||||
public $disableSingle = true;
|
||||
|
||||
public $breakSelectors = true;
|
||||
|
||||
public $assignSeparator = ": ";
|
||||
|
||||
public $selectorSeparator = ",";
|
||||
}
|
||||
3450
libraries/f0f/less/less.php
Normal file
3450
libraries/f0f/less/less.php
Normal file
File diff suppressed because it is too large
Load Diff
2235
libraries/f0f/less/parser/parser.php
Normal file
2235
libraries/f0f/less/parser/parser.php
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user