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); }
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); }
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)); }