]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - vendor/oyejorge/less.php/lib/Less/Visitor/import.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / oyejorge / less.php / lib / Less / Visitor / import.php
diff --git a/vendor/oyejorge/less.php/lib/Less/Visitor/import.php b/vendor/oyejorge/less.php/lib/Less/Visitor/import.php
new file mode 100644 (file)
index 0000000..f79a36d
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+
+/*
+class Less_Visitor_import extends Less_VisitorReplacing{
+
+       public $_visitor;
+       public $_importer;
+       public $importCount;
+
+       function __construct( $evalEnv ){
+               $this->env = $evalEnv;
+               $this->importCount = 0;
+               parent::__construct();
+       }
+
+
+       function run( $root ){
+               $root = $this->visitObj($root);
+               $this->isFinished = true;
+
+               //if( $this->importCount === 0) {
+               //      $this->_finish();
+               //}
+       }
+
+       function visitImport($importNode, &$visitDeeper ){
+               $importVisitor = $this;
+               $inlineCSS = $importNode->options['inline'];
+
+               if( !$importNode->css || $inlineCSS ){
+                       $evaldImportNode = $importNode->compileForImport($this->env);
+
+                       if( $evaldImportNode && (!$evaldImportNode->css || $inlineCSS) ){
+                               $importNode = $evaldImportNode;
+                               $this->importCount++;
+                               $env = clone $this->env;
+
+                               if( (isset($importNode->options['multiple']) && $importNode->options['multiple']) ){
+                                       $env->importMultiple = true;
+                               }
+
+                               //get path & uri
+                               $path_and_uri = null;
+                               if( is_callable(Less_Parser::$options['import_callback']) ){
+                                       $path_and_uri = call_user_func(Less_Parser::$options['import_callback'],$importNode);
+                               }
+
+                               if( !$path_and_uri ){
+                                       $path_and_uri = $importNode->PathAndUri();
+                               }
+
+                               if( $path_and_uri ){
+                                       list($full_path, $uri) = $path_and_uri;
+                               }else{
+                                       $full_path = $uri = $importNode->getPath();
+                               }
+
+
+                               //import once
+                               if( $importNode->skip( $full_path, $env) ){
+                                       return array();
+                               }
+
+                               if( $importNode->options['inline'] ){
+                                       //todo needs to reference css file not import
+                                       //$contents = new Less_Tree_Anonymous($importNode->root, 0, array('filename'=>$importNode->importedFilename), true );
+
+                                       Less_Parser::AddParsedFile($full_path);
+                                       $contents = new Less_Tree_Anonymous( file_get_contents($full_path), 0, array(), true );
+
+                                       if( $importNode->features ){
+                                               return new Less_Tree_Media( array($contents), $importNode->features->value );
+                                       }
+
+                                       return array( $contents );
+                               }
+
+
+                               // css ?
+                               if( $importNode->css ){
+                                       $features = ( $importNode->features ? $importNode->features->compile($env) : null );
+                                       return new Less_Tree_Import( $importNode->compilePath( $env), $features, $importNode->options, $this->index);
+                               }
+
+                               return $importNode->ParseImport( $full_path, $uri, $env );
+                       }
+
+               }
+
+               $visitDeeper = false;
+               return $importNode;
+       }
+
+
+       function visitRule( $ruleNode, &$visitDeeper ){
+               $visitDeeper = false;
+               return $ruleNode;
+       }
+
+       function visitDirective($directiveNode, $visitArgs){
+               array_unshift($this->env->frames,$directiveNode);
+               return $directiveNode;
+       }
+
+       function visitDirectiveOut($directiveNode) {
+               array_shift($this->env->frames);
+       }
+
+       function visitMixinDefinition($mixinDefinitionNode, $visitArgs) {
+               array_unshift($this->env->frames,$mixinDefinitionNode);
+               return $mixinDefinitionNode;
+       }
+
+       function visitMixinDefinitionOut($mixinDefinitionNode) {
+               array_shift($this->env->frames);
+       }
+
+       function visitRuleset($rulesetNode, $visitArgs) {
+               array_unshift($this->env->frames,$rulesetNode);
+               return $rulesetNode;
+       }
+
+       function visitRulesetOut($rulesetNode) {
+               array_shift($this->env->frames);
+       }
+
+       function visitMedia($mediaNode, $visitArgs) {
+               array_unshift($this->env->frames, $mediaNode->ruleset);
+               return $mediaNode;
+       }
+
+       function visitMediaOut($mediaNode) {
+               array_shift($this->env->frames);
+       }
+
+}
+*/
+
+