summaryrefslogtreecommitdiff
path: root/bin/lib/less/tree/quoted.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/lib/less/tree/quoted.js')
-rw-r--r--bin/lib/less/tree/quoted.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/bin/lib/less/tree/quoted.js b/bin/lib/less/tree/quoted.js
new file mode 100644
index 00000000..794bf4ce
--- /dev/null
+++ b/bin/lib/less/tree/quoted.js
@@ -0,0 +1,29 @@
+(function (tree) {
+
+tree.Quoted = function (str, content, escaped, i) {
+ this.escaped = escaped;
+ this.value = content || '';
+ this.quote = str.charAt(0);
+ this.index = i;
+};
+tree.Quoted.prototype = {
+ toCSS: function () {
+ if (this.escaped) {
+ return this.value;
+ } else {
+ return this.quote + this.value + this.quote;
+ }
+ },
+ eval: function (env) {
+ var that = this;
+ var value = this.value.replace(/`([^`]+)`/g, function (_, exp) {
+ return new(tree.JavaScript)(exp, that.index, true).eval(env).value;
+ }).replace(/@\{([\w-]+)\}/g, function (_, name) {
+ var v = new(tree.Variable)('@' + name, that.index).eval(env);
+ return ('value' in v) ? v.value : v.toCSS();
+ });
+ return new(tree.Quoted)(this.quote + value + this.quote, value, this.escaped, this.index);
+ }
+};
+
+})(require('../tree'));