/**
  * Sanitizes input.
  *
  * @return array
  */
 public function sanitize()
 {
     $input = $this->all();
     $parser = new \Sabberworm\CSS\Parser($input['boardCustomCSS']);
     $style = $parser->parse()->render(\Sabberworm\CSS\OutputFormat::createPretty());
     $input['boardCustomCSS'] = $style;
     $this->replace($input);
 }
示例#2
0
文件: rtler.php 项目: engbanna/RTLer
 /**
  * render the rtled css code, by defualt it will return a string
  * @param bool $save_to_file if true save the code in a rtl.css file
  */
 public function render($save_to_file = false)
 {
     return $this->document->render(CSS\OutputFormat::createPretty());
 }
示例#3
0
 public function testPretty()
 {
     global $TEST_CSS;
     $this->assertSame($TEST_CSS, $this->oDocument->render(OutputFormat::createPretty()));
 }
示例#4
0
 /**
  * Executes the command
  *
  * @param InputInterface $input
  * @param OutputInterface $output 
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $src = $input->getArgument('src');
     $dst = $input->getArgument('dst');
     $selector = $input->getArgument('selector');
     $append = $input->getOption('append');
     // Create CSS dest object
     $dstCss = new \Sabberworm\CSS\Parser($append && file_exists($dst) ? file_get_contents($dst) : null);
     $dstCssDoc = $dstCss->parse();
     $finder = new Finder();
     $resources = $finder->files()->depth(0)->in($src)->name($selector . '.css');
     foreach ($resources as $res) {
         $output->writeln('CSS Found: ' . $res->getRealPath());
         $css = new \Sabberworm\CSS\Parser(file_get_contents($res->getRealPath()));
         $cssDoc = $css->parse();
         foreach ($cssDoc->getContents() as $block) {
             if ($block instanceof \Sabberworm\CSS\RuleSet\DeclarationBlock) {
                 /* @var $ruleset \Sabberworm\CSS\RuleSet\DeclarationBlock */
                 // Keep only the root CSS (ignore media queries)
                 $keepRules = array();
                 foreach ($block->getRules() as $rule) {
                     /* @var $rule \Sabberworm\CSS\Rule\Rule */
                     $value = $rule->getValue();
                     if (is_object($value)) {
                         // keep only object with size rem
                         $keepValue = false;
                         switch (get_class($value)) {
                             case 'Sabberworm\\CSS\\Value\\Size':
                                 /* @var $value \Sabberworm\CSS\Value\Size */
                                 if ($value->getUnit() == 'rem') {
                                     $value->setSize($value->getSize() * 10);
                                     $value->setUnit('px');
                                     $keepValue = true;
                                 }
                                 break;
                             case 'Sabberworm\\CSS\\Value\\RuleValueList':
                                 /* @var $value \Sabberworm\CSS\Value\RuleValueList */
                                 foreach ($value->getListComponents() as $c) {
                                     if ($c instanceof \Sabberworm\CSS\Value\Size) {
                                         if ($c->getUnit() == 'rem') {
                                             $c->setSize($c->getSize() * 10);
                                             $c->setUnit('px');
                                             $keepValue = true;
                                         }
                                     }
                                 }
                                 break;
                         }
                         if ($keepValue) {
                             $keepRules[] = $rule;
                         }
                     }
                 }
                 if (count($keepRules)) {
                     $oItem = new \Sabberworm\CSS\RuleSet\DeclarationBlock();
                     $oItem->setSelectors($block->getSelectors());
                     foreach ($keepRules as $rule) {
                         $oItem->addRule($rule);
                     }
                     $dstCssDoc->append($oItem);
                 }
             }
         }
     }
     $output->writeln('Write ' . $dst);
     file_put_contents($dst, $dstCssDoc->render(\Sabberworm\CSS\OutputFormat::createPretty()));
 }