Beispiel #1
0
        public override dotless.Core.Parser.Infrastructure.Nodes.Node Execute(dotless.Core.Parser.Infrastructure.Nodes.Node node, out bool visitDeeper)
        {
            visitDeeper = false;
            Root    tree = node as Root;
            Comment c    = null;
            List <IgnoreCommentMarker> markers = new List <IgnoreCommentMarker>();
            IgnoreCommentMarker        marker  = null;

            if (tree != null && tree.Rules != null)
            {
                for (int ruleCount = 0; ruleCount < tree.Rules.Count; ruleCount++)
                {
                    c = tree.Rules[ruleCount] as Comment;
                    if (c != null)
                    {
                        if (c.Value == "// start-ignore")
                        {
                            marker       = new IgnoreCommentMarker();
                            marker.Start = ruleCount;
                        }
                        if (c.Value == "// end-ignore")
                        {
                            if (marker != null)
                            {
                                marker.End = ruleCount;
                                markers.Add(marker);
                                marker = null;
                            }
                        }
                    }
                }

                foreach (var m in markers)
                {
                    for (int ruleCount = m.Start; ruleCount <= m.End; ruleCount++)
                    {
                        tree.Rules[ruleCount].ForceIgnoreOutput = true;
                    }
                }
            }

            return(node);
        }
Beispiel #2
0
        public override dotless.Core.Parser.Infrastructure.Nodes.Node Execute(dotless.Core.Parser.Infrastructure.Nodes.Node node, out bool visitDeeper)
        {
            visitDeeper = true;

            if (node is Rule)
            {
                var rule = node as Rule;
                if (rule.Variable)
                {
                    if (_variables.ContainsKey(rule.Name.TrimStart(Convert.ToChar("@"))))
                    {
                        var overrideValue = _variables[rule.Name.TrimStart(Convert.ToChar("@"))];
                        if (!string.IsNullOrEmpty(overrideValue))
                        {
                            var parse   = new Parser();
                            var ruleset = parse.Parse(rule.Name + ":    " + overrideValue + ";", "variableoverrideplugin.less");
                            return(ruleset.Rules[0] as Rule);
                        }
                    }
                }
            }

            return(node);
        }
Beispiel #3
0
 dotless.Core.Parser.Tree.Url INodeProvider.Url(dotless.Core.Parser.Infrastructure.Nodes.Node value, IImporter importer, NodeLocation location)
 {
     //ignore the raw imported file path. It is the default behavior in less.js
     return(new Url(value));
 }