Dynamic

by TimPietrusky

HTML

<script src="http://lesscss.googlecode.com/files/less-1.3.0.min.js"></script>

CSS

@shit: #000;
@homo: #000;

body {
    background:@shit;
}

JavaScript

var style = $('head style[type="text/css"]');
var clone = style.clone();

style.attr('type', 'text/less');
less.refreshStyles();

// Get the content of the stylesheet
var content = clone.text();

// Find & replace variables
content = content.replace(/(@[\w]*)[:]{1}[\s]*([\w#\\(\\)]*)[\s]*[;]{1}/gim, callback);

// Clone the clone
var new_clone = clone.clone();

// Set new content
new_clone.text(content);

// Add less type
new_clone.attr('type', 'text/less');

// Add to body
style.replaceWith(new_clone);

// Parse with less
less.refreshStyles();


function callback(match, key, value) {
    if (key == '@shit') {
        var myregexp = new RegExp('[:]{1}[\\s]*[\\w#\\(\\)]*', "gim");
        return match.replace(myregexp, ':' + '#616161');
    } else {
        return match;
    }
}