Skip to content

Instantly share code, notes, and snippets.

@hai5nguy
Created February 4, 2016 21:01
Show Gist options
  • Save hai5nguy/25da2ac2b2bead5656cb to your computer and use it in GitHub Desktop.
Save hai5nguy/25da2ac2b2bead5656cb to your computer and use it in GitHub Desktop.
reference: function (e, r) {
var self = this;
// the different types of references below
var fullSelector = '[data-reference-type~="full"]';// full replacement
var innerSelector = '[data-reference-type~="inner"]';// replace with inner
var attrSelector = '[data-reference-type~="attributes"]';// replace attributes
var nullSelector = '[data-reference-type="none"]';// remove
$.each(r.find(attrSelector).addBack(attrSelector), function (i, attr) {
self.attributeSwap(e, $(attr), self.getAttrMap(attr));
});
e.removeAttr('data-marker');
// null reference inside the replacement content
$.each(r.find(nullSelector), function (i, nullItem) {
$(nullItem).remove();
});
// replacement content itself is null
if(r.filter(nullSelector).length) {
return '';
}
// full reference inside the replacement content
$.each(r.find(fullSelector), function (i, full) {
$(full).replaceWith(e);
});
// replacement content itself is full
if(r.filter(fullSelector).length) {
self.attributeSwap(r, e);
e.removeAttr('data-reference-type');
return e;
}
// inner reference inside the replacement content
$.each(r.find(innerSelector), function (i, inner) {
$(inner).replaceWith(e.html());
});
// replacement content itself is inner
if(r.filter(innerSelector).length) {
return e.html();
}
$.each(r.find(attrSelector).addBack(attrSelector), function (i, attr) {
$(attr).removeAttr('data-reference-type').removeAttr('data-attribute-map');
});
return r;
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment